Seite 1 von 1

ini schreiben - ohne Zeilen zu überschreiben

Verfasst: Mo, 04.08.2008 11:00
von red2sign
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

Re: ini schreiben/lesen - Eure Meinung / Empfehlung

Verfasst: Mo, 04.08.2008 13:27
von ykcim
Hallo,
Problem beim schreiben: Beim schreiben überschreibt es mir die komplette ini - und nicht nur die eine gezielte Sektion mit Schlüsseln und Werten.
Das ist kein Problem. Entscheidend ist das Ergebnis und das ist die ini-Datei mit einem neuem Wert.
Problem beim lesen: Ich muss immer eine Sektion angeben, kann praktisch kein "Vorscan" machen, der mir erstmal alle vorhandenen Sektionen liefert.
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:

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
mfg
Michael

Re: ini schreiben/lesen - Eure Meinung / Empfehlung

Verfasst: Mo, 04.08.2008 22:20
von komma4
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.


Re: ini schreiben/lesen - Eure Meinung / Empfehlung

Verfasst: Di, 05.08.2008 09:48
von red2sign
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.

Re: ini schreiben/lesen - Empfehlung

Verfasst: Di, 05.08.2008 10:03
von ykcim
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

Re: ini schreiben/lesen - Empfehlung

Verfasst: Di, 05.08.2008 10:08
von red2sign
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ß
---------------------------------------------------------------------------------------------
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]

Re: ini schreiben - ohne Zeilen zu überschreiben

Verfasst: Mi, 06.08.2008 07:35
von red2sign
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.