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. msp-holzwurm

Beiträge von msp-holzwurm

  • ftpgetFile

    • msp-holzwurm
    • 24. Januar 2007 um 20:55

    Hallo All!

    habe folgenden Programmcode (Ausschnitt) bei mir durchgetestet (auf div. Kisten) läuft sauber.
    Ein Kunde setzt das auf Terminalserver ein:
    es tritt folgendes Problem auf:
    im Protokoll (Funktion _protoutput) ist zwar schön vermeldet, daß die Datei sauber kopiert worden ist, aber der (Kontroll) FileGetSize bekommt anscheinend ne andere Dateigröße zurückgemeldet und im Protokoll steht dann:
    nicht korrekt kopiert.

    Habe heute mal einen
    sleep(500) (also halbe Sekunde warten) noch eingebaut nach dem _FTPGetfile

    leider meinen Kunden nicht mehr erreicht, ob das Problem dann weg ist, beim ersten Test heute früh sind von 12 Dateien alle 12 per FTP geholt worden, aber nur 2 auf dem Server drüben gelöscht worden.

    Gibts evtl. ne andere Möglichkeit, daß sofortige Schreiben der Datei auf dem lokalen Datenträger zu erzwingen, leider ist es sehr schwierig bei der ftp.au3 voll durchzusteigen.


    Will das Programm zum Dienst ausbauen. daß ich zeitgesteuert per ftp Dateien holen (FTP get) und auch Schreiben kann (FTP put).
    Besteht hier evtl. Interesse von noch anderen daran??

    Hatte mal kurz im Internet nach ner fertigen Lösung geschaut, hab aber nichts gefunden.

    Es Dankt und grüßt Euch

    German
    gennant: DER INTEGRATOR


    $holes=_FTPGetfile($Conn, $rf , $lf,1,0)
    ; msgbox(0,"holes wert", $holes)
    if $holes=1 then
    _protoutput($PROT, "Datei " & $FileInfo[10] & " mit Größe " & $FileInfo[9] & " erfolgreich kopiert")
    if FileGetSize($lf) = $fileInfo[9] then ;Dateigröße local gleich der auf dem ftp gelisteten nur bei ASCII!!!!
    $loeschen=_FTPDelFile($Conn, $rf)
    if $loeschen =1 then
    _protoutput($PROT, "Datei " & $rf & " gelöscht")
    _okkommcheck2($PROT, $lf)
    Else
    _protoutput($PROT, "FEHLER: Datei " & $rf & " konnte nicht gelöscht werden")
    EndIf
    Else
    _protoutput($PROT, "FEHLER: Datei " & $rf & " nicht korrekt übertragen")

    EndIf


    EndIf

  • Protokolldatei umsortieren

    • msp-holzwurm
    • 14. Januar 2007 um 18:57

    genau, des isses was ich gebraucht habe, hab gleich rumgetestet und ein paar Kommentierungen erweitert

    1000 Dank, die Badewanne voll Kaffee schieb ich bei Gelegenheit rüber.

    Gruss

    German

  • Protokolldatei umsortieren

    • msp-holzwurm
    • 14. Januar 2007 um 16:15

    >Dann kannst du mit StringSplit( ) die Zeile in ein Array auslesen und dann umsortieren.>

    genau hier scheitere ich, mit StringSplit hab ich schon öfters gearbeitet, um mir was umzusortieren (aber bisher nur zeilenweise!!), aber ich bring das Zeug nicht in ein array rein:

    #include <Date.au3>
    #include <string.au3>
    #include <file.au3>
    #include <array.au3>

    $PROTFILE="C:\protokoll\muster.log"

    Dim $lRead
    Dim $tabelle
    _FileReadToArray($protfile, $lRead )

    For $lNum = 1 to $lRead[0]

    $tabelle=StringSplit($lRead[$lNum]," ")

    msgbox(0,"Ziel iss", $tabelle[2],2)

    Next


    =============================

    wir bring ich das ganze in ne Tabelle???

    kann ich irgendwie bei $tabelle noch die Zeilenvariable $lNum mit übergeben???
    dann hätt ich ja
    tabelleZeile1=
    tabelleZeile2=

    Gruss

    German

  • Protokolldatei umsortieren

    • msp-holzwurm
    • 14. Januar 2007 um 11:34

    Hallo All!

    irgendwie bring ich das nicht hin und bin jetzt völlig frustriert:

    habe etliche Autoit-Programme laufen, die Protokolle gleichen Musters erstellen:
    Beispiel einer muster.log
    20063112105520 Würzburg München Container0815
    20063112110014 Straubing Frankfurt Paket3720
    20070102081537 Basel Dortmund Brief2277


    Die Dateien sind immer nach dem Datumsformat vorne sortiert, als YYYYMMDDmmhhss

    jetzt brauch ich die aber hin und wieder mal nach
    Absender (Würzbug,Straubing, Basel) oder Empfänger (München...) in ner zwoten Datei umsortiert.

    PLEASE HELP

    1000 Dank.

    Gruss

    German

  • Max Pfadlänge mit autoit unter Windows 2003

    • msp-holzwurm
    • 6. Dezember 2006 um 19:29

    Hallo All!

    habe eine Art "onboard-Diagnose" geschrieben, die ganz gut läuft (natürlich mit autoit).

    bei einem Kunden läuft das nicht, bei der Fehlersuche komm ich drauf:
    der hat eine Datei
    abcd02050123456789_0123456789_20061_011000_ ....

    in einem überwachten Ordner stehen.
    Diese Datei ist so grob gezählt mal 230 Stellen lang!!!!!

    der Pfad auf die Datei (=Ordner wo die steht) hat schon 38 Stellen!!!

    Mit Autoit will ich nur so ne Art DIR von diesem Fehlerverzeichnis ausgeben.
    der gesamte Pfad ist sicher über 255 Stellen lang!!!

    wenn ich bei mir teste mit einer Datei (mit kompletten Pfad 255 stellen) geht mein Script.

    Wo genau sind da die Größenbeschränkungen des Betriebssystems????

    mein einziger Kommentar zu solchen Dateinamen:
    (Ingenieure lösen keine Probleme - sie sind es)

    Es dankt Euch

    German

  • Druckausgabe DOS

    • msp-holzwurm
    • 1. Dezember 2006 um 22:35

    TCP/IP Druckdienst installieren.
    Drucker ist im Netzwerk oder per USB angeschlossen.

    a, Drucker freigeben (ohne Leerstellen!!!) z.B. als HP1200

    b, net use lpt2 \\meineKiste\HP1200 /p:yes

    und schon sollte das DOS-Programm drucken können!!

    mit lpt1 solls Probleme geben können, wenn Du nicht genug Rechte hast (ich bin erst seit 2 Wochen auf XP seitdem ich ne neue Kiste habe)

    Gruss

    German

    PS: kenn die Probleme, von wegen, daß jede Firma schon alles als Windows Applikation hat!!!

  • Schnuecks

    • msp-holzwurm
    • 1. Dezember 2006 um 18:17

    schätze, bin beim vergleichbaren Verein, allerdings in "weiß-blauem" Gebiet.
    (Betonung aber: in einer fränkischen Filiale)


    Also willkommen im gemeinsamen Autoit-Land

    Gruss

    German
    (der aus der Anstalt)

  • Druckausgabe DOS

    • msp-holzwurm
    • 1. Dezember 2006 um 18:06

    Hallo!

    habe ähnliches Problem, die Funktion:

    [autoit]


    _FileReadToArray($newfile, $lRead )

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

    steigt mir aus, wen Hex00 in der Zeile steht, bräuchte da auch noch ein paar Sonderzeichen geändert (Daten kommen von einem IBM-Host)

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

    mit einem Script tausch ich das Zeichen momentan einzeln aus

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

    $chars = FileRead($hfile,1)

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

    if @error = -1 then ExitLoop

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

    $asciiwert=asc($chars)

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

    if $asciiwert=0 then
    ; msgbox(0,"bin drin","HUHU")
    $Blank=Chr(32)
    $chars=$Blank
    EndIf

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

    FileWrite($afile, $chars)

    [/autoit]


    das geht doch sicher auch etwas optimierter (und wenns schneller ginge
    wär auch nicht schlecht.

    Hat jemand sowas schonmal progammiert, gibts irgendwas dazu???

    Gruss

    German

    Edit: (Mega) : Habe mal Autoit-Tags hinzugefügt, obwohl Text dazwischen ist.

  • Textdaten mit array handeln

    • msp-holzwurm
    • 27. November 2006 um 18:52

    Hallo Autoit-Gemeinde!

    hab das Programm schon fertig, es geht aber einfach nicht schnell genug, da ich immer mit
    FileReadLine arbeite, wie macht man das ganze als array-Lösung??

    Problem, eine Datei von einem IBM-Host:
    Beispiel:


    A00 9999999999---H1
    N1dies ist ein Text
    N und noch ne Zeile
    A00 9999999999---H2
    N1dies ist ein Text von H2
    N und noch ne Zeile von H2
    N0Uebersicht uber den KassenSoll-Stand 2006
    N 100000 Miese
    A00 9999999999---H3
    B00123874545454
    B013121213121213


    a, erstes Problem:
    die Datei auseinanderlegen in einzelen Temp-Dateien immer von A00 bis zum nächsten A00
    beispiel für die erste Temp ist
    dies ist ein Text
    und noch ne Zeile

    die erste Zeile brauch ich nicht, die mit A00 beginnt und auch nicht die beiden Steuerzeiche
    am Zeilenanfang, das ist immer identisch
    Ich muß aber reagieren können, wenn z.B. N1 kommt, dann muß ich in die Temporäre Datei was
    reinschreiben (einen extra-zeilenumbruch z.B.)

    diese Temp-Datei übergeb ich dann einer Funktion, die die entsprchened weiterverarbeitet (auch schon fertig)
    die weiterverarbeitung entscheidet sich nach dem -H1 oder -H3 (das ist aber auch immer ne feste Position)

    Könnte sich einer der Gurus mal erbarmen und mir verklickern, wie ich das mit ner Array-Lösung erschlagen kann.
    Das mit den temporärer Dateien ist schon Absicht, wir haben auf versch. Systemen Probleme und wenn die
    Kiste abschmiert will ich genau sehen können, wo das passiert ist.

    Brauch hier keinen kompletten Code aber vielleicht mal ein Beispiel:
    wie bring ich die zeilen in ein Array das in ne Temp-Datei, wie kann ich dann die einzelnen Zeilen und Positionen (die ersten beiden)
    Stellen ansprechen.

    Please help.

    1000 Dank.

    Gruss

    German

  • HEX00

    • msp-holzwurm
    • 27. Oktober 2006 um 21:14

    Hallo Bernd!

    mit StringMid und StringRight bin ich heute (auf der Arbeit) nur auf die Schnauze gefallen.

    Die beiden Stringfunktionen haben immer nur bis zum ersten Hex 0 eingelesen und sind mir dann ausgestiegen.

    Bist Du sicher, daß das geht????


    Hab jetzt mir aber was total bescheuertes gebaut, so ne Art HEX-Filter:
    (bevor hier jeder meint, ich überlass das Denken nur den anderen)


    #include <string.au3>

    $file = FileOpen("F:\saug\test.txt", 0)

    ; Read in 1 character at a time until the EOF is reached

    While 1

    $chars = FileRead($file, 1)
    $pos=$pos+1
    If @error = -1 Then ExitLoop
    $testit=StringIsAscii($chars)
    ;$hexstring=_StringtoHex($chars)
    ;msgbox(0,"in hexffh", $hexstring)
    ;if $hexstring="0A" then
    ;$pos=0
    ; EndIf
    if $testit=1 then
    MsgBox(0, "Char read:", $chars)
    EndIf
    Wend

    FileClose($file)

    das geht doch sicher erheblich Intelligenter.

    Grüße

    German

  • HEX00

    • msp-holzwurm
    • 27. Oktober 2006 um 20:32

    Hallo All!

    es ist wieder mal Freitag abend und ich hab mal wieder ein Problemchen aus der Arbeit im Kopf:

    frage per fremder EXE was ab (in ein ein Protokollfile) leider steht in einer Antwort folgendes in der Protokoll-Datei


    123456 XXXXXXX C:\daten\ausgang\otto55.txt XYZ
    123456 XXXXXXX c:\daten\ausgang\otto88.txt ABC


    das X ist Hex 00

    ich brauch aus der Zeile nur jeweils den Dateinamen und den Code
    bei Zeile 1 wären das
    c:\daten\ausgang\otto55.txt XYZ

    als Antwort.

    Irgendwie schmiert mir alles nach 123456 ab.

    Please help

    möglichst einfache Lösung, brauch da keine High-End Funktion, würde mir langen das Hex00 einfach zu überlesen oder das mit irgendwas vorher in ein Lesbares Zeichen zu konvertieren.

    Es dankt Euch


    German

  • String aus XML rausholen

    • msp-holzwurm
    • 24. Oktober 2006 um 20:06

    könntest du den Hinweis bitte etwas verfeinern, da ist ja waaahhhnsinnig viel auf em Link.

    Danke.

    gruss

    german

  • String aus XML rausholen

    • msp-holzwurm
    • 24. Oktober 2006 um 19:47

    hab heute die Lösung von MEGA eingebaut, wäre sehr dankbar, wenn irgendjemand noch ein paar Lesehinweise zu den RegExp hätte (da steig ich noch nicht so ganz durch und bekomm noch graue Haare)

    Grüße

    German
    PS: wie stell ich das Thema jetzt von OFFEN auf ERLEDIGT??

  • Studium / Ausbildung / Sonstiges ?

    • msp-holzwurm
    • 24. Oktober 2006 um 19:43

    Hallo!

    hab einfach beim Kunden gelernt und bin dann nach 2 Jahren und Wehrdienst zwischenrein zum Datenverarbeiter gewechselt.

    Hier keine Probleme mit den Kunden (ich weiß ja was die wollen) und versteh auch deren Arbeitsabläufe, aber die Kollegen von den rein theoretischen Studiengängen blicken dann oft nicht durch:
    - was will den der da draußen??
    und kommen mit den Kunden gar nicht klar, bei den Seminaren das gleiche Problem.

    Daher ist sicher ein Dualstudiengang oder ein BA-Studium zu bevorzugen. (die Firma bildet Dich ja nicht aus, damit der Studienplatz belegt ist, sondern schaut sich mal an:

    was kann der Kerl, hat der Interesse an der Arbeit, kommt der mit den Kollegen klar ...

    und danach wollen die Dich ja auch übernehmen.


    Gruss

    German

  • String aus XML rausholen

    • msp-holzwurm
    • 18. Oktober 2006 um 20:02

    Hallo Leute!

    nachdem heute wieder Telefonterror war, bin ich irgendwie nicht auf die glorreiche Idee gekommen, wie das geht:

    ich habe folgende Zeile aus einer XML-Datei
    <OPCODES><OPCODE><Name>SOF</NAME><PRG>tuwas.bat</PROG><Status>A</Status></OPCODE><OPCODE><Name>SOX</NAME><PRG>justdoit.exe</PROG><Status>S</Status></OPCODE></OPCODES>

    (hier mal so als Muster) und brauche als Antwort nur den TAG und den Status dazu
    SOF A
    SOX S

    eigentlich nur die gesperrten Opcodes (also Status S) das Zeug steht wirklich in einer Zeile drin!!

    soll ich daß in mehrere Zeilen zerlegen also z.B. das /OPCODE durch einen Zeilenumbruch ersetzen??? (das in einer temporären Datei)????

    was besseres ist mir beim heimfahren von der Arbeit nicht eingefallen??

    bring ich die Zeile in ein oder mehrere arrays rein???

    PLEASE HELP

    Grüsse

    German
    schaff den XML code hier nicht rein, in der zeile das kleine x durch KLEINERALS und as X durch GRÖSSERALS ersetzen!!

  • DFÜ auf Netzwerkrechner

    • msp-holzwurm
    • 13. Oktober 2006 um 22:19

    versteh Dein Problem zwar nicht ganz, bin aber 50h die Woche als Datentransportknecht am Arbeiten hier meine Lösung:

    die schreibst ein Programm (auf dem Rechner der die DFÜ hat) das läuft als Dienst und arbeitet z.B. alle 35 Sekunden eine INI ab. (auf den einzelnen PCs hast Du eine Freigabe und einen Transportuser eingerichtet, es lassen sich auch aus Sicherheitsgründen mehrere verschiedene Transportuser einrichten, wenn Du Daten aus sensiblen Bereichen abholst (z.B. Personalstelle, Forschung, Entwicklung)

    [Rechner1]
    Network=J
    NetWorkShare=\\rechner1\buchhaltung\export
    Files=\\rechner1\buchhaltung\export\rechnungen.*
    Networkuser=admin_rechner1

    für den admin_rechner1 hast Du Dir ein verschlüsseltest Passwort auf der DFÜ-Kiste hinterlegt (im Schlüssel ist auch noch die IP-Nummer von der DFÜ-Kiste ohne Punkte als Divisor, dann kann sich jeder die Datei klauen, aber nichts mit Anfangen)

    hab das soweit verfeinert, daß ich per Registry den Pausenwert zwischen 15 Sekunden und 15 Minuten variieren kann.

    Wichtig:
    die Zeitspanne darf nicht zu kurz sein,
    Zugriffe auf den Remoterechner erstmal testen nach dem Verbindungsaufbau (temporäre Datei schreiben und wieder löschen)

    Achtung:
    auf Terminalserver sollte man was einbauen, daß die Datei (die Du kopieren/moven) willst eine letzte Zugriffszeit von z.B. mindestens 20 Sekunden hat, sonst kanns passieren, daß der der "Exportapplikation" die Daten unterm Hintern wegziehst und sowas wird zu 99,99% dort nicht abgefangen.

    Nachteil:
    sollte jemand das Programm abschiessen während es die Verbindung geöffnet hat, dann kann evlt. ein Zugriff von der DFÜ-Kiste auf den Rechner1 offen sein (weiß ja nicht, wie sicher Deine Daten da sein müssen).

    Für Fragen stehe ich gerne zur Verfügung.
    Mein Autoit-Programm läuft seit ca. 8 Wochen bei mehreren unserer Großkunden und es läuft einfach ...


    Gruss

    German

  • dann auch mal ich

    • msp-holzwurm
    • 13. September 2006 um 20:31

    Hallo nach FFM aus dem Spessart:

    kein Problem mit größeren Skripten, seit vorgestern läuft bei meinem Premiumkunden Nr.1 (3000 PCs und 50 Nervensägen in der EDV) ein größeres Autoit-Tool um mir Daten von einem Kommunikationsserver auf einen anderen zu schieben und es läuft einfach sagenhaft. (natürlich als Dienst gestartet mit Zeitsteuerung und Schlafpäuschen wenn ich wichtigeres zu tun habe)

    Ansonsten: Auswertungstools (ini's Anzapfen, Fehlersituationen vorbeugend entgegenwirken,OBD (On Board Diagnose) wie die Autoschlosser sagen, eMails verschicken lassen um Admins zu wecken....

    Von Tag zu Tag werd ich ein größerer Fan von Autoit.

    Grüße

    German

  • Anzeigefenster

    • msp-holzwurm
    • 8. September 2006 um 21:23

    meine lieben Kollegen haben natürlich mein neues Teil gleich mal über den Gesamtbestand aller Kunden eines ganzen Tages laufen lassen (schlappe 3,7 MB) da läuft dann nix mehr mit _arrayDisplay (das hab ich zwar jetzt fertig, aber das war für die Katz)
    bin jetzt auf RunWait("notepad.exe " $myTempfile....

    umgestiegen

    Danke & Gruss

    German

  • Dateien aus versch. Directorys kopieren

    • msp-holzwurm
    • 8. September 2006 um 21:20
    [autoit]


    ; Beispiel fuer basler
    ; vom ausgepowerten German
    ; in F:\benutzer\xxx\index.dat nach e:\basler\xxx\index.dat kopieren
    ; alle anderen Dateien, finger weg
    ; gesuchte Datei index.dat soll nach e:\basler ... kopiert werden
    ; hier im Turobdurchgang geschrieben und kurz getestet
    ; Verzeichnisse mußt Du Dir halt anpassen
    ; das mit den Funktionen spart tierisch arbeit, hab den ganzen Tag mit
    ; autoit programmiert heute

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

    $dirsearch = FileFindFirstFile("F:\benutzer\*")

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

    ; Check if the search was successful
    If $dirsearch = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
    EndIf

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

    While 1
    $file = FileFindNextFile($dirsearch)
    If @error Then ExitLoop
    ; MsgBox(4096, "File:", $file)
    ; prüfen ob gefundene Datei ein Verzeichnis ist
    $checkit=_isdir("F:\benutzer\" & $file)
    if $checkit=1 then
    ;msgbox(0,"huch ein verzeichnis gefunden","XX")
    if FileExists("F:\benutzer\" & $file & "\index.dat") then
    _makesichdir($file)
    msgbox(0,"ich müssenkopieren", "F:\Benutzer\" & $file & "\index.dat")
    FileCopy("F:\Benutzer\" & $file & "\index.dat", "E:\basler\" & $file & "\index.dat",1)
    EndIf

    EndIf

    WEnd

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

    ; Close the search handle
    FileClose($dirsearch)

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

    Func _isdir($DIR)
    ; Returncodes
    ; 0 ist kein Verzeichnis
    ; 1 ist ein Verzeichns

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

    $attrib = FileGetAttrib($DIR)

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

    If StringInStr($attrib, "D") Then
    Return 1
    Else
    Return 0
    EndIf

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

    EndFunc

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

    Func _makesichdir($file)
    if FileExists("E:\basler\" & $file) then
    ; alles klaro
    Else
    DirCreate("E:\basler\" & $file)
    EndIf

    [/autoit]

    bernd670: AutoIt-Tags ergänzt ;)

  • Dateien aus versch. Directorys kopieren

    • msp-holzwurm
    • 7. September 2006 um 21:05

    bin jetzt ziemlich platt, aber prinzipiell geht das so:

    schleife 1:
    Hauptverzeichnis abarbeiten
    schleife2: gibts hier eine xyz-Datei

    ende schleife2
    ende schleife 1


    gruss

    german

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™