Zeilenweise Text in String mit Umbruch

Hallo
wenn ich eine Textdatei Zeilenweise lesen bzw. schreiben möchte incl. Zeilenumbruch wie in der Textvorlage und diese in einen einzelnen String packen möchte, wie mache ich das am besten???

Mfg Werner

Hallo Werner

wenn ich eine Textdatei Zeilenweise lesen bzw. schreiben
möchte incl. Zeilenumbruch wie in der Textvorlage und diese in
einen einzelnen String packen möchte, wie mache ich das am
besten???

so etwa.

Private Sub Command1\_Click()
 CommonDialog1.ShowOpen
 If CommonDialog1.FileName "" Then
 Open CommonDialog1.FileName For Input As #1
 Do While Not EOF(1)
 Line Input #1, zl
 List1.AddItem zl
 Loop
 Close #1
 End If
End Sub

Und schon steht die Datei Zeilenweise in einem Listenfeld.

Beim schreiben einfach nur Print #1, zl …

Gruß, Rainer

und wie geht das in einen String mit Zeilenumbr???
Ich habe ja 65000 Zeichen zur Verfügung, da ich nur 10-20 Zeichen pro Zeile habe, also 6500 Zeilen. Die möchte ich in einen String verarbeiten.

Mfg Werner

Hallo, Werner!

wenn ich eine Textdatei Zeilenweise lesen bzw. schreiben
möchte incl. Zeilenumbruch wie in der Textvorlage und diese in
einen einzelnen String packen möchte, wie mache ich das am
besten???

Also Du willst nicht unbedingt zeilenweise lesen, sondern alles in einem String haben, richtig? Entweder könntest Du analog dem vorgenannten Posting die Zeilen einlesen und dann (jetzt geht’s schon los) per vbCrLf oder vbLf oder vbCr direkt aneinander ketten, also

strGesamt = strGesamt & Iif(strGesamt="", "", vbCrLf) & strZeile

oder Du liest gleich alles in einem Rutsch ein:

 Dim intFile As Integer
 Dim strContent As String

 strContent = ""
 intFile = FreeFile
 Open "C:\DeineDatei.txt" For Binary As #intFile
 strContent = StrConv(InputB(LOF(intFile), #intFile), vbUnicode)
 Close #intFile

Gruß, Manfred

WAS IST iif
Hallo
vielleicht kannst du die 2.Variante bzw. die Befehle dazu noch etwas erläutern, was da passiert. Auch IIF aus der 1. Variante kenne ich noch nicht.
Ansonsten ist es schon genau das, was ich brauche.
Wenn jmd ein DXF-File kennt, weiss er wovon ich rede.

Mfg Werner

Hallo, Werner!

vielleicht kannst du die 2.Variante bzw. die Befehle dazu noch
etwas erläutern, was da passiert. Auch IIF aus der 1. Variante
kenne ich noch nicht.

„Wert = Iif(…)“ ist die Abkürzung von „If bedingung then Wert=x Else Wert=y“

In obigem Beispiel: Nur, wenn bereits eine (oder mehrere) Zeile(n) eingelesen wurde, wird der Zeilenumbruch hinter das bisher eingelesene geschrieben, bevor eine neue Zeile kommt. Beim erstmaligen Durchlauf wird „“ (also nichts) hinter den bisherigen Text geschrieben, um nicht den Gesamttext fälschlicherweise mit einem weiteren Zeilenumbruch beginnen zu lassen.

Die zweite Variante findest Du am besten erläutert in der Online-Hilfe unter den diversen Befehlen (jeweils Wort im Code markieren und F1).

Gruß, Manfred

Dies
Hallo.

Im Unterschied zu If expr THEN hü ELSE hott arbeitet IIF grundsätzlich mit beiden Teilen :

IIf wertet immer sowohl den Teil truepart als auch den Teil falsepart aus, auch dann, wenn nur einer von beiden Teilen zurückgegeben wird. Aus diesem Grund kann es zu unerwünschten Nebeneffekten kommen. Wenn z.B. die Auswertung von falsepart zu einem Fehler aufgrund einer Division durch Null führt, tritt ein Fehler auch dann auf, wenn expr den Wert True hat.

Gruß kw

Hallo Werner,

ich habe oben mitgelesen. … also doch nicht Zeilenweise.

Bei einer Textdatei geht dann auch. …

Private Sub Command1\_Click()
 Dim txt As String
 CommonDialog1.ShowOpen
 If CommonDialog1.FileName "" Then
 l = FileLen(CommonDialog1.FileName) 'Dateilaenge
 Open CommonDialog1.FileName For Binary As #1
 txt = Input(l, #1)
 Close #1
 End If
End Sub

oder wenn Du Zeilenweise einliest:

txt = txt + zl

Gruß, Rainer