TIniFile ohne Schlüssel?



  • Hallo zusammen,

    ich habe hier eine Ini-Datei, in der zwei Werte ohne zugehörigen Schlüssel gespeichert sind. Beispiel:

    ---
    [DEMO]
    Dieser Text hat kein "Name="

    [DEMO2]
    select *
    from kunden
    ---

    Wie kann ich jetzt mit der TIniFile-Komponente diese Werte/Strings auslesen? Irgendwie braucht die ja immer den Namen des Schlüssels, dem dieser Wert zugeordnet ist.

    Ich wäre sehr dankbar, wenn ihr mir helfen könntet.

    Mipe



  • a) Screib einfach in die Ini- Datei einen Schluessel vor die Zeilen und benutz den im Programm (oder kriegste die Datei immer wieder neu?) 😮

    b)Schau mal in Hilfe zu TIniFile->ReadSection, damit koennen alle Eitraege einer Section in Stringliste gelesen werden! 😉
    (Ich weis nicht, ob der nur gueltige Schluessel liest, musste probieren!) 😉



  • b)Schau mal in Hilfe zu TIniFile->ReadSection, damit koennen alle Eitraege einer Section in Stringliste gelesen werden! 😉
    (Ich weis nicht, ob der nur gueltige Schluessel liest, musste probieren!) 😉

    yepp bracut nen gültigen Schlüssel



  • a) Ja, ich bekomm die Datei jedesmal so. Warum auch immer dieses Format gewählt wurde...

    b) ReadSection liest immer nur Schlüssel oder Werte ein... und das Beispiel besitzt ja eigentlich keinen von beiden 😞



  • Dann wuerd' ich die Datei direkt als Textdatei zeilenweise einlesen / auswerten!

    mit TIniFile gehts nicht, da die Daten nicht korrekt vorliegen. 😞



  • Habt ihr die Hilfe richtig gelesen?
    Schaut euch die Unterschiede zwischen ReadSection und ReadSections mal genau an!
    Falls ihr nicht weiterkommt: http://home.t-online.de/home/mario_kluge/



  • Das ist ja schön und gut, aber das bringt ja gar nichts.

    Readsection liest einfach alle Werte einer Section ein und ReadsectionS liest eben nur die Bezeichnungen der Sections ein. Aber die brauch ich ja nicht. Ich brauch den Text, der Unterhalb der Section-Bezeichnung steht.

    Mipe



  • Der m@loo hat Dein Problem net gelesen! 🕶

    Lesen einer Zeile die WEDER ein Sectionname ist NOCH 'nen gueltigen Schluessel darstellt!

    Das hat mit ReadSection und ReadSections nichts zu tun. 😉



  • Noch genauer:
    Wenn der Name einer Section eine bestimmte Form hat (denke mal, bei Dir steht das *select ** dafür), dann ist der nächste Eintrag der Sections-Liste (TStringList) = dem gesuchten Eintrag. Oder sehe ich die Frage im falschen Licht 😕



  • Wie ich das seh' ist
    select *
    ein Eintrag INERHALB einer Section der aber KEINEN Schlüssel darstellt - ohne '=' Zeichen

    : d'rum kann TIniFile den String nicht lesen!(?) 🙄

    select * steht nicht in []
    :d'rum wirds auch nicht als Sectionname gelesen

    Den anderen Zeilen geht's ähnlich! (?) 😡

    !Ich wuerde mit Kunde reden, ob die Datei nicht in exaktem 'INI- Format' lieferbar ist (oder direkt lesen, das geht ja den Kunde nichts an 😃 , wie ich das mach!)



  • @Mipe

    Hab' noch was gefunden 😃

    Mit Methode GetStrings(...) von TIniFile können ALLE Zeilen der Datei in eine StringListe eingelesen werden!!!

    (kann z.B. Memo1->Text sein)

    Die Auswertung muss aber 'manuell erfolgen!!! 😉 😉



  • Hey, getStrings() von TMemIniFile (!) ist ja ideal. Genau das hab ich gesucht. In der zwischenzeit hab ich's zwar selber programmiert, aber nun geht's mit halb so viel Code 🙂

    Jetzt wirft sich nur ein weiteres Problem auf. In der erstellten Stringlist werden ja Schaltungen nicht berücksichtigt. Gibt es eine Möglichkeit, die Stringlist mit Schaltungen "\n" zu befüllen?

    Beispiel:

    ---- Auszug aus Ini-Datei ----

    [SQL-Query]
    Select * from kunden

    /* Bedingung */

    Select * from kunden where name = <where>

    ---- Auszug aus Ini-Datei ----

    Die Leerzeilen sind ja so in der Ini-Datei gewollt... und eben diese werden weggelassen...

    Mipe



  • Was meinst Du mit SCHALTUNGEN?

    In der Stringliste erscheinen bei mir alle Leerzeilen mit!(?) 😕

    Am Ende jeder Zeile steht in StringList : "\r\n"

    Du kannst auch Zeilen einfügen mit Insert(...) oder anhängen mit Add(...) 😉

    in Property Text (der komplette Inhalt) geht das auch :p

    PS: Schau Dir mal TIniFile->ReadSectionValues an !!! 😃

    [ Dieser Beitrag wurde am 06.03.2003 um 10:52 Uhr von DerAltenburger editiert. ]


Anmelden zum Antworten