Seite 1 von 1

Zeile zu txt-Datei hinzufügen

Verfasst: Di, 28.02.2012 13:35
von theindless
Hallo miteinander,

ich versuche mir grad Basic beizubringen und habe folgende Macro im StarOffice Handbuch (leicht abgewandelt):

Code: Alles auswählen

Dim FileNo As Integer 
Dim Text as String
Dim CurrentLine As String 
Dim Filename As String

Filename = "c:\data.txt"
FileNo = Freefile
Open Filename For Output As #FileNo
Text = InputBox ("Eingabe")
Print #FileNo, Text
Close #FileNo
Das bewirkt ja nun, dass jeweils der über InputBox eingegebene Text in die txt-Datei geschrieben wird.
Bei meinen Test wurde der alte Inhalt bei jedem erneuten Macro-Start jeweils überschrieben.

Gibt es eine Möglichkeit bei einem erneuten Macro-Start (= neue Eingabe) die txt-Datei nur zu ergänzen, d.h. eine weitere Zeile anzufügen?

Re: Zeile zu txt-Datei hinzufügen

Verfasst: Di, 28.02.2012 13:51
von bst
Hi,

ja, nimm zum Anfügen:

Code: Alles auswählen

    Open Filename For Append As #FileNo
cu, Bernd

Re: Zeile zu txt-Datei hinzufügen

Verfasst: Di, 28.02.2012 13:52
von Karolus
Hallo
...
Open Filename For Append As #FileNo
...

Karo

Re: Zeile zu txt-Datei hinzufügen

Verfasst: Di, 28.02.2012 14:25
von theindless
Hallo bst und Karolus,

danke für die schnelle Antwort.

Dazu müsste ich vermutlich vorher prüfen, ob die Datei besteht, oder?

Code: Alles auswählen

Sub txt

Dim FileNo As Integer
Dim CurrentLine As String
Dim Filename As String
Dim Text as String

Filename = "c:\data.txt"
FileNo = Freefile

If FileExists(Filename) Then
GoTo Einfuegen
Else GoTo Erstellen 
End If

Einfuegen:
Open Filename For Append As #FileNo
Text = InputBox ("Eingabe")
Print #FileNo, Text
Close #FileNo
Exit Sub

Erstellen:
Open Filename For Output As #FileNo
Text = InputBox ("Eingabe")
Print #FileNo, Text
Close #FileNo

End Sub

Re: Zeile zu txt-Datei hinzufügen

Verfasst: Di, 28.02.2012 14:51
von Karolus
Hallo
Dazu müsste ich vermutlich vorher prüfen, ob die Datei besteht, oder?
Nein ... Warum probierst du das nicht einfach mal mit einer noch nicht existierenden Datei ?

Selbst wenn, musst du nicht mit 'goto' und sich nahezu komplett wiederholenden Code-blöcken arbeiten:

Code: Alles auswählen

Sub txt

Dim FileNo As Integer
Dim CurrentLine As String
Dim Filename As String
Dim Text as String

Filename = "c:\data.txt"
FileNo = Freefile

If FileExists(Filename) Then
    Open Filename For Append As #FileNo
else
    Open Filename For Output As #FileNo
end if
Text = InputBox ("Eingabe")
Print #FileNo, Text
Close #FileNo

End Sub
Karo

Re: Zeile zu txt-Datei hinzufügen

Verfasst: Di, 28.02.2012 15:00
von theindless
Hallo Karolus,

ok... sorry...

Funktioniert scheinbar auch nur mit Append...

Allerdings erschließt sich mir dann nicht, wofür ich Output brauche.... insbesondere in dem Beispiel.

Danke!

Re: Zeile zu txt-Datei hinzufügen

Verfasst: Di, 28.02.2012 15:07
von Karolus
Hallo
Allerdings erschließt sich mir dann nicht, wofür ich Output brauche...
Ich kann mir durchaus vorstellen das man vorhandene Dateien überschreiben möchte!

Karo

Re: Zeile zu txt-Datei hinzufügen

Verfasst: Di, 28.02.2012 15:18
von theindless
Hallo Karo,
Karolus hat geschrieben:Ich kann mir durchaus vorstellen das man vorhandene Dateien überschreiben möchte!
auch wieder wahr... v.a. einfacher als Löschung der Datei über separate Anweisung.

Ich war wohl zu sehr mit meinem "Problem" / meiner "Wunsch"-Vorgehensweise beschäftigt.