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

  • Zeile 2 mit StringMid

    • taucher_2006
    • 27. Januar 2007 um 22:24

    hi,

    das array ist leer-->bzw es wird nichts angezeigt
    _ArrayDisplay($arErgebnis, "Titel")

    taucher

  • Zeile 2 mit StringMid

    • taucher_2006
    • 27. Januar 2007 um 21:00

    hi,

    es wird keine datei angelegt!?!?

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <date.au3>
    #include <array.au3>
    #include <string.au3>
    Opt("TrayIconDebug", 1) ;0=no info, 1=debug line info
    Global $pathMain = "C:\GLI_Prod\12 2006\" &@MDAY&"."&@MON &"."& @YEAR&".xls"
    Dim $pfad = "C:\GLI_Prod\12 2006\"
    Dim $string = _FileListToArray($pfad, "*.INH") ; liest alle *.INH-Files in Array $string
    Dim $match, $frta
    DIm $arErgebnis
    ;Dim $pathMain
    If Not IsArray($string) Then
    MsgBox(16, "", "Keine Inhouse Datei(en) gefunden.. EXIT!")
    Exit
    EndIf
    For $i = 1 To $string[0] ; Dateiliste abarbeiten
    _FileReadToArray($pfad & $string[$i], $frta)
    If @error <> 0 Then
    MsgBox(4096, "Error", " Fehler beim Einlesen der Datei: " & $pfad & $string[$i] & @LF & "Fehler: " & @error)
    Else
    $match = _StringBetween($frta[2],"/", ";") ; Wert in Zeile 2 auslesen
    If Not @error Then
    If StringInStr($frta[2], "K;380") Then ; Eintrag ist vorhanden
    MsgBox(4096, "", "vorhanden bei datei: "& $string[$i] & " " & $match[0],2)
    ;_Rechnung()
    _ArrayAdd($arErgebnis, $match[0])
    Sleep(1500)
    ;~ ExitLoop ; dann wird Bearbeitung abgebrochen !!!
    ElseIf StringInStr($frta[2], "K;130") Then ; Eintrag ist vorhanden
    MsgBox(4096, "", "vorhanden bei datei: "& $string[$i] & " " & $match[0],2)
    ;_EVN()
    Sleep(1500)
    ;~ ExitLoop ; dann wird Bearbeitung abgebrochen !!!
    EndIf
    Else
    MsgBox(4096, "", "In Datei: "& $string[$i] & " ist Nummer nicht enthalten.")
    EndIf
    EndIf
    Next
    _FileWriteFromArray($pathMain, $arErgebnis,1)
    Exit

    [/autoit]


    ich habe $arErgebnis auf dim gestellt.

    mache ich noch was falsch? oder bin ich blind

    taucher

  • Zeile 2 mit StringMid

    • taucher_2006
    • 27. Januar 2007 um 20:06

    hi,

    ich musste nochmal das thema aufmachen, da ich noch eine frage zu _FileWriteFromArray habe. ich habe es eigebaut, aber es wird nur eine nummer eingetragen.
    so _FileWriteFromArray($pathMain, $match,1,0) ein eintrag
    _FileWriteFromArray($pathMain, $match[0],1,0) kein eintrag

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <date.au3>
    #include <array.au3>
    #include <string.au3>
    Opt("TrayIconDebug", 1) ;0=no info, 1=debug line info
    Global $pathMain = "C:\GLI_Prod\12 2006\" &@MDAY&"."&@MON &"."& @YEAR&".xls"
    Dim $pfad = "C:\GLI_Prod\12 2006\"
    Dim $string = _FileListToArray($pfad, "*.INH") ; liest alle *.INH-Files in Array $string
    Dim $match, $frta
    ;Dim $pathMain
    If Not IsArray($string) Then
    MsgBox(16, "", "Keine Inhouse Datei(en) gefunden.. EXIT!")
    Exit
    EndIf

    For $i = 1 To $string[0] ; Dateiliste abarbeiten
    _FileReadToArray($pfad & $string[$i], $frta)
    If @error <> 0 Then
    MsgBox(4096, "Error", " Fehler beim Einlesen der Datei: " & $pfad & $string[$i] & @LF & "Fehler: " & @error)
    Else
    $match = _StringBetween($frta[2],"/", ";") ; Wert in Zeile 2 auslesen
    ;_File()
    If StringInStr($frta[2], "K;380") Then ; Eintrag ist vorhanden
    MsgBox(4096, "", "vorhanden bei datei: "& $string[$i] & " " & $match[0],2)
    ;_Rechnung()
    _FileWriteFromArray($pathMain, $match,1,0)
    Sleep(1500)
    ;~ ExitLoop ; dann wird Bearbeitung abgebrochen !!!
    ElseIf StringInStr($frta[2], "K;130") Then ; Eintrag ist vorhanden
    ;MsgBox(4096, "", "vorhanden bei datei: "&$frta[$i])
    ;_EVN()
    Sleep(1500)
    ;~ ExitLoop ; dann wird Bearbeitung abgebrochen !!!
    EndIf
    EndIf
    Next

    [/autoit]

    wenn ich das thema über fileopen mache dann läuft es durch doch dann bekomme ich eine fehlermeldung

    C:\Programme\AutoIt3\Include\File.au3 (178) : ==> Unable to open file, the maximum number of open files has been exceeded.:
    $hFile = FileOpen($sFilePath, 0)

    Spoiler anzeigen
    [autoit]

    Func _File()
    FileOpen($pathMain,1)
    FileWriteLine($pathMain, $match[0] & @CRLF)
    FileClose($pathMain)
    EndFunc

    [/autoit]


    wie kann ich es besser regeln?

    taucher

  • Zeile 2 mit StringMid

    • taucher_2006
    • 27. Januar 2007 um 19:04

    hi,
    :klatschen:
    danke es geht. :keks:
    schönes we

    taucher

  • Zeile 2 mit StringMid

    • taucher_2006
    • 27. Januar 2007 um 15:15

    hi,

    dank aber er rauscht gleich durch bis zur letzen msgbox. er liest nichts in array ein.was kann das sein?

    das mit _filefromarray ist dann ja falsch wenn ich nur die selectierten nummern aus der zeile 2 haben möchte.

    taucher

  • Zeile 2 mit StringMid

    • taucher_2006
    • 27. Januar 2007 um 13:23

    hi,

    so zur hälfte habe konnte ich das problem lösen, neue version geholt geht. aber wie kann ich nun eine varibale damit bedienen, da ja in jeder zweiten zeile eine andere nummer steht?
    mein versuch geht schief. mit _filewritefromarry schreibe ich dann in eine datei?

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <date.au3>
    #include<array.au3>
    Opt("TrayIconDebug", 1) ;0=no info, 1=debug line info
    $flta = _FileListToArray("C:\GLI_Prod\12 2006\", "*.INH")
    Global $string = _FileListToArray("C:\GLI_Prod\12 2006\", "*.INH")
    Global $flta = _StringBetween($string,"/", ";")

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

    If Not IsArray($flta) Then Exit MsgBox(16, "", "Keine Inhouse Datei(en) gefunden.. EXIT!")
    For $i = 1 To $flta[0]
    Dim $aRecords
    If Not _FileReadToArray("C:\GLI_Prod\12 2006\"&$flta[$i],$aRecords) Then
    MsgBox(4096, "Error", " Fehler beim Einlesen der Datei Fehler:" & @error)
    Exit
    EndIf
    For $x = 1 To $aRecords[0]
    If StringInStr($aRecords[$x], "K;380") Then ; Eintrag ist vorhanden

    MsgBox(4096, "", "vorhanden bei datei: "&$flta[$i]& "" &$flta)
    ;_Rechnung()
    Sleep(1500)
    ExitLoop
    EndIf
    If StringInStr($aRecords[$x], "K;130") Then ; Eintrag ist vorhanden
    ;MsgBox(4096, "", "vorhanden bei datei: "&$flta[$i])
    ;_EVN()
    Sleep(1500)
    ExitLoop
    EndIf
    Next
    Next

    [/autoit]

    danke
    taucher

  • Zeile 2 mit StringMid

    • taucher_2006
    • 26. Januar 2007 um 22:21

    hallo,

    @th.meger
    ich bekomme
    C:\Programme\AutoIt3\Include\StringMid1.au3(9,50) : ERROR: _StringBetween(): undefined function.
    Global $found2 = _StringBetween($string, "/", ";")
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Programme\AutoIt3\Include\StringMid1.au3 - 1 error(s), 0 warning(s)
    habe ich was vergessen?
    da es sich um rechnungsnummern handelt ändert sich diese zahl.
    was bewirkt der _stringbetween? habe in der hilfe nichts gefunden

    Taucher

  • Zeile 2 mit StringMid

    • taucher_2006
    • 26. Januar 2007 um 20:57

    Sorry da habe ich beim ersten Beitrag etwas vergessen.
    Es sollte so sein

    StringMid("K;380;o2/402661239;9;20070109;20061201;", 10, 9)
    Gesucht wird diese Nummer 402661239 oder ähnliche
    So sieht der Anfang aus.
    S;o2 MOBILFUNK;80001266_2;20070108;1243
    K;380;o2/402661239;9;20070109;20061201;20061231;3;402661239;40035812;80001266_2;Keine Rechnung nach

    Taucher

  • Zeile 2 mit StringMid

    • taucher_2006
    • 26. Januar 2007 um 20:24

    nabend,

    habe da ein kleines Problem mit der Zeile 2 von 80 Dateien. Das einlesen in ein Array läuft. Bei StringMid mit statischem Text das geht auch. Nur wie ich genau in der Zeile 2 suchen kann ist mir unklar. Auch steht immer eine andere Zahl dort die ich in einer txt zur Kontrolle benötige.
    Beispiell
    so sieht die Zeile 2 immer aus.(EDIFACT-Datei)
    K;380;o2/402661239;9;20070109;20061201;20061231;3;402661239;40035812;80001266_2
    Sorry was vergessen
    StringMid("K;380;o2/402661239;9;20070109;20061201;", 10, 9)
    Danke für jeden Hinweis

    Taucher

  • Ordner mienit mehreren Dateien

    • taucher_2006
    • 17. Januar 2007 um 21:50

    hallo,

    ja das war es danke :keks:

    thx

  • Ordner mienit mehreren Dateien

    • taucher_2006
    • 17. Januar 2007 um 21:38

    hallo,
    ok habe ich gemacht aber jetzt kopiert er nichts mehr.

    Spoiler anzeigen
    [autoit]

    #include <File.au3>

    $flta = _FileListToArray("C:\Programme\AutoIt3\Test\", "*.txt")
    If Not IsArray($flta) Then Exit MsgBox(16, "", "Keine txt dateien gefunden.. EXIT!")
    For $i = 1 To $flta[0]
    Dim $aRecords
    If Not _FileReadToArray("C:\Programme\AutoIt3\Test\"&$flta[$i],$aRecords) Then
    MsgBox(4096, "Error", " Fehler beim Einlesen der Datei Fehler:" & @error)
    Exit
    EndIf
    For $x = 1 To $aRecords[0]
    If StringInStr($aRecords[$x], "keine Verbindung") Then ; Eintrag ist vorhanden
    MsgBox(4096, "", "vorhanden bei datei: "&$flta[$i])
    _kopieren()
    Sleep(1500)
    ExitLoop
    EndIf
    Next
    Next
    Func _kopieren()
    FileCopy("C:\Programme\AutoIt3\Test"&$flta[$i], "C:\Programme\AutoIt3\Test\Thomas\")
    EndFunc

    [/autoit]

    thx

  • Ordner mienit mehreren Dateien

    • taucher_2006
    • 17. Januar 2007 um 21:06

    hallo

    danke genau das ist es. wie kann ich die gefunden dateien sauber kopieren?
    da klemmt es auch noch einwenig.
    mein ansatz

    FileCopy("C:\Programme\AutoIt3\Test"&$flta, "C:\Programme\AutoIt3\Test\Taucher_2006\")
    da kopiert er aber alle und nicht nur die gefundenn.

    thx

  • Ordner mienit mehreren Dateien

    • taucher_2006
    • 17. Januar 2007 um 20:38

    nabend Kollegen,

    ich habe da ein Problem mit einem Ordner, der ca 100 csv Dateien hat. Diese csv Dateien haben im Inhalt einen bestimmten Zeichensatz. das Suchen nach diesem Zeichensatz habe ich schon geschafft. Nur mein Problem ist die Menge der Dateien die unterschiedliche Namen haben. Ich habe momentan keine Kennung wie ich es bewerkstelligen soll. Kann das mit einer Schleife und Wildcard abgehandelt werden. Hat wer einen Lösungaansatz?
    hier ist meiner

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    Dim $aRecords
    If Not _FileReadToArray("C:\Programme\AutoIt3\Test\*.txt",$aRecords) Then
    MsgBox(4096,"Error", " Fehler beim Einlesen der Datei Fehler:" & @error)
    Exit
    EndIf
    For $x = 1 to $aRecords[0]
    If StringInStr($aRecords[$x], "80001166_2") Then ; Eintrag ist vorhanden
    MsgBox(4096,"","vorhanden")
    ExitLoop
    EndIf
    Next

    [/autoit]

    Danke für eure Hilfe :hm:

  • Zwei TXT vergleichen

    • taucher_2006
    • 2. Dezember 2006 um 14:35

    hi,

    ich habe wohl gestern im falschen film mitgespielt. ich habe nur mit SciTe geteste. nach dem kompilieren ging es. werde jetzt erstmal testen.

    :keks:
    mfg taucher

  • Zwei TXT vergleichen

    • taucher_2006
    • 1. Dezember 2006 um 20:38

    hi,

    es kann kein zweites script getartet werden.

    taucher

  • Zwei TXT vergleichen

    • taucher_2006
    • 1. Dezember 2006 um 20:33

    hallo,

    danke für deine antwort. das habe ich soweit verstanden. doch mit diesem aufbau blockier ich mir weiter Autoit Scripts. ich wollte es direct eintragen als dienst, (mit srvnay.exe habe ich schon einen dienst zulaufen der im stunden rhytmus arbeitet) damit es im hintergrund arbeiten kann. Gibt es noch eine andere Lösung?

    taucher

  • Zwei TXT vergleichen

    • taucher_2006
    • 1. Dezember 2006 um 10:16

    moin moin,
    sollte das so aus sehen ?

    [autoit]

    While $Ti="10:20"
    While 1
    If Not FileExists ($pathCompare) Then
    _Liste()
    EndIf
    Sleep(12000)
    If Not _FileReadToArray($pathCompare, $compare_A) Then
    _errormail1()
    Exit
    EndIf
    If Not _FileReadToArray($pathMain, $mainFile_A) Then
    _errormail2()
    Exit
    EndIf

    For $i = 1 To UBound($compare_A) - 1
    If StringRight($compare_A[$i], 4) = ".CDR" Then
    _ArraySearch($mainFile_A, $compare_A[$i], 1)
    If @error = 6 Then
    _ArrayAdd($mainFile_A, $compare_A[$i])
    _verizon()
    Sleep(120000)
    EndIf
    EndIf
    Next
    If _FileWriteFromArray($pathMain, $mainFile_A, 1, 0) Then
    FileDelete($pathCompare)
    EndIf
    WEnd

    [/autoit]

    Mfg Taucher_2006

  • Zwei TXT vergleichen

    • taucher_2006
    • 30. November 2006 um 19:24

    nabend,

    klar hier ist es

    Spoiler anzeigen
    [autoit]

    #include <file.au3>
    #include <Array.au3>
    #include <INet.au3>
    #include <date.au3>
    Global $pathMain = "C:\Programme\AutoIt3\Include\Referenz.prob"
    Global $pathCompare = "C:\Programme\AutoIt3\Include\taeglich.txt"
    Global $mainFile_A
    Global $oldFile_A = $mainFile_A
    Global $compare_A
    $Outlook2003 = @ProgramFilesDir & "\Microsoft Office\Office11\Outlook.exe"
    $PID = ProcessExists("Outlook.exe")
    $Ti=@HOUR & ":" & @MIN & ":" & @SEC
    If $Ti="17:50:00" Then
    If Not FileExists ($pathCompare) Then
    _Liste()
    EndIf
    Sleep(12000)
    If Not _FileReadToArray($pathCompare, $compare_A) Then
    _errormail1()
    Exit
    EndIf
    If Not _FileReadToArray($pathMain, $mainFile_A) Then
    _errormail2()
    Exit
    EndIf
    For $i = 1 To UBound($compare_A) - 1
    If StringRight($compare_A[$i], 4) = ".CDR" Then
    _ArraySearch($mainFile_A, $compare_A[$i], 1)
    If @error = 6 Then
    _ArrayAdd($mainFile_A, $compare_A[$i])
    _verizon()
    Sleep(120000)
    EndIf
    EndIf
    Next
    If _FileWriteFromArray($pathMain, $mainFile_A, 1, 0) Then
    FileDelete($pathCompare)
    EndIf
    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(60000)
    Send('list_directory CDRs')
    Sleep(1000)
    Send(' > X:\xcftp\etc\taeglich.txt')
    Send('{Enter}')
    Sleep(3000)
    Send('exit')
    Send('{enter}')
    EndFunc
    Func _errormail1()
    $Ti=@HOUR & ":" & @MIN & ":" & @SEC
    $Address=("xxx@ag.de")
    $Subject=("Fehler im Ladenvorgang der CDRs!")
    $Body = (" Die für den Ladenvorgang benötigte Datei im Pfad " & $pathMain & " wurden um " & $Ti & " nicht gefunden." & @LF & @LF & _
    " Der Ladevorgang wurde erfolglos beendet." & @LF & @LF & _
    " Freundliche Grüßen" & @LF & @LF &" Ihre Fileserver")
    If $PID Then
    _INetMail($address, $subject, $body)
    sleep(5000)
    Send("!s")
    Else
    Run($Outlook2003)
    WinWaitActive("Posteingang - Microsoft Outlook")
    _INetMail($address, $subject, $body)
    sleep(5000)
    Send("!s")
    EndIf
    EndFunc
    Func _errormail2()
    $Ti=@HOUR & ":" & @MIN & ":" & @SEC
    $Address=("xxx@ag.de")
    $Subject=("Fehler im Ladenvorgang der CDRs!")
    $Body = (" Die für den Ladenvorgang benötigte Datei im Pfad " & $pathCompare & " konnte um " & $Ti & " nicht erstellt werden." & @LF & @LF & _
    " Der Ladevorgang wurde erfolglos beendet." & @LF & @LF & _
    " Freundliche Grüße" & @LF & @LF &" Ihre Fileserver")
    If $PID Then
    _INetMail($address, $subject, $body)
    sleep(5000)
    Send("!s")
    Else
    Run($Outlook2003)
    WinWaitActive("Posteingang - Microsoft Outlook")
    _INetMail($address, $subject, $body)
    sleep(5000)
    Send("!s")
    EndIf
    EndFunc

    [/autoit]

    MFG
    Taucher

  • Zwei TXT vergleichen

    • taucher_2006
    • 30. November 2006 um 17:48

    Hallo,

    habe lange getestet un ddas Script läuft. Nun wollte ich es als Dienst laufen lassen. Dazu habe ich einen Zeitschlüssel eingebaut und die Anweisungen zum Dienst befolgt. Leider starte es nicht. Woran kann es liegen? Kann mir wer helfen.

    MFG Taucher_2006

    [autoit]

    $Ti=@HOUR & ":" & @MIN & ":" & @SEC

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

    If $Ti="17:25:00" Then
    If Not FileExists ($pathCompare) Then
    _Liste()
    EndIf

    [/autoit]
  • Zwei TXT vergleichen

    • taucher_2006
    • 18. November 2006 um 21:12

    nabend kollegen,

    ich glaube das ich mein beschriebenes Problem nach langem Kampf mit der Hife gelöst habe. Ich hoffe jedenfalls das es der Weg ist. Ich habe die Func an einen anderen für mich noch nicht verständlichen Teil eingebaut. Seitdem geht es.

    Spoiler anzeigen
    [autoit]

    ; Dateivergleich anhängen der Unterschiede
    ;in abgeänderter Form in der Func
    #include <file.au3>
    #include <Array.au3>

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

    Global $pathMain = "c:\Programme\Autoit3\Include\Referenz.prob"
    Global $pathCompare = "c:\Programme\Autoit3\Include\taeglich.txt"
    Global $mainFile_A
    Global $oldFile_A = $mainFile_A
    Global $compare_A

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

    If Not _FileReadToArray($pathMain, $mainFile_A) Then
    MsgBox(4096, "Error", " Error reading log to Array error:" & @error)
    Exit
    EndIf

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

    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",5 )
    If StringRight($compare_A[$i], 4) = ".cdr" Then
    ;MsgBox(0,"", $compare_A[$i] & " endet mit cdrund deshalb gucke ich jetzt ob es schon in der Ursprungsdatei steht",5 )
    _ArraySearch($mainFile_A, $compare_A[$i], 1)
    If @error = 6 Then
    _ArrayAdd($mainFile_A, $compare_A[$i])
    _verizon()
    Sleep(2000)
    EndIf
    ;MsgBox(0, "" , $compare_A[$i] &" ist nicht enthalten")
    EndIf
    Next
    Func _verizon()
    run("cmd.exe")
    Sleep(500)
    send('cd\{enter}')
    Sleep(500)
    Send($compare_A[$i])
    Sleep(1000)
    Send('{Enter}')
    Sleep(1000)
    Send("exit")
    Send('{Enter}')
    EndFunc

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

    _FileWriteFromArray($pathMain, $mainFile_A, 1, 0)
    ;RunWait(@ComSpec & ' /c start ' & $pathMain, '', @SW_HIDE)

    [/autoit]

    Wenn das nicht der richtige Weg ist sagt mir bescheid.

    MFG Taucher_2006

    PS: Gluck gluck weg war er!!!!! :schild4:

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™