Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11
  1. #1
    Hepatitis A-Z
    Registriert seit
    22.09.2010
    Beiträge
    86

    Standard AutoIt Text zu Array

    Hallo,
    ich möchte mir ein au3 Script programmieren, mit dem ich eine Textdatei einlese, jede einzelne Zeile in einem Array abspeichere, und dann am ";" jeweils die Zeile trennen.
    Das Ergebnis soll eine 2D-Array sein, bei der die Werte ca so aussehen:
    | 0 | 1
    0 | Zeile 1 vor ";" | Zeile 1 nach ";"
    1 | Zeile 2 vor ";" | Zeile 2 nach ";"
    2 | Zeile 3 vor ";" | Zeile 3 nach ";"
    3 | Zeile 4 vor ";" | Zeile 4 nach ";"
    4 | Zeile 5 vor ";" | Zeile 5 nach ";"
    ...

    Nach Erstellen der Array soll der Inhalt wie folgt in MsgBoxes ausgegeben werden:
    [0][0], [0][1], [1][0], [1][1], [2][0], [3][1], ...
    Mein Script bis jetzt:


    Wär nett wenn mir einer sagen könnte, warum das ganze nicht funktioniert.

    Haggi

  2. #2
    BackNine Wurm Avatar von Mofo
    Registriert seit
    29.11.2008
    Beiträge
    312

    Standard

    Ich schau mir das später an, aber beim drüberfliegen würde ich sagen du solltest deine Arrays ersteinmal initialisieren und deren Größe festlegen..
    Die musst du dann im verlauf dynamisch erweitern..




  3. #3
    Hepatitis A-Z
    Registriert seit
    22.09.2010
    Beiträge
    86

    Standard

    Ich habe das ganze so gemacht, wie im AutoIt Wiki beschrieben:

    Deswegen bin ich ja auch etwas verwundert, warum das ganze nicht funktioniert...

  4. #4
    BackNine Wurm Avatar von Mofo
    Registriert seit
    29.11.2008
    Beiträge
    312

    Standard

    Ok die größe ist bei AutoIt ersteinmal unwichtig

    Abgesehen davon das es einfacher geht, und du ein paar Syntaxfehler hast, denkst du richtig, allerdings kannst du nicht ein array in einen teil eines arrays speichern..

    Und stringsplit gibt dir nunmal Drei werte als array zurück..
    Das musst du separat behandeln..




  5. #5
    Hepatitis A-Z
    Registriert seit
    22.09.2010
    Beiträge
    86

    Standard

    Arrays als Elemente eines Arrays
    For $i = 1 To $arCSV[0]
    $arCSV[$i] = StringSplit($arCSV[$i], ";")
    Next

    Das hab ich aus dem Wiki und so werden ja Arrays in einer Array gespeichert...

  6. #6
    BackNine Wurm Avatar von Mofo
    Registriert seit
    29.11.2008
    Beiträge
    312

    Standard

    Nein das geht nicht, oder nicht mehr..

    Also ich würde es zwar gleich in ein 2D Array einlesen, aber es geht in dem Beispiel sicherlich nur um die Übung mit dem Umgang von Arrays , also hab ich dir jetzt mal eine Lösung gemacht so wie du vorgehen wolltest..

    Code:
    #include <File.au3>
    #include <Array.au3>
    Dim $ar1
    $file = "file.txt"
    $array = _FileReadToArray($file,$ar1)
    _ArrayDisplay($ar1)
    Dim $ar2[UBound($ar1)*2-1]
    local $z=0
    For $i = 1 To $ar1[0]
        $j = StringSplit($ar1[$i],';')
        $ar2[$i+$z] =$j[1]
        $ar2[$i+$z+1] =$j[2]
        $z+=1
    Next
    $ar2[0]= UBound($ar2)
    _ArrayDisplay($ar2)
    
    Dim $ar3[UBound($ar2)/2][2]
    $z=1
    for $i = 0 to UBound($ar2)/2-1
        $ar3[$i][0] = $ar2[$i+$z]
        $ar3[$i][1] = $ar2[$i+1+$z]
        $z+=1
    Next
    _ArrayDisplay($ar3)
    for $i = 0 to UBound($ar3,1)-1
        for $j=0 to UBound($ar3, 2)-1
            MsgBox(1, "Testausgabe an arraystelle :"&$i&'/'&$j, $ar3[$i][$j])
        Next
    Next
    Geändert von Mofo (25.10.2010 um 17:50 Uhr)




  7. #7
    Hepatitis A-Z
    Registriert seit
    22.09.2010
    Beiträge
    86

    Standard

    Da kommt ein Fehler:

    Line7 (File "C:\arraytest.au3"):

    Dim $ar2[UBound($ar1)*2-1]
    Dim $ar2[^ ERROR

    Error: Array variable subscript badly formatted.
    Woran kann das liegen, oder was bedeutet dieser Fehler überhaupt?

  8. #8
    BackNine Wurm Avatar von Mofo
    Registriert seit
    29.11.2008
    Beiträge
    312

    Standard

    Nun $ar1 (und damit dein file.Txt) sollte schon konform vorliegen sonst bricht das Programm natürlich ab
    Ich bin nach deiner Beschreibung jetzt von einem txt dessen inhalt von diesem Format ist ausgegangen:


    Und damit du auch verstehst was passiert wird das array doch jedesmal angezeigt..
    Das zweite array sollte um das doppelte größer sein, da jeder teil des vorherigen ja in zwei geteilt wurde..
    Das -1 deshalb da das array bei 0 anfängt und hier diesmal in 0 nicht die Größe von sich selbst steht
    Geändert von Mofo (25.10.2010 um 22:31 Uhr)




  9. #9
    Hepatitis A-Z
    Registriert seit
    22.09.2010
    Beiträge
    86

    Standard

    ok jetzt hat er mir eine 1-D Array ausgegeben, wo jede Zeile einzeln gespeichert ist.
    Danach kommt jetzt folgender Fehler:
    Line12 (File "C:\arraytest.au3"):

    $ar2[$i+$z+1] =$j[2]
    $ar2[$i+$z+1] =^ ERROR

    Error: Array variable has incorrect number of subscripts or subscript dimension range exceeded.

  10. #10
    BackNine Wurm Avatar von Mofo
    Registriert seit
    29.11.2008
    Beiträge
    312

    Standard

    Also ich hatte hier eig nicht vor dir jede Zeile einzeln vorzukauen..

    Das bedeutet das er versucht $j[2] zu laden das aber wohl nicht existiert..
    das heist das dein dein Stringsplit nicht 3 Elemente zurückgegeben hat, was wiederum heist, dein txt das du benutzt ist nicht wie von dir beschrieben :/

    Und da das eine Übungsaufgabe ist und du nichteinmal die einfachsten Zusammenhänge verstehst, rate ich dir dich ersteinmal mit leichterem zu beschäftigen..


    Und wenn dein Script abbricht und du das nicht erwartest dann poste nicht jegliche Fehlermeldung hier, sondern bau Messageboxen und debugstrings ein, um zu sehen warum genau.. Das musst du ohnehin lernen
    Geändert von Mofo (26.10.2010 um 20:52 Uhr)




Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Tic Tac Toe - Array als Funktionsparamterer
    Von jookerxxx im Forum C, C++
    Antworten: 8
    Letzter Beitrag: 04.09.2010, 18:12
  2. vb.net | array speichern problem
    Von hackerkevin im Forum .NET Sprachen - Techniken
    Antworten: 1
    Letzter Beitrag: 09.05.2010, 22:49
  3. [VB.NET] Array Problem mit For-Each Schleife
    Von Metropoler im Forum .NET Sprachen - Techniken
    Antworten: 2
    Letzter Beitrag: 07.08.2009, 19:15
  4. C++ Array Index auslesen
    Von Nookie im Forum C, C++
    Antworten: 3
    Letzter Beitrag: 06.08.2009, 09:19
  5. Zeichenkette aus Array
    Von Hu5eL im Forum PHP
    Antworten: 8
    Letzter Beitrag: 08.08.2008, 10:30

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •