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. entsel

Beiträge von entsel

  • FileFindFirstFile zu "fleißig" ?

    • entsel
    • 22. Januar 2012 um 18:19

    Ich war immer der Meinung, um zB. abc@ zu finden, müßte der Suchstring zumindest "*.abc?" oder "*.abc*" heißen ...
    muss man halt die Ext. überprüfen ...

    Die While-Schleife hat bei mir aber funktioniert ?( - ich hätte angenommen "FileFindNextFile" gibt nach dem letzten Filenamen "?nix/nothing/nil?" zurück...

    Danke für Eure Hilfe und den Code

    SG, entsel

  • Datenfiles editieren

    • entsel
    • 22. Januar 2012 um 17:42

    Servus

    Was möchte ich tun:
    Datei öffnen
    Inhalt zeilenweise lesen (ab einer bestimmten Zeile)
    Zeile editieren
    Zeile zurückschreiben (ersetzen der gelesenen Zeile)
    nächste Zeile lesen
    usw.
    Datei schliessen

    Manchmal soll auch eine neue Zeile eingeschoben (nicht angehängt) werden.
    Letzteres ist mir so schon gelungen:

    [autoit]

    _FileWriteToLine("d:\test\file.abc", $zeilennummer, $zeile, 0)

    [/autoit]


    (aber auch nicht immer) ?(


    Für Erstes wollte ich so vorgehen:

    [autoit]

    $fhandle = FileOpen("d:\test\file.abc", 0) ; Datei zum lesen öffnen
    $zeile = FileReadLine($fhandle, $zeilennummer) ; Zeile lesen; $zeilennummer wird vorher gesetzt oder abgefragt
    while $zeile ;solange es Zeilen gibt
    $zeileneu = geänderte Zeile ; (editieren ist kein Problem)
    _FileWriteToLine("d:\test\file.abc", $zeilennummer, $zeileneu, 1) ;Zeile zurückschreiben
    $zeilennummer = $zeilennummer + 1 ;Zeilennummer weiterzählen
    $zeile = FileReadLine($fhandle); nächste Zeile lesen
    WEnd
    FileClose($fhandle) ; Datei schliessen

    [/autoit]

    Leider funktionierts so nicht (das Zurückschreiben) -
    * weil das hier was damit zu tun hat? :
    [ offen ] Anfänger Frage
    * oder der Fehler wo? liegt?
    * oder würdet Ihr das ganz anders machen? (vielleicht gibts ja überhaupt was besseres dafür - als Anfänger sind mir ja noch viele Funktionen unbekannt ;) )

    SG,
    entsel

  • FileFindFirstFile zu "fleißig" ?

    • entsel
    • 22. Januar 2012 um 16:51

    Servus

    Ich suche Dateien (in best. Ordnern) mit einer bestimmten Erweiterung:

    [autoit]

    $search = FileFindFirstFile("d:\test\*.abc")
    $file = FileFindNextFile ($search)
    while $file
    machwas ()
    $file = FileFindNextFile ($search)
    wend

    [/autoit]

    Das funktioniert zwar, aber es werden aber auch Dateien mit der Erweiterung "abc@" gefunden (vielleicht auch noch andere? - ich hatte zufällig *.abc@-Files im Ordner).
    Mein Fehler? korrigierbar? oder muss ich mich damit abfinden und zusätzliche Abfragen einbauen?

    Und noch eine zweite Frage weils grad dazu passt:

    [autoit]

    $file = FileFindNextFile ($search)
    while $file

    [/autoit]


    funktioniert, nicht aber:

    [autoit]

    while $file = FileFindNextFile ($search)

    [/autoit]


    Verschachtelungen sind doch (grundsätzlich?) möglich? Oder nur unter bestimmten Vorausetzungen (nicht)?

    SG, entsel

  • Daten in Liste? print?

    • entsel
    • 7. Januar 2012 um 17:25

    Hallo

    Danke für die Antworten -
    "MsgBox()" kannte ich schon - "ConsoleWrite()" kommt den Vorstellungen aber näher.

    Danke auch für "_FileReadToArray" - werde ich sicher brauchen können.
    Bliebe ev. noch die Möglichkeit, dass die Daten irgendwie anderweitig eingesammelt werden, aber da melde ich mich bei Bedarf und konkretem Beispiel.

    SG,
    entsel

  • Daten in Liste? print?

    • entsel
    • 6. Januar 2012 um 11:01

    Servus

    Danke für die "ConsoleWrite()" - genau was ich gesucht hab.

    Mal klein anfangen - als batch-Ersatz - mit mehr Wissen (ich hoffe zumindest drauf ;) ) tun sich dann auch weitere Anwendungsmöglichkeiten auf.

    Ja, ich bin etwas vorbelastet - in ALisp ist alles eine Liste, sogar das Programm selbst. Vielleicht deshalb die Suche nach Bekanntem.

    Array werd ich mir anschauen, aber muss ich da nicht vorher die Anzahl der Daten/Werte wissen? In meinem Übungsbeispiel wollte ich eine (Daten-)Datei einlesen (unbekannte Länge)
    und die Daten verändern...

    SG.
    entsel

  • Daten in Liste? print?

    • entsel
    • 5. Januar 2012 um 20:07

    Hallo und ein gutes Neues

    Seit einigen Tagen beschäftige ich mich mit AutoIt - noch nichts konkretes - mal nur so herum gespielt (Dateien suchen, öffnen, ergänzen, Eingaben, Meldungen ausgeben, Ini-Files, etc.)

    2 Fragen konnte ich mir bis jetzt weder mit der Hilfe, der Tut's oder Forumsuche beantworten und hoffe daher auf Eure Hilfe.

    a) print?
    wenn ...

    [autoit]

    $ergebnis = $a + $b

    [/autoit]


    ... gibt es eine Art "print"-Funktion, um den Inhalt von Variablen auf dem Bildschirm auszugeben, z.B. um zu überprüfen ob $ergebnis den gewünschten Inhalt hat
    z.B.: print($ergebnis) liefert "$ergebnis=27" (oder auch nur die "27"), vielleicht in dem Fenster, unten in Scite, wo der Programmablauf "dokumentiert" wird. (wie nennt Ihr dieses Fenster eigentlich)

    b) Daten in Liste?
    gibt es eine Möglichkeit, Daten in eine Liste zu packen
    z.B. $liste = list("abc" 17 "as47" 694)
    um diese dann nacheinander "abzuarbeiten",
    z.b. mit

    [autoit]

    for $item in $liste
    machwas mit $item
    next

    [/autoit]


    oder ähnlich?

    Wenn nicht, wie macht man sowas in AutoIt?

    Schönen Gruß
    entsel
    (hoffe, ich hab mich einigermaßen verständlich ausgedrückt)

  • entsel

    • entsel
    • 3. Januar 2012 um 20:10

    Erst mal ein gutes Neues.

    Bei Neulingen weiß man ja nie, ob man die Basics erklären muss oder der Fragende schon etwas weiter ist. Ich möchte versuchen, da etwas Licht ins Dunkel bringen.

    Bei jedem neuen PC das gleiche Spiel:
    Wieso "funktioniert" dieses oder jenes nicht, zB. warum wird die Ext. nicht angezeigt? Wo hatte ich das eingestellt, welches Tool ist dafür verantwortlich? Hat man letztlich alles wieder wie gewohnt eingestellt, die nützlichen kleinen Tools installiert, vergißt man sie wieder - bis zum nächsten neuen PC.
    So ist Windows für mich nichts als das Spielfeld, auf dem die Programme laufen, ich weiß vielleicht noch, dass man den Rasen gießen muss, aber viel mehr nicht. Oder anders gesagt, ich kann weder einen Rechner aufsetzen, noch ein Netzwerk einrichten, etc. und natürlich auch keinen PC zusammenbauen.

    (entsel) ist eine Funktion aus AutoLisp, eine Programmiersprache, die ich mir im Selbststudium angeeignet habe. Sie läuft nur unter AutoCAD und AutoCAD ist quasi mein Job. Dann gibts da noch Relikte aus DOS-Zeiten - Batch-Programmierung - mit all ihren Einschränkungen, sowohl was die Möglichkeiten der Sprache selbst, als auch meine Vergeßlichkeit betrifft. Ich brauch's selten, aber doch hie und da. Da soll jetzt AutoIt einspringen.

    Schöne Grüsse,
    entsel

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™