alex-tech
Goto Top

VBA Textdatei zeilenweise schreiben

VBA Textdatei zeilenweise schreiben mit Schleife

Hallo,

ich erstelle aus Excel/VBA eine Textdatei und schreibe was rein, soweit funktioniert das auch. Aber jetzt möchte ich mit einer Schleife ein sich ändernder String nacheinander in die zeilen schreiben:

Funktioniert:

Open Textdatei.txt For Output As #1

Print #1 String

Close #1


So soll es sein:

Open Textdatei.txt For Output As #1

For i = 1 to 10

Print #1 String ' Schreibe in Zeile(i)

String = irgendwas
Next

Close #1


Geht das Irgendwie?

Kann mir jemand helfen?


Vielen Dank im Voraus.


Viele Grüße,

alex

Content-Key: 164130

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

Printed on: April 24, 2024 at 01:04 o'clock

Member: bastla
bastla Apr 07, 2011 at 08:33:41 (UTC)
Goto Top
Hallo alex-tech!

Woher bekommst Du denn Deine sich ändernden Strings (weil 10 x "irgendwas" in der Textdatei ist vermutlich auch nicht im Sinne des Erfinders)?

Grüße
bastla
Member: alex-tech
alex-tech Apr 07, 2011 at 08:42:05 (UTC)
Goto Top
Der String ist nur als Beispiel. Der String wird an anderer Stelle mit der Split funktion aus mehreren Zellen in der Exceltabelle zusammengesetzt. In der Schleife werden dann noch weiter daten wie Uhrzeiten hinzugefügt.

Das funktioniert auch, nur das in meiner Textdatei immer nur der letzte Schleifendurchgang in der ersten Zeile der Textdatei steht.
Member: bastla
bastla Apr 07, 2011 at 09:23:45 (UTC)
Goto Top
Hallo alex-tech!

Abgesehen davon, dass ich zuerst den Wert zuweisen und dann ausgeben würde, sehe ich eigentlich kein Problem ...
Open "D:\Textdatei.txt" For Output As #1  

For i = 1 To 10
    strString = "irgendwas " & i  
    Print #1, strString ' Schreibe in Zeile(i) 
Next
Close #1
Grüße
bastla

P.S.: Da Du vermutlich schon danach gesucht hast:
Member: alex-tech
alex-tech Apr 07, 2011 at 11:22:16 (UTC)
Goto Top
Danke,

aber wenn er das zweite Mal die Schleife durchläuft, überschreibt er ja die Ausgabe der ersten. Er soll aber die zweite Ausgabe in die nächste Zeile setzten.
Member: vossi31
vossi31 Apr 07, 2011 at 12:39:23 (UTC)
Goto Top
Hallo alex-tech,

so wie bastler es schreibt muss es funktionieren.
Vielleicht hast du kein Schreib/Löschrecht und guckst dir immer die gleiche (alte) Ausgabedatei an.

Henning
Member: alex-tech
alex-tech Apr 08, 2011 at 11:18:58 (UTC)
Goto Top
Mmh, nein, ich erzeuge diese textdatei ja auch erst mit dem Open Befehl.
Irgendwie muss ich dem Print doch sagen in welche Zeile er den Strring Schreiben soll.

Ich habe da den Befehl Printline gefunden, weiß aber nicht so genau wie ich den einsetzen muss und ob das überhaupt damit geht.

Gruß
Member: vossi31
vossi31 Apr 08, 2011 at 12:45:58 (UTC)
Goto Top
Das Programm von bastler macht genau das was du haben willst.

"Printline" kennt mein Excel2000/VBA nicht. Es gibt außer "print#" noch "write#" - das wird dir aber nicht helfen, da du in deinem Gesamtablauf einen Fehler haben wirst. Kannst ja mal den Debugger einschalten oder poste mal dein Programm.

Henning
Member: bastla
bastla Apr 08, 2011 at 13:00:36 (UTC)
Goto Top
Hallo alex-tech!
Irgendwie muss ich dem Print doch sagen in welche Zeile er den Strring Schreiben soll.
Es wird einfach immer in die nächste Zeile geschrieben ...
Ich habe da den Befehl Printline gefunden
Es gibt für das "FileSystemObject" ein "WriteLine", was "Print#" entspricht, während "Write" eine Zeile ohne abschließende Zeilenschaltung erzeugt - also auch hier nicht: "Schreibe in die Zeile Nr x" ...
Wenn du etwas genauer beschreibst, was Du nun eigentlich wo in der Zieldatei haben möchtest, können wir ja an der passenden Ausgaberoutine "basteln" (obwohl ich - @vossi31 - meinen Nick nicht extra dafür ändern würde face-wink ...

Grüße
bastla