2 Zeilen in Mehrdimensionales Array schreiben

FunthomasX

Grünschnabel
Hi,
nachdem das erste Stück verdaut ist, kommt nun ein anderes an die Reihen, was wiederum ein bißchen schwere ist.

Hab eine Text Datei in ein Array geschrieben, und der Array sieht jetzt folgendermaßen aus:
=PK -1Y4 main valve on 1
=PN -75Y0 1
=PK -1Y6 emergency-stop valve on 2
=PN -14Y4 2

Nun soll eine Funktion ein neuen Array füllen z.B. NeuArray( 6, ZeilenZähler), wobei ZeilenZähler die Anzahl der Zeilen ist, die er vorher eingelesen hat.
Die Funktion muss jetzt solange einlesen bis er beide Zeilen ( Zeile 1 und 2) erfasst hat und in ein Array geschrieben hat. Sollte so am Ende Aussehen:
NeuArray(0,1) "=PK"
NeuArray(1,1) "-1Y4"
NeuArray(2,1) "main valve on"
NeuArray(3,1) "1"
NeuArray(4,1) "=PN"
NeuArray(5,1) "-75Y0"
NeuArray(6,1) "1"

für Datensatz 2 entsprechend die Werte aus Zeile 3 + 4.
Das Einlesen ist kein Problem ansich. Doch wie sage ich ihm das er für das Einlesen 2 Zeilen und nicht immer nur 1 Zeile dursuchen soll ? :rolleyes:

THX FunthomasX
 
Hi FunThomasX

Also mal grob Skizziert kann ich mir das nur in etwa so vorstellen:

Schleifenbeginn
Zeile 1 einlesen
Werte auseinandernehmen und speichern
Prüfen, ob Ende der Datei noch nicht erreicht worden ist
Zeile 2 einlesen
Werte auseinandernehmen und speichern
Schleifenende

Mir ist keine Funktion bekannt, die zwei Zeilen auf einmal einlesen kann.

Gruß
Das Orakel
 
Ha , danke hab es geschafft :)

Code:
Dim x As Integer
Dim Index, Wortlänge, Erg
Dim Startneu As Integer
Dim Start As Integer
Dim Spalte As Integer
Dim Zeile2 As Integer

ReDim Preserve ArrayZerlegt1(7, Zähler)  ' Zähler z.b. 169, d.h. er hat 169 Zeilenn eingelesen
Startneu = 1
    
    For x = 1 To Zähler - 1 Step 2
    
        'Debug.Print Dateiinhalt(x)
        Start = 1
        Index = 1
        Spalte = 0
        
        Do
            Index = InStr(Start, Dateiinhalt(x), Chr(9))
            If Index = 0 Then Exit Do
            Erg = Mid(Dateiinhalt(x), Start, Index - Start)
            Start = Index + 1
            'Debug.Print Erg
            ArrayZerlegt1(Spalte, x) = Erg
            Debug.Print ArrayZerlegt1(Spalte, x)
            Spalte = Spalte + 1
            Loop Until Index = 0
            
           Zeile2 = x + 1
           Index = 1
           Start = 1
     Do
            Index = InStr(Start, Dateiinhalt(Zeile2), Chr(9))
            If Index = 0 Then Exit Do
            Erg = Mid(Dateiinhalt(Zeile2), Start, Index - Start)
            Start = Index + 1
            'Debug.Print Erg
            ArrayZerlegt1(Spalte, x) = Erg
            Debug.Print ArrayZerlegt1(Spalte, x)
            Spalte = Spalte + 1
            Loop Until Index = 0
    
    Next
    
    ArrayZeilenEnde = x
    'MsgBox ("Dateiinhalt wurde getrennt!")

End Sub

so morgen gehts an die Ausgabe des Arrays ...
schönen Tach noch
FunthomasX
 

Neue Beiträge

Zurück