1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. taucher_2006

Beiträge von taucher_2006

  • Zwei TXT vergleichen

    • taucher_2006
    • 18. November 2006 um 13:03

    hi,

    ja da habe ich dann doch noch eine Frage. Das Script läuft von der Sache her gut, wenn ich keine Func dazwischen setze. Setze ich eine ein,dann wird die auch ausgeführt und auch geschrieben. Doch wenn ich das Script ein zweites mal aufrufe, dann beginnt es von Vorne, obwohl die Namen schon in der Referenz.prob enthalten sind. Ich wollte ja erreichen, das nur die Sachen die in der Referenz.(prob).txt nicht enthalten sind übder die Func geholt werden.
    Zum besseren Verständnis habe ich beide Dateien mit angehängt. Die Referenz.(prob).txt ist schon mit Daten befüllt, im Format wie es zu sehen ist. Die taeglich.txt wird über ein Dos Fenster befüllt. Dann soll verglichen werden und was in der Referenz.prob fehlt geholt werden. Ich hoffe es ist einleuchten was ich mache.
    Ich bin am verzweifel und komme nicht weiter. Hat wer noch einen Lösungsansatz? :weinen:

    Spoiler anzeigen
    [autoit]

    ; Dateivergleich anhängen der Unterschiede
    #include <file.au3>
    #include <Array.au3>
    Global $pathMain = "X:\CDR`S Komplett\MCI\Referenz.prob"
    Global $pathCompare = "X:\xcftp\taeglich.txt"
    Global $mainFile_A
    Opt("TrayIconDebug", 1)
    If Not FileExists ($pathCompare) Then
    _Liste()
    EndIf
    Sleep(12000)

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

    Global $oldFile_A = $mainFile_A
    Global $compare_A
    If Not _FileReadToArray($pathCompare, $compare_A) Then
    MsgBox(4096, "Error", " Error reading log to Array error:" & @error)
    Exit
    EndIf

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

    For $i = 1 To UBound($compare_A) - 1
    ;MsgBox(0,"", "Ich nehme jetzt " & $compare_A[$i] & " und werde gleich gucken ob es mit .cdr endet" )
    If StringRight($compare_A[$i], 4) = ".CDR" Then
    _verizon()
    Sleep(120000)
    ;MsgBox(0,"", $compare_A[$i] & " endet mit cdr und deshalb gucke ich jetzt ob es schon in der Ursprungsdatei steht" )
    _ArraySearch($mainFile_A, $compare_A[$i], 1)
    If @error = 6 Then _ArrayAdd($mainFile_A, $compare_A[$i])
    EndIf
    Next
    _FileWriteFromArray($pathMain, $mainFile_A, 1, 0)
    ;RunWait(@ComSpec & ' /c start ' & $pathMain, '', @SW_HIDE)
    FileDelete($pathCompare)
    Func _verizon()
    run("cmd.exe")
    Sleep(500)
    send('x:{enter}')
    Sleep(500)
    Send('cd xcftp\scripts{enter}')
    Sleep(1000)
    Send('get_file CDRs ')
    Send($compare_A[$i])
    Send('{Enter}')
    Sleep(120000)
    Send('exit')
    Send('{enter}')
    EndFunc
    Func _Liste()
    Run("cmd.exe")
    Sleep(500)
    send('x:{enter}')
    Sleep(500)
    Send('cd xcftp\scripts{enter}')
    Sleep(1000)
    Send('list_directory CDRs')
    Send('{Enter}')
    Sleep(1500)
    Send('list_directory CDRs')
    Sleep(500)
    Send(' > x:\xcftp\taeglich.txt')
    Send('{Enter}')
    Sleep(3000)
    Send('exit')
    Send('{enter}')
    EndFunc

    [/autoit]

    Dateien

    taeglich.txt 3 kB – 322 Downloads referenz.txt 3,08 kB – 327 Downloads
  • Zwei TXT vergleichen

    • taucher_2006
    • 15. November 2006 um 21:43

    hi,

    danke ich glaube ich wweis wie ich weiter komme. Wenn ich nochmal Fragen habe melde ich mich. :schild4: :keks: :kiss:

    MFg

    Taucher_2006

  • Zwei TXT vergleichen

    • taucher_2006
    • 15. November 2006 um 21:09

    hi,
    habe den Pfad angepasst und dein Script geht auch. Kann man auch die Zeile mit Inhalt an dem das Script steht ausgeben um eventuell noch eine Func vor dem schreiben auszulösen?

    mfg Taucher_2006

  • Zwei TXT vergleichen

    • taucher_2006
    • 15. November 2006 um 20:41

    hi,

    wo soll ich noch was ändern. damit ich die Fehlermeldung los werde?
    (
    If Not ( $arFile1[1] = $arFile2[1] ) and $arFile1[1] < $arFile2[1] Then
    If Not ( $arFile1[1] = $arFile2^ ERROR)

    mfg Taucher_2006

  • Zwei TXT vergleichen

    • taucher_2006
    • 15. November 2006 um 20:00

    hallo,

    ich habe es so gemacht
    Global $pathMain = @ScriptDir & "\test.txt"
    Global $pathCompare = @ScriptDir & "\test1.txt"

    in der einen txt steht
    1.cdr
    1.zip
    1.erx
    2.cdr
    2.erx
    2.zip
    3.cdr
    3.zip
    3.erx
    4.cdr
    4.erx
    4.zip
    5.cdr
    5.zip
    5.erx
    6.cdr
    6.erx
    6.zip
    7.cdr
    7.zip
    7.erx
    8.cdr
    8.erx
    8.zip
    hiervon sollen nur die genommen werden die auf .cdr enden.
    Habe versucht das irgendwie unterzbringen (Global $arFile[3] = [ 2, "Test.txt", "Test1.txt", "*.cdr"]) aber kam Fehler Array variable has incorrect number of subscripts or subscript dimension range exceeded.

    mfg Taucher_2006

  • Zwei TXT vergleichen

    • taucher_2006
    • 15. November 2006 um 19:30

    hi,

    danke euch beiden. Ein Script funktioniert(von daniel w.) bei th. meger bekomme ich die Meldung das Error reading log to Array error:. Ich weis nicht wie ich es händeln soll. Als zwischen Frage kann man nach jeder gefundenen Zeile eine MSGBox ausgeben?
    Ansonsten läuft es schon super so wie ich es mir vorgestellt habe.

    MFG
    Taucher_2006

    ps sorry hatte die falsche Dtei beschrieben und MSGBOx kommt. Aber eine andere Sache kann man eventuel nur Zeile mit bestimmten endungen(bla.txt usw) übernehmen?

  • Zwei TXT vergleichen

    • taucher_2006
    • 15. November 2006 um 16:41

    hi,
    @Daniel W. 
    das habe ich mir angeschaut komme aber mit der Hilfe dort nicht weiter. Kannst du das anschaulich da stellen?

    snoozer,
    das habe ich mir schon angeschaut aber nicht recht was gefunden. Was soll passieren test.txt hat 10 Einträge test1.txt hat 12 einträge die nicht identisch sind. Deshalb wollte ich beide vergleichen über den Operator <> und das was in der test.txt nicht drinen ist soll am Ende angehängt werden.

    Taucher_2006

  • Zwei TXT vergleichen

    • taucher_2006
    • 15. November 2006 um 16:06

    Hallo Forum,

    ich habe mich durch die Hilfe gequält. Bin auch schon etwas vorwärts gekommen. Doch nun stockt es.
    Mein Problem in der test.txt steht z.B. untereinander
    1
    2
    3
    4

    in der test1.txt steht
    1
    2
    3
    4
    5
    6
    7
    und soll Zeile für Zeile die in test.txt fehlenden Zeilen eingefügt werden.
    Das Script das ich über die Hilfe gefunden habe ist

    Spoiler anzeigen
    [autoit]

    #include<file.au3>
    $file = FileOpen("test.txt", 0)
    $file1= FileOpen("test1.txt",0)
    ; Check if file opened for reading OK
    If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
    EndIf
    ;$chars = FileRead($file, 1)
    ;$chars1 = FileRead($file1,1)
    If $file <> $file1 Then
    While 1
    $file = FileReadLine($file)
    If @error = -1 Then ExitLoop
    FileWriteLine($file1,"" & $file)
    WEnd
    EndIf
    FileClose($file)
    FileClose($file1)

    [/autoit]

    Leider geht es nicht so wie ich es mir vorstelle. Gibt es ein Lösungsweg?

    MFG
    Taucher_2006 :tier:

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™