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