Zeile zu txt-Datei hinzufügen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

theindless
*****
Beiträge: 355
Registriert: So, 09.05.2010 12:37

Zeile zu txt-Datei hinzufügen

Beitrag 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?
Lernbegieriger Nutzer mit (hoffentlich) steigendem Wissen
bst
*****
Beiträge: 222
Registriert: Mo, 18.01.2010 16:14
Wohnort: Ilsfeld

Re: Zeile zu txt-Datei hinzufügen

Beitrag von bst »

Hi,

ja, nimm zum Anfügen:

Code: Alles auswählen

    Open Filename For Append As #FileNo
cu, Bernd
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Zeile zu txt-Datei hinzufügen

Beitrag von Karolus »

Hallo
...
Open Filename For Append As #FileNo
...

Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
theindless
*****
Beiträge: 355
Registriert: So, 09.05.2010 12:37

Re: Zeile zu txt-Datei hinzufügen

Beitrag 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
Lernbegieriger Nutzer mit (hoffentlich) steigendem Wissen
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Zeile zu txt-Datei hinzufügen

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
theindless
*****
Beiträge: 355
Registriert: So, 09.05.2010 12:37

Re: Zeile zu txt-Datei hinzufügen

Beitrag 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!
Lernbegieriger Nutzer mit (hoffentlich) steigendem Wissen
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Zeile zu txt-Datei hinzufügen

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
theindless
*****
Beiträge: 355
Registriert: So, 09.05.2010 12:37

Re: Zeile zu txt-Datei hinzufügen

Beitrag 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.
Lernbegieriger Nutzer mit (hoffentlich) steigendem Wissen
Antworten