txt datei korrigieren

  • hey leute

    ich suche einen befehl, mitdem ich fertige txt dateien kontrolieren und korrigieren kann.

    hab mir das ungefähr so vorgestellt, der text wird eingelesen und nach doppelten wörtern berichtigt, also das in dem txt kein wird doppeld vorhhanden ist.

    geht das irgendwie? :S

  • hmm naja ich könnte das ja eig. auch vorhher vergleichen, hab ich so überlegt also bevor es gespeichert wird .. oder nich? :rolleyes:

    mit welchem befehl mach ich das jetzt?? ?(

    ich check deine befehle da nicht so ganz, schreib mir am besten was ich einfügen muss und dann wie das ganz funktioniert :D

  • ich check deine befehle da nicht so ganz, schreib mir am besten was ich einfügen muss und dann wie das ganz funktioniert :D

    Sorry, aber mit so wenig Eigeninitiative wird das nichts. Da kannst du keine Hilfe erwarten.

  • ich check deine befehle da nicht so ganz, schreib mir am besten was ich einfügen muss und dann wie das ganz funktioniert

    nein sowas kannst du nicht erwarten. das ist ein freiwilliges forum in dem welche die schon mehr mit autoit gemacht haben anderen helfen.
    aber es ist kein wunschkonzert.
    hilfe kriegst du dann wenn dus selbst nicht auf die reihe kriegst.
    lad dir die deutsche hilfedatei hier und schau dir die einzelnen befehle an. zu jedem deiner befehle is da auch n beispiel drin mit dem du auf jeden fall auf den richtigen weg kommst.

    wenn du nich weiterkommen solltest dann poste ein angefangenens script oder einen vernünftigen lösungsansatz mit ausführlicher erklärung dann wird dir auch geholfen

    hmm naja ich könnte das ja eig. auch vorhher vergleichen

    sowas ist ein beispiel für ein lösungsansatz der zwar genannt aber null beschrieben ist.
    keiner weiß:
    - wie du die textfiles bearbeitest
    - welche art von textfiles du bearbeitst
    - wie du dir vorstellst es umzusetzten. (mit gui, einfach nur ne exe oder buttons die du zum beispiel ins notepad integrierst)
    - was genau du alles machen willst. nur doppelte wörter rauslöschen? und wann? wenn sie hintereinanderstehen oder wenn sie in der textdatei 2 oder mehrfach vorkommen

    also bitte beschreib dein problem bisschen genauer...

  • - wie du die textfiles bearbeitest
    - welche art von textfiles du bearbeitst
    - wie du dir vorstellst es umzusetzten. (mit gui, einfach nur ne exe oder buttons die du zum beispiel ins notepad integrierst)
    - was genau du alles machen willst. nur doppelte wörter rauslöschen? und wann? wenn sie hintereinanderstehen oder wenn sie in der textdatei 2 oder mehrfach vorkommen


    also ok

    ich hab ein prog geschrieben das namen untereinander auflistet

    und die namen möchste ich koregieren

    es soll bevor das prog sagt ich bin fertig die namen durchgehen und immer den namen der doppeld ist löschen also so das jeder name nur einmal vorhanden ist

    so das mit dein einlesen ist alles nicht so schwer nur der befehl mitdem ich die variable untersuche und bearbeite is das problem ..

    ich steig hier langsam garnichtmehr durch :(

  • Was für Namen?
    Wo werden die aufgelistet?
    Was willst Du an den Namen korrigieren?
    Wo sind die Namen gespeichert?

    Oder einfach: Poste Dein Script! ;)

    was für namen ist doch egal
    die werden in einem txt aufgelisted
    ich will das jeder name nur einmals vorkommt
    die namen werden in einem txt gespeiert

    hab ich aber eig. schon alles erklärt gehabt

    aso zu den namen die namen sind immer nur ein wort also also

    Bsp:

  • ich hab jetzt selber nocham geguckt

    und hab das zusamen gebaut (ich glaube aber das is totaler schwachsin)

    [autoit]

    #include<Array.au3>

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $aNamen = FileRead("c\mein.txt", 0)
    Global $aNamen, $sOut, $aOut

    [/autoit][autoit][/autoit][autoit]

    $mein = StringSplit($aNamen, ",")

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $result = StringCompare($mein, $mein[+1])

    [/autoit]

    :(


    ich weiß ja nicht wenn ich euch mein komplettes script gebe ob ihr mir dann immer noch weiterhelft :( :(

  • Hi,
    Oscar hat dir doch die komplette Lösung gezeigt ?(
    Solche Anspielungen, dass dir hier nicht geholfen wird, wenn du dein komplettes Script postest, lassen mich vermuten, dass du etwas machst, dass laut Forenregeln verboten ist.
    Falls du also vor hast eine Dictionary Attack oder einen Bot zu schreiben, dann kann ich nur sagen vergiss es. Ansonsten erkläre ordentlich wo dein Problem liegt und dir wird auch geholfen.

    Das Script dass du da gepostet hast gibt 0 Sinn. Vielleicht solltest du zu aller erst mal ein paar Tutorials durchmachen.

  • Ich muss sagen, dass ich auf Oscars Lösung warscheinlich nicht (so schnell) gekommen wäre.
    Sie ist sehr kurz und knapp.. Ich hab mir mal gedacht, dass ich das mal (für Anfänger)
    etwas verständlicher mache und deshalb hab ichs nochmal kommentiert:
    (Vorraussetzung ist natürlich, dass man weiss was ein Array ist)

    [autoit]

    #include <array.au3>

    [/autoit][autoit][/autoit][autoit]

    Global $textdatei = "c:\mein.txt", $Textarray, $Ausgabe = ""

    [/autoit][autoit][/autoit][autoit]

    $Dateihandle = FileOpen($textdatei, 0)
    $Dateitext = FileRead($Dateihandle) ; Liest die Datei aus

    [/autoit][autoit][/autoit][autoit]

    If StringInStr($Dateitext, @CRLF) Then ; Prüft auf Zeilenumbrüche und Splittet falls Erfolg
    $Textarray = StringSplit(StringReplace($Dateitext, @LF, ""), @CR, 2)
    ElseIf StringInStr($Dateitext, @CR) Then
    $Textarray = StringSplit($Dateitext, @CR, 2)
    ElseIf StringInStr($Dateitext, @LF) Then
    $Textarray = StringSplit($Dateitext, @LF, 2)
    Else
    MsgBox(0, "ERROR!", "Entweder ist die Datei leer und/oder" & _
    " sie enthält keine Zeilenumbrüche") ; Error bei Misserfolg
    EndIf

    If IsArray($Textarray) Then ; Prüft nochmal ob ein Array vorliegt
    $Arrayausgabe = _ArrayUnique($Textarray) ; Fügt jedes Element max. 1mal hinzu
    _ArrayDelete($Arrayausgabe, 0) ; Löscht die Anzahl aller Elemente aus dem Array
    For $i = 0 To UBound($Arrayausgabe) - 1
    $Ausgabe &= $Arrayausgabe[$i] & @CRLF ; Speichert die Elemente mit Zeilenumbrüchen als String
    Next
    $Ausgabe = StringTrimRight($Ausgabe, 2); Der letzte Zeilenumbruch wird gelöscht (@cr & @lf)
    _ArrayDisplay($Arrayausgabe) ; Array wird angezeigt
    MsgBox(0, "Einzigartige Namen", $Ausgabe); String wird angezeigt
    EndIf

    [/autoit]

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Mit Arrays geht es noch einfacher ;)

    [autoit]

    #include<Array.au3>
    #include<File.au3>

    [/autoit][autoit][/autoit][autoit]

    Local $Namen
    ; _FileReadToArray(@ScriptDir & "\blub.txt", $Namen)
    $Namen = StringFormat("apfel\r\nkuchen\r\napfel\r\neier\r\nobst\r\nsalat\r\nsalat")

    [/autoit][autoit][/autoit][autoit]

    $Array = StringSplit($Namen, @CRLF, 1)
    $aEinzigartig = _ArrayUnique($Array,1,1)

    [/autoit][autoit][/autoit][autoit]

    _ArrayDisplay($aEinzigartig)
    ;_FileWriteFromArray(@ScriptDir & "\bla.txt", $aEinzigartig, 1)

    [/autoit]
  • danke das war echt hilfreicher als alles andere ich habs jetzt endlich auf die reihe bekommen danke :thumbup: