[gelöst] txt schreiben / auslesen ?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst] txt schreiben / auslesen ?

Re: txt schreiben / auslesen ?

von red2sign » Mi, 30.07.2008 16:24

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.

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

Re: txt schreiben / auslesen ?

von turtle47 » Di, 29.07.2008 16:14

Hallo Micheal,
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.
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.
Aber Dank Deines Hinweises kenne ich jetzt eine elegantere (fachlich richtige) Lösung. :wink:

Jürgen

Re: txt schreiben / auslesen ?

von ykcim » Di, 29.07.2008 16:07

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

Re: txt schreiben / auslesen ?

von turtle47 » Di, 29.07.2008 15:54

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.
Wieso? Bei mir funktioniert der Code einwandfrei. Schreiben sowie auch das spätere auslesen. :D
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

Re: txt schreiben / auslesen ?

von ykcim » Di, 29.07.2008 14:54

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.

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

Re: txt schreiben / auslesen ?

von turtle47 » Di, 29.07.2008 14:16

Hi red2sign,
red2sign hat geschrieben:Sub Main
writeini("D:\test\inifile.ini","4","Test","10")
End Sub
Wo hast Du das denn her?

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
Wenn das Dokument erzeugt ist kannst Du Werte eintragen.

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
Viel Erfolg.

Jürgen

Re: txt schreiben / auslesen ?

von red2sign » Di, 29.07.2008 09:40

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!

Re: txt schreiben / auslesen ?

von ykcim » Mo, 28.07.2008 14:18

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

[gelöst] txt schreiben / auslesen ?

von red2sign » Mo, 28.07.2008 14:01

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

Nach oben