Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12
  1. #1
    Forenclown Avatar von cl9wn
    Registriert seit
    27.07.2008
    Beiträge
    599

    Standard INI auslesen und in ListView laden.

    Hi, ich hab jetzt ne ListView mit 2 Columns und ne INI Datei die so aufgebaut ist:

    [SERVERNAME]
    IP=SERVERIP

    [SERVERNAME2]
    IP=SERVERIP2

    usw...

    Jetz möchte ich beim OnCreate ereignes meiner Form, dass alle sections der INI in meine ListView eingetragen werden und zwar z.B. [SERVERNAME] soll dann als Item und SERVERIP als subitem dargestellt werden (ListView ist vsReport).

    Wie stell ich das an? Wahrscheinlich mit einer schleife? Aber wie finde ich überhaupt erstmal raus, wieviele Einträge ich in der Ini habe ...


    ******************
    Edit by verärgertem K1ngC0bra
    Threadtitel ändern ...

  2. #2
    Gesperrt
    Registriert seit
    09.12.2006
    Beiträge
    946

    Standard

    Nehmen wir mal an du hast die Liste :
    Code:
    [SERVERNAME]
    IP=SERVERIP
    
    [SERVERNAME2]
    IP=SERVERIP2 
    
    [SERVERNAME3]
    IP=SERVERIP4
    
    [SERVERNAME4]
    IP=SERVERIP4
    Dann machst du es folgendermaßen, du lädst die z.B. erstmal die .ini in ein Memo.

    Memo1.lines.loadfromFile(*Dateipfad*);

    So nun könnte es so aussehen ( nicht getestet, nur so hingeschrieben)

    Code:
    for i := 0 to Memo1.lines -1 do begin
    ListView1.items.add(Memo1.lines.strings[0];
    Memo1.lines.delete[0]
    ListView1.items.subitems.add('Memo1.lines.strings[0];
    Memo1.lines.delete[0]
    end;

  3. #3
    Forenclown Avatar von cl9wn
    Registriert seit
    27.07.2008
    Beiträge
    599

    Standard

    Was ist mit den Leerzeilen? Was ist mit den "[" "]" ? Was ist mit dem IP=?

    Muss irgendwie anders gehen ... :/

  4. #4
    NoClose Wurm Avatar von bayer
    Registriert seit
    31.03.2007
    Beiträge
    185

    Standard

    Naja, je nachdem, wie deine Ini aufgebaut ist, würde ich die Anzahl aller Zeilen ermitteln und dann durch 3 teilen, wenn das immer so ist:

    [Servername]
    IP=
    {leerzeile}

    damit kannste dann mit ner for-schleife durch die ini gehen und die werte auslesen

    edit: sehe gerade, dass Servername wohl immer anders ist. Dadurch kannst du das eigentlich vergessen. nimm den Vorschlag von tmh und lösche die leerzeilen halt in der schleife und die Zeichen entfernst du halt mit

    StringReplace(Memo1.lines.strings[0],'[','',[rfReplaceAll]);
    StringReplace(Memo1.lines.strings[0],']','',[rfReplaceAll]);
    StringReplace(Memo1.lines.strings[0],'IP=','',[rfReplaceAll]);

    Ich liebe mein Beil!

  5. #5
    Gesperrt
    Registriert seit
    09.12.2006
    Beiträge
    946

    Standard

    Zitat Zitat von cl9wn
    Was ist mit den Leerzeilen?
    Einfach ein weiteres Zeilen löschen dranhängen

    Was ist mit den "[" "]" ? Was ist mit dem IP=?
    Versuch es mit einer Hilfsvariable, die du halt dir zurechtschneidest.

  6. #6
    Forenclown Avatar von cl9wn
    Registriert seit
    27.07.2008
    Beiträge
    599

    Standard

    Dann sind die [] immernoch da ... gibt es keine einfachere lösung? Im prinzip muss ich ja nur wissen wieviele einträge es in der ini gibt und diese dann durchgehen .. auslesen kann man die ja durch ReadSection und ReadString etc ...

  7. #7
    NoClose Wurm Avatar von bayer
    Registriert seit
    31.03.2007
    Beiträge
    185

    Standard

    Siehe mein Edit oben

    Ich liebe mein Beil!

  8. #8
    Forenclown Avatar von cl9wn
    Registriert seit
    27.07.2008
    Beiträge
    599

    Standard

    Ich werds mal probieren aber ich kann mir kaum vorstellen dass ich um eine ini auszulesen eine Memo brauch .. naja^^ mal sehen!

  9. #9
    NoClose Wurm Avatar von bayer
    Registriert seit
    31.03.2007
    Beiträge
    185

    Standard

    Das Problem ist, dass du in der Ini die Namen der Sections kennen musst, um an die Values zu kommen.

    Würdest du das ganze so in der ini speichern, hättest du kein Problem, mit ner for-schleife zu arbeiten:

    [Main]
    Anzahl=4

    [1]
    Servername='blabla'
    IP=123.456.789.333


    [2]
    Servername='blabla'
    IP=123.456.789.333


    [3]
    Servername='blabla'
    IP=123.456.789.333


    [4]
    Servername='blabla'
    IP=123.456.789.333

    du liest dann oben die Anzahl aus und gehst dann mit ner for-schleife die sections durch und liest die werte aus und packst die in dein listview.

    Den Servernamen als sectionnamen zu verwenden halte ich für keine gute idee, da werte immer bei den values stehen^^

    Ich liebe mein Beil!

  10. #10
    Forenclown Avatar von cl9wn
    Registriert seit
    27.07.2008
    Beiträge
    599

    Standard

    Und woher weiss ich was bei [Main] Anzahl= hinmuss?

Seite 1 von 2 12 LetzteLetzte

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •