[gelöst] txt schreiben / auslesen ?
Moderator: Moderatoren
[gelöst] txt schreiben / auslesen ?
Hallo Leser,
bin ganz neu in OO und möchte die Makromöglichkeiten testen.
Ein wesentlicher Faktor für die Entscheidung hin zu OO ist für mich, ob die Makros bzw. Basic-Codes text-Files oder auch ini-Files schreiben, bzw auslesen (auch Zeile/Zeichen für Zeile/Zeichen) können.
Ihr hab da doch sicher Erfahrung und könnt mir da mal einen Tipp, bzw. ein Bsp schreiben/schicken?
Vielen Dank und Grüße,
red2sign
bin ganz neu in OO und möchte die Makromöglichkeiten testen.
Ein wesentlicher Faktor für die Entscheidung hin zu OO ist für mich, ob die Makros bzw. Basic-Codes text-Files oder auch ini-Files schreiben, bzw auslesen (auch Zeile/Zeichen für Zeile/Zeichen) können.
Ihr hab da doch sicher Erfahrung und könnt mir da mal einen Tipp, bzw. ein Bsp schreiben/schicken?
Vielen Dank und Grüße,
red2sign
Zuletzt geändert von red2sign am Mi, 30.07.2008 16:27, insgesamt 1-mal geändert.
red2sign verwendet WinXP Prof. und OO3 [Developers Snapshot (BEB300m3) Build: 9328]
Re: txt schreiben / auslesen ?
Hallo,
Starbasic kann text-Files lesen und schreiben.
Um ini-dateien zu lesen und zu schreiben gibt es zwei Funktionen von mir:
writeini http://www.dannenhoefer.de/faqstarbasic/writeini.html
und
readini http://www.dannenhoefer.de/faqstarbasic/readini.html
mfg
Michael
Starbasic kann text-Files lesen und schreiben.
Um ini-dateien zu lesen und zu schreiben gibt es zwei Funktionen von mir:
writeini http://www.dannenhoefer.de/faqstarbasic/writeini.html
und
readini http://www.dannenhoefer.de/faqstarbasic/readini.html
mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
FAQ zu Starbasic -> http://www.starbasicfaq.de
Re: txt schreiben / auslesen ?
Hi Leute
Wisst ihr, wie man obigen Code anwendet?
Bei mir erstellt es kein ini.
Hab folgenden Aufruf:
Sub Main
writeini("D:\test\inifile.ini","4","Test","10")
End Sub
Liegt es an den Übergabeparametern?
Grüße!
Wisst ihr, wie man obigen Code anwendet?
Bei mir erstellt es kein ini.
Hab folgenden Aufruf:
Sub Main
writeini("D:\test\inifile.ini","4","Test","10")
End Sub
Liegt es an den Übergabeparametern?
Grüße!
red2sign verwendet WinXP Prof. und OO3 [Developers Snapshot (BEB300m3) Build: 9328]
Re: txt schreiben / auslesen ?
Hi red2sign,
Du musst zuerst ein Dokument erzeugen, in diesem Fall im Hintergrund (Hidden), und dann abspeichern.
Wenn das Dokument erzeugt ist kannst Du Werte eintragen.
Viel Erfolg.
Jürgen
Wo hast Du das denn her?red2sign hat geschrieben:Sub Main
writeini("D:\test\inifile.ini","4","Test","10")
End Sub
Du musst zuerst ein Dokument erzeugen, in diesem Fall im Hintergrund (Hidden), und dann abspeichern.
Code: Alles auswählen
Sub Create_file
Dim oDocument as object
dim myFileProp(0) as New com.sun.star.beans.PropertyValue
myFileProp(0).name="Hidden"
myFileProp(0).value=True
oDocument = StarDesktop.loadComponentFromURL ("private:factory/swriter","_blank", 0, myFileProp())
If Fileexists("File:///D:/Test/Inifile.ini")= false then
dim dummy()
oDocument.storeToURL(("File:///D:/Test/Inifile.ini") , dummy())
msgbox "Die Datei wurde erstellt"
else
msgbox "Die Datei ist schon vorhanden"
exit sub
end if
End Sub
Code: Alles auswählen
Sub Write_Ini
'*******Pfad anpassen******************************
myfile="D:/Test/Inifile.ini"
'***************************************************
if FileExists("file:///" & myfile) then
f1 = FreeFile()
'#f1 = FreeFile()
Open "file:///" & myfile for output as #f1 'Schreiben
Print #f1, "Text 1"
Print #f1, "Text 2"
Print #f1, "Text 3"
close #f1
msgbox "Der Text wurde eingetragen"
else
msgbox "Datei nicht vorhanden"
endif
end sub
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: txt schreiben / auslesen ?
Erstmal hallo re2dsign,
der Code erstellt auch keine ini-Datei. Er ändert vorhandene Werte in einer existierenden ini-Datei.
Um eine Ini-Datei zu erzeugen kann einfach eine neue Datei erzeugen und mit Werten beschreiben. Siehe unten.
mfg
Michael
Dann Hallo Jürgen,
sorry aber Dein Code ist, naja, murks
.
Mit dem StoretoUrl und deinen Parmater erzeugt man eine odt-Datei mit der Endung ini.
Alles was mann danach macht führt nicht gerade zum Eintragen in eine text-datei.
Um eine neue Datei zu erzeugen langt das Öffnem als neuen Output.
mfg
Michael
der Code erstellt auch keine ini-Datei. Er ändert vorhandene Werte in einer existierenden ini-Datei.
Um eine Ini-Datei zu erzeugen kann einfach eine neue Datei erzeugen und mit Werten beschreiben. Siehe unten.
mfg
Michael
Dann Hallo Jürgen,
sorry aber Dein Code ist, naja, murks

Mit dem StoretoUrl und deinen Parmater erzeugt man eine odt-Datei mit der Endung ini.
Alles was mann danach macht führt nicht gerade zum Eintragen in eine text-datei.
Um eine neue Datei zu erzeugen langt das Öffnem als neuen Output.
Code: Alles auswählen
aFile = "c:\daten.txt"
iNumber = Freefile
Open aFile For Output As #iNumber
Print #iNumber, "Das ist eine Zeile Text"
Print #iNumber, "Das ist eine weitere Zeile Text"
Close #iNumber
mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
FAQ zu Starbasic -> http://www.starbasicfaq.de
Re: txt schreiben / auslesen ?
Wieso? Bei mir funktioniert der Code einwandfrei. Schreiben sowie auch das spätere auslesen.ykcim hat geschrieben:sorry aber Dein Code ist, naja, murks.
Mit dem StoretoUrl und deinen Parmater erzeugt man eine odt-Datei mit der Endung ini.
Alles was mann danach macht führt nicht gerade zum Eintragen in eine text-datei.

Oder hast Du beim ausprobieren festgestellt das es irgendwo hakt?
Zugegeben, Dein code ist natürlicht etwas "feiner".

Schönen Dank.
Viele Grüsse.
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: txt schreiben / auslesen ?
Oh, ich habe etwas übersehen.
Du erzeugst erst eine neue Datei mit Storetourl und überschreibst sie automatisch dann mit Open als output. Natürlich ist dann das Endergebnis richtig. Nur der Zwischenschritt mit Storetourl ist falsch. Wenn Du Dir dir erzeugte Datei anschaust bevor Du in die ini-Datei schreibst, wirst festellen das sie nicht leer ist sondern eine ODT-Datei mit leerem Inhalt.
mfg
Michael
Du erzeugst erst eine neue Datei mit Storetourl und überschreibst sie automatisch dann mit Open als output. Natürlich ist dann das Endergebnis richtig. Nur der Zwischenschritt mit Storetourl ist falsch. Wenn Du Dir dir erzeugte Datei anschaust bevor Du in die ini-Datei schreibst, wirst festellen das sie nicht leer ist sondern eine ODT-Datei mit leerem Inhalt.
mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
FAQ zu Starbasic -> http://www.starbasicfaq.de
Re: txt schreiben / auslesen ?
Hallo Micheal,
Aber Dank Deines Hinweises kenne ich jetzt eine elegantere (fachlich richtige) Lösung.
Jürgen
Das hatte ich auch schon mal gemacht und das gleiche festgestellt. War mir im Endeffekt aber egal weil das Endergebnis nach dem Beschreiben ja in Ordnung war.ykcim hat geschrieben:Wenn Du Dir dir erzeugte Datei anschaust bevor Du in die ini-Datei schreibst, wirst festellen das sie nicht leer ist sondern eine ODT-Datei mit leerem Inhalt.
Aber Dank Deines Hinweises kenne ich jetzt eine elegantere (fachlich richtige) Lösung.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: txt schreiben / auslesen ?
Hi Leute!
Danke für eure Vorschläge, habe am Rande was einfacheres Gefunden.
Sehr viel einfacher. Wo der genaue Unterschied liegt, kann ich nicht sagen, bin ja Newbie.
Danke für eure Vorschläge, habe am Rande was einfacheres Gefunden.
Sehr viel einfacher. Wo der genaue Unterschied liegt, kann ich nicht sagen, bin ja Newbie.
Code: Alles auswählen
'Schreiben der Ini-Datei
sPfad = "D:\settings.ini"
FileNo = Freefile()
If FileExists(sPfad) Then
Open sPfad For Output As #FileNo
Print #FileNo, "Testtext"
Close #FileNo
End If
End Sub
red2sign verwendet WinXP Prof. und OO3 [Developers Snapshot (BEB300m3) Build: 9328]