AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TIniFile: "ReadSections" funktioniert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

TIniFile: "ReadSections" funktioniert nicht

Ein Thema von Pseudemys Nelsoni · begonnen am 3. Aug 2005 · letzter Beitrag vom 3. Aug 2005
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

TIniFile: "ReadSections" funktioniert nicht

  Alt 3. Aug 2005, 21:02
Moin,

Ich habe eine Ini-Datei die folgendermassen aussieht:

Zitat:
[asdf:12..45]
blah 1 blah2=hi.ho
Und versuche folgendermassen die sektion (asdf:12..45) zu bekommen:

Delphi-Quellcode:
procedure TForm2.FormShow(Sender: TObject);
var
  Ini: TIniFile;
  ServerGroups: TStringList;
begin
  // Server laden
  if FileExists('servers.ini') then
  begin
    ServerGroups := TStringList.Create;
    Ini := TIniFile.Create('servers.ini');
    try
      ini.ReadSections(ServerGroups);
      Showmessage(IntToStr(ServerGroups.Count));
    finally
      Ini.Free;
      ServerGroups.Free;
    end;
  end;
end;
Wieso zeigt mir das ShowMessage 0 an? Ich müsste mit dem Code doch eine Sektion in meiner Stringlist haben oder?
Mario
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#2

Re: TIniFile: "ReadSections" funktioniert nicht

  Alt 3. Aug 2005, 21:27
Hallo,

Du musst die Section mit angeben;
Delphi-Quellcode:
ini.ReadSection('asdf:12..45',ServerGroups);//alle Namen der Werte
ini.ReadSectionValues('asdf:12..45',ServerGroups);//alle Werte
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: TIniFile: "ReadSections" funktioniert nicht

  Alt 3. Aug 2005, 21:28
Äh, wie oft eiegntlich noch:
Ini := TIniFile.Create('servers.ini'); Wenn du sie auch so erstellt hast, dann guck mal, ob du sie im Windowsverzeichnis wieder findest. Und beim Laden gib mal den vollen absoluten Pfad an.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#4

Re: TIniFile: "ReadSections" funktioniert nicht

  Alt 3. Aug 2005, 21:34
Hallo Lannes,

das Problem ist, das ich die Sektionen nicht kenne, ich möchte sie mir nur alle in eine StringList laden. ne Ahnung wie das geht?

@Luckie: DIe Datei gibts in meinem Windows(System)-Ordner nicht, es wird shcon die richtige Datei hier genommen.
Mario
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: TIniFile: "ReadSections" funktioniert nicht

  Alt 3. Aug 2005, 21:36
Da wäre ich mir nicht so sicher. Bist du sicher, dass das Arbeitsverzeichnis zu dem Zeitpunkt auch das Programmverzeichnis deiner Anwendung ist? Ich würde mich nicht drauf verlassen. Aber wie du meinst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#6

Re: TIniFile: "ReadSections" funktioniert nicht

  Alt 3. Aug 2005, 21:40
Moin moin,

die Unit IniFiles verwendet intern die funktion GetPrivateProfileString

Zitat von delphi:
..
lpFileName

Pointer to a null-terminated string that names the initialization file. If this parameter does not contain a full path to the file, Windows searches for the file in the Windows directory.
Luckie hat also vollkommen recht...
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#7

Re: TIniFile: "ReadSections" funktioniert nicht

  Alt 3. Aug 2005, 22:07
Schon, aber da keine Datei namens "servers.ini" im Windowsdir vorhanden ist, wird die aus dem Programmpfad benutzt.
Mario
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#8

Re: TIniFile: "ReadSections" funktioniert nicht

  Alt 3. Aug 2005, 22:25
Zitat von Pseudemys Nelsoni:
...wird die aus dem Programmpfad benutzt.
und weil sie eben nicht aus dem Programmpfad benutzt wird, bekommst du auch nur eine Leere Stringliste.
Gebe bei deinem geposteten code den vollen Pfad zu deiner servers.ini an, bzw. kopiere sie
in dein Windowsverzeichnis und du wirst sehen, dass dir die sections alle angezeigt werden.

Delphi-Quellcode:
ServerGroups := TStringList.Create;
Ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'servers.ini');
try
  ini.ReadSections(ServerGroups);
  Showmessage(IntToStr(ServerGroups.Count));
finally
  Ini.Free;
  ServerGroups.Free;
end;
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: TIniFile: "ReadSections" funktioniert nicht

  Alt 3. Aug 2005, 22:31
Zitat von Pseudemys Nelsoni:
Schon, aber da keine Datei namens "servers.ini" im Windowsdir vorhanden ist, wird die aus dem Programmpfad benutzt.
Und woraus schließt du das? Etwa daraus, dass die Stringliste leer ist?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#10

Re: TIniFile: "ReadSections" funktioniert nicht

  Alt 3. Aug 2005, 23:01
Hallo,

@Pseudemys Nelsoni
hätte besser lesen sollen ReadSection <> ReadSections

Nimm den Code von x000x dann wird Die ini auch dann gefunden, wenn das aktuelle Arbeitsverzeichnis nicht mit dem Programmverzeichnis identisch ist.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz