uppe
Goto Top

Zeile mehrfach ausgeben

Hallo,

ich habe eine Datei in der Form:

Meldung: blablabla
Rechner: aaa, bbb, ccc
...
Meldung: blublu
...
Rechner: ddd
...
usw.

Zwischen den mich interessierenden Zeilen (mit Rechner:, Meldung: beginnend) stehen noch beliebige Zeilen.

Ich möchte daraus machen:

Meldung: blablabla | aaa
Meldung: blablabla | bbb
Meldung: blablabla | ccc
Meldung: blublu | ddd


Habe mir gedacht, dass folgender Code doch machen sollte, was ich möchte:
....
Do While Not nowFile.AtEndOfStream
     nowLine = nowFile.readline
     If Instr(nowLine, "Meldung:") Then  
           Text=nowLine
           bWrite=true
     End If
     If bWrite And InStr(nowLine, "Rechner:")  Then  
           Rechner = Split(nowLine," ")  
           For i = 1 to Ubound(Rechner)
                Text(i)=Text & " | " & Rechner(i)  
           Next i
     End If
     ...
Loop
Aber leider bekomme ich eine Fehlermeldung bei Text(i) : Typen unverträglich

Wie kann ich aus einer Zeile mehrere machen. Ich weiß aber eben vorher nicht wieviele es sind.

Danke und Gruß
Uppe

Content-ID: 153946

Url: https://administrator.de/contentid/153946

Ausgedruckt am: 26.11.2024 um 21:11 Uhr

bastla
bastla 27.10.2010 um 23:28:44 Uhr
Goto Top
Hallo Uppe!

"Split()" ist schon ok, aber die Schleife in Zeile 10 muss bei 0 beginnen [Edit] 1 passt auch - dadurch wird der Text "Rechner:" übersprungen [/Edit]

Außerdem: "Text()" müsste als Array deklariert worden sein (wobei ich mich frage, wozu das Array gut sein soll), und es gibt auch bereits eine einfache Variable "Text" - es könnte hier aber genausogut ein String verwendet werden, etwa:
GesamtText = GesamtText & vbCrLf & Text & " | " & Rechner(i)
Wenn tatsächlich später noch ein Array gebraucht wird, ließe sich der "GesamtText" wie folgt zerlegen:
TextArray = Split(Mid(GesamtText, 3), vbCrLf)
Grüße
bastla
Uppe
Uppe 27.10.2010 um 23:44:31 Uhr
Goto Top
Hallo bastla,

das war's. Redim Text(Ubound(Rechner)) und schon passt es.

Danke und Gruß
Uppe