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

Beiträge von Ilse

  • Array Var Problem

    • Ilse
    • 14. April 2011 um 18:18

    Hallo,

    es ist jetzt ein folgender Fehler
    aufgetaucht. Ich weiß nicht woran das liegen kann!

    [autoit]


    Global $aZeile

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

    For $i = 1 To UBound($aZeile,1)-1
    if StringInStr($aZeile[$i],$Form) Then
    ;$aZeile[$i] = StringReplace($aZeile[$i], "URL GOTO=", "")
    $search = _StringBetween($aZeile[$i],":","ATTR=ID")
    _ArrayDisplay($Search)
    MsgBox(0,"",$search[0])

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

    EndIf
    next

    [/autoit]

    Das ist meine Fehlermeldung

    Zitat

    : ==> Subscript used with non-Array variable.:
    MsgBox(0,"",$search[0])
    MsgBox(0,"",$search^ ERROR

    Ich bekomme die Zeile angezeigt, aber die Msgbox hat doch das Array?
    Auch wenn ich Das Array dimensioniere

    Dim $aZeile[10]

    erhalte ich einen Error

    ?( ?(
    Liebe Grüße
    Ilse

  • Array Var Problem

    • Ilse
    • 14. April 2011 um 13:00

    Hallo Elektrikk & TheLuBu,

    merci für die Hilfe.
    MsgBox(0,"",$search[0])

    Mal wieder 0,1% gelernt.


    Liebe Grüße
    ;) Ilse

  • Array Var Problem

    • Ilse
    • 14. April 2011 um 12:28

    Hallo,

    ich habe ein Problem mit Variablen
    Verwende ich diesen Code
    dann klappt soweit alles!

    [autoit]


    $search = _StringBetween($aZeile[$i],":","")
    _ArrayDisplay($search) ; Das Ergebnis wird korrekt angezeigt! Ein Erfolgserlebnis!

    [/autoit]

    Nun möchte ich die Variable $Search weiterverarbeiten
    dann klappt es nicht mehr!

    [autoit]


    $search = _StringBetween($aZeile[$i],":","")
    _ArrayDisplay($search) ; Das Ergebnis wird korrekt angezeigt!

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

    MsgBox(0,"",$Search); Die Msgbox zeigt das Array nicht an.
    FileWriteLine($NeueDatei, $search) ; Auch hier wird nichts eingetragen!

    [/autoit]

    Liebe Grüße
    Ilse ;)

  • File aktualisieren/speichern

    • Ilse
    • 13. April 2011 um 16:23

    das probiere ich mal.
    Muß jetzt leider wieder los...

    Naja, ein neuer Autoit-Tag wartet Morgen auf mich
    und nochmals...., ich bin froh und dankbar für die tolle Hilfe!

    ;) Ilse

  • File aktualisieren/speichern

    • Ilse
    • 13. April 2011 um 15:47

    , so
    habe
    FileWriteLine($NeueDatei, $aZeile[$i])
    noch in die if Blöcke integriert!

    Jetzt ist alles gut!

    DAnke Misterspeed

  • File aktualisieren/speichern

    • Ilse
    • 13. April 2011 um 15:30

    :rock: For $i = 1 To UBound($aZeile,1)-1

    Es läuft (ich verbeuge mich) ;)

    In der neuen Datei sind alle Zeilen drin!
    Eigentlich sollten da doch nur die 2 neuen Zeilen rein! ?(


    Mein Scite-Editor hatte bei keinem Durchlauf eine Fehlermeldung ausgegeben.
    In der Konsole war alles ok! SciTE Version 2.25

    Wie schon in dem anderen Thread erwähnt,
    diese Schreibweisen bringen mich wirklich durcheinander.
    Wenn ich was über Arrays lese dann steht da immer
    $aZeile[1]...
    UBound ($aZeile,1)
    aber das weiß ich ja jetzt. Ich versuche jetzt mehr mit Arrays zu machen,
    dann kapier ich das bestimmt mal.


    Liebe Grüße
    Ilse ;)

  • File aktualisieren/speichern

    • Ilse
    • 13. April 2011 um 14:45

    oh Misterspeed
    wie ist das Leben schön....

    Zitat

    Dann musst du halt mal die Fehlermeldungen vom Scite Editor lesen.

    Scite wirft keine Fehlermeldung aus!
    Habe alles geändert, klappt aber immer noch nicht!

    [autoit]


    #include <Array.au3>
    #include <file.au3>

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

    Global $aZeile, $sPathFile = 'test.txt' ; sicher dass du hier nicht vielleicht besser einen vollständigen Pfad angeben solltest?
    $NeueDatei = InputBox("Neu","DateiName","DateiNeu.txt") ; same here...

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

    _FileReadToArray($sPathFile, $aZeile) ; txt einlesen in Array
    _ArrayDisplay($aZeile)
    $Version = "Version" ; das gesuchte Wort im Text
    $GoTo = "Goto=" ; ein weiteres gesuchte Wort im Text

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

    For $i = 1 To UBound($aZeile[0])-1
    if StringInStr($aZeile[$i],$Version) Then
    $aZeile[$i] = StringReplace($aZeile[$i],$Version,"Ilse Version")
    EndIf
    if StringInStr($aZeile[$i],$GoTo) Then
    $aZeile[$i] = StringReplace($aZeile[$i],$GoTo,"MeinText")
    EndIf
    Next
    ; so und nun da wir das Array von allem Unrat befreit haben schreiben wir erst in die Datei:
    _ArrayDisplay($aZeile)
    _FileWriteFromArray($NeueDatei,$aZeile,1)

    [/autoit]

    ...ich bin wirklich kurz vorm wahnsinnig werden. ;(
    Das ist ja schlimmer als die Folterei im Mittelalter...

    Grüße
    Ilse

  • File aktualisieren/speichern

    • Ilse
    • 13. April 2011 um 14:04

    Hallo Misterspeed,

    irgendwie ist da der Wurrm drin.

    Wenn ich den Code Starte:

    [autoit]


    #include <Array.au3>
    #include <file.au3>

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

    Global $aZeile, $sPathFile = 'test.txt' ; sicher dass du hier nicht vielleicht besser einen vollständigen Pfad angeben solltest?
    $NeueDatei = InputBox("Neu","DateiName","DateiNeu.txt") ; same here...

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

    _FileReadToArray($sPathFile, $aZeile) ; txt einlesen in Array
    _ArrayDisplay($aZeile)
    $Version = "Version" ; das gesuchte Wort im Text
    $GoTo = "Goto=" ; ein weiteres gesuchte Wort im Text

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

    For $i = 1 To UBound($aZeile)
    if StringInStr($aZeile[$i],$Version) Then
    $aZeile[$i] = StringReplace($aZeile[$i],$Version,"Ilse Version")
    EndIf
    if StringInStr($aZeile[$i],$GoTo) Then
    $aZeile[$i] = StringReplace($aZeile[$i],$GoTo,"MeinText")
    EndIf
    Next
    ; so und nun da wir das Array von allem Unrat befreit haben schreiben wir erst in die Datei:
    _ArrayDisplay($aZeile)
    _FileWriteFromArray($NeueDatei,$aZeile)

    [/autoit]

    nach der Msgbox komm ja _ArrayDisplay
    hier wird alles unverändert angezeigt und die DateiNeu.txt bleibt leer!

    Da wurde nichts hineingeschrieben!
    Meine Text der gelesen wird = test.txt
    Die neue Datei=DateiNeu.txt und diese bleibt nachwievor leer!

  • _FileWriteFromArray liefert keinen Eintrag

    • Ilse
    • 13. April 2011 um 13:10

    Hallo Gianni,

    dank dir, aber du benutzt filewriteLine!

    ich habe es jetzt hinbekommen
    _FileWriteFromArray($sFile, $aRecords,3,3);
    Hier lag der Fehler
    warum man das nicht so schreiben kann $aRecords[3] keine Ahnung!

    Viele Grüße
    Ilse ;)

  • _FileWriteFromArray liefert keinen Eintrag

    • Ilse
    • 13. April 2011 um 12:40

    Hallo

    was mache ich hier nur falsch?
    Kurze Info:

    • Ich lese einen Text (mehrere Zeilen) in mein Array
    • Ich schreibe mit FileWritefromArray bestimmte Zeilen in eine neue Datei (das klappt nicht)

    Mein Code:

    [autoit]


    #include <file.au3>
    Dim $aRecords
    $sFile = @ScriptDir & "\Test.txt" ; das ist die neue Datei in die geschrieben wird!
    If Not _FileReadToArray("MeinText.txt", $aRecords) Then ; Mein Text der gelesen wird! Mehrere Zeilen...
    MsgBox(4096, "Fehler", "Fehler beim Einlesen der Datei in das Array!" & @CRLF & "Fehlercode: " & @error)
    Exit
    EndIf

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

    For $x = 1 To $aRecords[0] ; zeilenweise Loop
    MsgBox(0, 'Datensatz ' & $x & ':', $aRecords[$x]); hier lasse ich alle Zeilen anzeigen!
    if $x = "3" then ; Wenn die 3. Zeile erreicht ist...
    MsgBox(0,$aRecords[3],"3.Zeile wird geschrieben"); dann schreibe nur diese Zeile in die Datei!
    _FileWriteFromArray($sFile, $aRecords[3], 1); hier passiert nichts!
    endif
    if $x = "5" then ; Wenn die 5. Zeile erreicht ist...
    MsgBox(0,$aRecords[5],"5.Zeile wird geschrieben"); dann schreibe nur diese Zeile in die Datei!
    _FileWriteFromArray($sFile, $aRecords[5], 1); hier passiert nichts!
    endif
    Next

    [/autoit]

    Ich komme einfach nicht mehr weiter!

    Liebe Grüße
    Ilse ;)

  • File aktualisieren/speichern

    • Ilse
    • 13. April 2011 um 11:26

    Guten Morgen zusammen,

    Schnuffel
    ich weiß, aber ich lerne jeden Tag ein paar % mehr!

    misterspeed
    Hier meine Versuche mit Arrays

    Ich kann zwar immer noch nicht die gewünschte Zeile
    in die neue Datei schreiben aber
    vielleicht könnt Ihr ja mal drübersehen und mir sagen
    was da falsch ist und ob ich vom Ansatz her jetzt auf dem richtigen Weg bin!

    Mein Code

    [autoit]


    #include <Array.au3>
    #include <file.au3>

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

    Global $aZeile, $sPathFile = 'test.txt'

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

    $NeueDatei = InputBox("Neu","DateiName","DateiNeu.txt")
    _FileReadToArray($sPathFile, $aZeile) ; txt einlesen in Array
    ;_ArrayDisplay($aZeile)
    $Version = "Version" ; das gesuchte Wort im Text
    $GoTo = "Goto=" ; ein weiteres gesuchte Wort im Text

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

    For $i = 1 To UBound($aZeile)
    MsgBox(0,"",$aZeile[$i]);Test Zeilen anzeigen

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

    $iIndex = _ArraySearch($aZeile, $Version, 0, 0, 0, 1); nach "Version"suchen
    If @error Then
    MsgBox(0, "Nicht gefunden", '"' & $Version & '" Version nicht gefunden.')
    Else
    MsgBox(0, "Gefunden", '"' & $Version & '" Version gefunden und ersetzen ' & $iIndex & ".")

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

    $line = StringReplace($aZeile[$i],"VERSION","Ilse Version");wurde gefunden
    ;MsgBox(0,"",$line)
    _FileWriteFromArray($NeueDatei,$line); hier sollte die abgeänderte Zeile in die neue Datei!

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

    EndIf

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

    Next

    [/autoit]

    Was ich auch noch nicht verstehe, wieso wird die Msgbox bei jeder Zeile angezeigt!

    Liebe Grüße
    Ilse ;)

  • File aktualisieren/speichern

    • Ilse
    • 12. April 2011 um 21:01

    . Schnuffel..

    klar möchte ich das lernen und ich möchte auch kein Skript erstellt bekommen.

    Habe heute nochmal etliche Befehle, Varianten rauf und runter probiert.
    Auch die Hilfe gelesen, FileWrite, FileWriteline, StringInStr, FileReadLine, StringReplace, If......

    Und nun kommen wieder Varianten dazu
    _filereadtoarray() und _filewritefromarray()

    Mal ehrlich, wenn man dann mit falschem Werkzeug ran geht
    dann dauert das ewig. Ich habe heute zig Stunden damit verbracht
    und weiß offen gesagt immer noch nicht welches Werkzeug ich auspacken, lesen, lernen muß!

    misterspeed
    ...na dann werd ich mal filereadtoarray probieren.
    Danke für den Tipp (Arrays ....meine Freunde)

    Liebe Grüße
    Ilse ;)

  • File aktualisieren/speichern

    • Ilse
    • 12. April 2011 um 19:38

    ich komme nicht weiter!

    Wie kann man eine Zeile nach dem Inhalt abfragen?

    [autoit]


    #Include <String.au3>
    #Include <Array.au3>

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

    $file = FileOpen("test.txt", 0)
    $NeueDatei = InputBox("Neu","DateiName","DateiNeu.txt")
    ; Check if file opened for reading OK
    If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
    EndIf

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

    While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop

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

    MsgBox(0, "Line read:", $line)

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

    if $line = StringInStr($line, "Version","ver") > 0 Then
    MsgBox(0, "Version:", $line)
    FileWrite($NeueDatei,$line & @CRLF)
    endif
    Wend

    [/autoit]

    Also wenn die Zeile 1 Version enthält
    dan mach das und das und
    schreibe die Zeile in die neue Datei.
    Enthält die Zeile 2 xxx dann schreibe diese in die neue Datei.

    Muß ich dazu den Befehl StringInStr verwenden?

    :( Ilse

  • File aktualisieren/speichern

    • Ilse
    • 12. April 2011 um 18:24

    Hallo elektrikk,
    ich versteh's nicht!

    [autoit]


    While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    MsgBox(0, "Line read:", $line)
    $line1 = StringReplace($line,"VERSION","Function")
    $line2 = StringReplace($line,"URL GOTO=","$oIE = _IECreate ")

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

    FileWrite($NeueDatei,$line1 & @CRLF) ; Hier sollte doch die Zeile 1 geschrieben werden!
    FileWrite($NeueDatei,$line2 & @CRLF) ; Hier sollte die Zeile 2 geschrieben werden!
    Wend

    [/autoit]

    Die Msgbox zeigt mir alle Zeilen nacheinander!
    Aber ich schreibe mit FileWrite doch nur 2 Zeilen, wieso stehen im neuen File alle drin!

    Logisches Denken? ?(

    Bitte um Auflösung, sonst muß ich heute noch zum Arzt!
    brr...
    Liebe Grüße
    Ilse :(

  • File aktualisieren/speichern

    • Ilse
    • 12. April 2011 um 17:02

    Hallo elektrikk,

    schön daß du dich meldest.
    Ich lese und probiere schon seit Stunden.

    Kämpfe immer noch mit FileWrite rum
    Vielleicht kannst du mir helfen:
    Wenn meine text.txt so aussieht

    [autoit]


    VERSION BUILD
    TAB T=1
    URL GOTO=http://www.web.de/
    TAG POS=2 TYPE=A ATTR=TXT:FreeMail
    SET !ENCRYPTION NO
    URL GOTO=http://www.gmx.de/

    [/autoit]


    ich aber nur z.B.die Zeile
    1,3 und vier in meiner neuen txt Datei brauche
    aber bereits StringReplace bearbeitet, wie mache ich das?

    [autoit]


    #Include <String.au3>
    #Include <Array.au3>

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

    $file = FileOpen("text.txt", 0)
    $NeueDatei = InputBox("Neu","DateiName","DateiNeu.txt")
    ; Check if file opened for reading OK
    If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
    EndIf

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

    While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    ;MsgBox(0, "Line read:", $line)
    $line = StringReplace($line,"VERSION","Ilse")
    $line = StringReplace($line,"URL GOTO=","$oIE = _IECreate ")

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

    FileWrite($NeueDatei,$line & @CRLF)

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

    Wend

    [/autoit]

    In der neuen Datei ist jedesmal der kpl. Code
    und nicht nur die Zeilen die ich brauche!

    huh..
    Liebe Grüße
    Ilse ;)

  • File aktualisieren/speichern

    • Ilse
    • 12. April 2011 um 16:14

    Hallo Schnuffel,

    noch eine Frage zu Replace

    Wenn mein Text solche Zeilen enthält:

    [autoit]


    web= http://www.web.de/
    web=http://www.gmx.net/

    [/autoit]


    es aber so aussehen sollte

    [autoit]


    _IECreate ("http://www.web.de")
    _IECreate ("http://www.web.net")

    [/autoit]


    dann komme ich so nicht weiter

    [autoit]


    $line = StringReplace($line,"web","$oIE = _IECreate ")
    ;deshalb habe ich das probiert
    $search = _StringBetween($line,"Goto="," ")

    [/autoit]

    komme so nicht weiter...
    die Anführungszeichen und Klammern fehlen!

    das wäre z.B. eine Adresse
    1 http://www.webmail.net
    2.http://www.hotmail.com
    Wie kann man im Text (".........") das mit ersetzen?
    ("http://www.hotmail.com")
    daß aus
    web=http://www.hotmail.com
    das wird
    _IECreate ("http://www.hotmail.com")

    Kannst du mir da helfen?

    Liebe Grüße
    Ilse ;)

  • File aktualisieren/speichern

    • Ilse
    • 12. April 2011 um 14:23

    ...Ein kleines Problem noch:
    Wenn die Zeile so aussieht: Version 443355 ghd 443355322

    Spoiler anzeigen


    $line = StringReplace($line,"VERSION","")


    Wie kann man eine ganze Zeile löschen?
    Es gibt so viele Stringbefehle

    Ich meine wenn das Wort gefunden wurde, daß dann diese
    gelöscht wird.

    ;) Grüße Ilse

  • File aktualisieren/speichern

    • Ilse
    • 12. April 2011 um 14:05

    Hallo Schnuffel,

    ...oh super es klappt endich.
    Ich dachte per Loop, FileReadline...+ kompliziert +1???

    Und wenn ich dann deine 10 Zeilen sehe bin ich
    schon etwas deprimiert!


    Liebe Grüße
    Ilse ;)

  • File aktualisieren/speichern

    • Ilse
    • 12. April 2011 um 13:18

    Muß mich wieder melden,

    ich komme da einfach nicht ans Ziel!
    Meine Textdatei sieht so aus:
    test.txt

    Spoiler anzeigen


    VERSION
    URL GOTO=http://www.web.de/


    So sollte sie später aussehen

    Spoiler anzeigen


    Test
    URL Web=http://www.web.de/

    Mein Code:

    [autoit]


    $file = FileOpen("test.txt", 0)
    $NeueDatei = InputBox("Neu","DateiName","DateiNeu.txt")
    ; Check if file opened for reading OK
    If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
    EndIf

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

    ; Read in lines of text until the EOF is reached
    While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    MsgBox(0, "Line read:", $line)
    $Wort1 = StringReplace($line,"VERSION","Test")
    FileWriteLine($NeueDatei,$Wort1)
    $Wort2 = StringReplace($line,"GOTO","Web")
    FileWriteLine($NeueDatei,$Wort2)
    ;FileWrite($NeueDatei,$line)
    Wend
    ;FileWrite($NeueDatei,$file)
    ;FileWrite($NeueDatei("Neu","Neue Datei"),$file)
    FileClose($file)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]
  • File aktualisieren/speichern

    • Ilse
    • 12. April 2011 um 12:44

    Hallo Schnuffel,

    merci für deine Hilfe.
    Bitte schu doch nochmal drüber.
    Also mit FileWriteLine habe ich was hinbekommen.

    Nur FileWrite klappt nicht!

    [autoit]


    $file = FileOpen("test.txt", 0)
    $NeueDatei = InputBox("Neu","DateiName","DateiNeu.txt")
    ; Check if file opened for reading OK
    If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
    EndIf

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

    ; Read in lines of text until the EOF is reached
    While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    MsgBox(0, "Line read:", $line)
    $Wort1 = StringReplace($line,"VERSION","Test")
    ;FileWriteLine($NeueDatei,$Wort1)
    $Wort2 = StringReplace($line,"GOTO","Web")
    ;FileWriteLine($NeueDatei,$Wort2)
    Wend
    FileWrite($NeueDatei,$file)
    FileClose($file)

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

    Also daß alle Änderungen nur mit einem Befehl
    und nicht mit FileWriteLine's gespeichert werden müssen.

    Da hänge ich fest!

    Liebe Grüße
    Ilse ;)

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™