Hallo zusammen,
habe jetzt mehrere Wege, wie ich eine ini schreiben/lesen kann. Jedoch habe ich folgende Probleme:
Problem beim schreiben: Beim schreiben überschreibt es mir die komplette ini - und nicht nur die eine gezielte Sektion mit Schlüsseln und Werten.
Außerdem muss ich neue Zeilen am bisherigen Ende der ini einfügen. Der Inhalt davor soll natürlich nicht überschrieben werden.
Problem beim lesen: Ich muss immer eine Sektion angeben, kann praktisch kein "Vorscan" machen, der mir erstmal alle vorhandenen Sektionen liefert.
Was würdet iht tun?
Dank und Gruß,
red2sign
ini schreiben - ohne Zeilen zu überschreiben
Moderator: Moderatoren
ini schreiben - ohne Zeilen zu überschreiben
Zuletzt geändert von red2sign am Di, 05.08.2008 11:25, insgesamt 2-mal geändert.
red2sign verwendet WinXP Prof. und OO3 [Developers Snapshot (BEB300m3) Build: 9328]
Re: ini schreiben/lesen - Eure Meinung / Empfehlung
Hallo,
mfg
Michael
Das ist kein Problem. Entscheidend ist das Ergebnis und das ist die ini-Datei mit einem neuem Wert.Problem beim schreiben: Beim schreiben überschreibt es mir die komplette ini - und nicht nur die eine gezielte Sektion mit Schlüsseln und Werten.
Dann musst Du Dir den Vorscan selber schreiben. Ist nicht kompliziert Du mußt nur die Begriffe in ein Array listen die mit eckigen Klammern geschachtelt sind. Um das Array liste() zu füllen geht es so:Problem beim lesen: Ich muss immer eine Sektion angeben, kann praktisch kein "Vorscan" machen, der mir erstmal alle vorhandenen Sektionen liefert.
Code: Alles auswählen
Dim liste() as string
a=0
#iNumber = Freefile
aFile = "e:\test.ini"
Open aFile For Input As #iNumber
While not eof(#iNumber)
Line Input #iNumber, sZeile
start=left(sZeile,1)
if start="[" then
m=Len(sZeile)-2
wert=mid(sZeile,2,m)
liste(a)=wert
a=a+1
end if
wend
Close #iNumber
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
FAQ zu Starbasic -> http://www.starbasicfaq.de
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: ini schreiben/lesen - Eure Meinung / Empfehlung
wäre in diesem Fall vielleicht overhead, aber StarBasic hat Routinen zum Bearbeiten von XML-Dateien.
Die lassen sich auch prima mit Fremdprogrammen bearbeiten und darstellen (!). während die Behandlung einer INI-Datei mit einem eigenen Format eher problematisch ist.
5¢
Die lassen sich auch prima mit Fremdprogrammen bearbeiten und darstellen (!). während die Behandlung einer INI-Datei mit einem eigenen Format eher problematisch ist.
5¢
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: ini schreiben/lesen - Eure Meinung / Empfehlung
Hi! XML ist leider nur ein Thema für die Zunkunft.
Momentan ist noch ini zwingend.
Habe den Befehl writeString() gefunden, mit dem man anscheinend einen übergebenen String an die aktuelle Position in der Datei (Dateizeiger) schreiben kann.
Hat das schonmal jemand gemacht?
Finde nichts zum Stichwort Dateizeiger.
Stelle mir das so vor, dass ich der Methode irgendwie sagen muss, bei welcher Zeile der String hin muss.
Momentan ist noch ini zwingend.
Habe den Befehl writeString() gefunden, mit dem man anscheinend einen übergebenen String an die aktuelle Position in der Datei (Dateizeiger) schreiben kann.
Hat das schonmal jemand gemacht?
Finde nichts zum Stichwort Dateizeiger.
Stelle mir das so vor, dass ich der Methode irgendwie sagen muss, bei welcher Zeile der String hin muss.
red2sign verwendet WinXP Prof. und OO3 [Developers Snapshot (BEB300m3) Build: 9328]
Re: ini schreiben/lesen - Empfehlung
Kenne keine writeString()-Anweisung. Nur eine write-Anweisung.
Und mit der lässt sich auch nur eine Zeile an eine vorhandene Datei anhängen.
mfg
Michael
Und mit der lässt sich auch nur eine Zeile an eine vorhandene Datei anhängen.
mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
FAQ zu Starbasic -> http://www.starbasicfaq.de
Re: ini schreiben/lesen - Empfehlung
Ich hab zwischenzeitlich den Dateizeigerbefehl gefunden. Er heißt seek(#n, position). Jedoch wird die Position in Zeichen, nicht in Zeilen angegeben.
Also leider unbrauchbar....
Die wirite-Anweisung klingt interessant. Mein Ziel ist es ja, lediglich in einer schon vorhandenen, mit Daten gefüllten Datei, weitere Zeilen unten anzuhängen / zu ergänzen.
Jedoch muss ich der doch auch irgenwie sagen, an welcher Zeile sie schreiben soll?
Gruß
---------------------------------------------------------------------------------------------
Also leider unbrauchbar....
Die wirite-Anweisung klingt interessant. Mein Ziel ist es ja, lediglich in einer schon vorhandenen, mit Daten gefüllten Datei, weitere Zeilen unten anzuhängen / zu ergänzen.
Jedoch muss ich der doch auch irgenwie sagen, an welcher Zeile sie schreiben soll?
Gruß
---------------------------------------------------------------------------------------------
ykcim hat geschrieben:Kenne keine writeString()-Anweisung. Nur eine write-Anweisung.
Und mit der lässt sich auch nur eine Zeile an eine vorhandene Datei anhängen.
mfg
Michael[/[uote]
red2sign verwendet WinXP Prof. und OO3 [Developers Snapshot (BEB300m3) Build: 9328]
Re: ini schreiben - ohne Zeilen zu überschreiben
Mal vorsichtig *push*
Komme nicht weiter
Eine Alternative wäre noch die Sektionsnamen in der Ini zu ändern. Wenn ich wüsste wie.
Hab mal was probiert, aber klappt leider nicht.
Komme nicht weiter
Eine Alternative wäre noch die Sektionsnamen in der Ini zu ändern. Wenn ich wüsste wie.
Hab mal was probiert, aber klappt leider nicht.
red2sign verwendet WinXP Prof. und OO3 [Developers Snapshot (BEB300m3) Build: 9328]