AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Ini-file-DB auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Ini-file-DB auslesen

Ein Thema von Jan · begonnen am 23. Jan 2003 · letzter Beitrag vom 25. Jan 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#1

Ini-file-DB auslesen

  Alt 23. Jan 2003, 16:54
Hallo DP'ler,
ich habe eine INI-Datein, von der ich beim öffnen nicht weiß wieviele einträge die besitzt. Deswegen möchte ich die datei in einen dynamischen aray schreiben und dann auswerten, allerdings brauche ich dazu erstmal eine Möglichkeit die Menge aller sections oder values auslesen zu können, damit ich mit setlength meinen array bereitstellen kann. Weiss jemand wie das geht?
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von X-Dragon
X-Dragon

Registriert seit: 14. Jan 2003
Ort: Schortens
289 Beiträge
 
Delphi 6 Enterprise
 
#2
  Alt 23. Jan 2003, 17:08
Ich hab selbst mit INI-Dateien noch nicht gearbeitet, ich bastel mir immer selber was , aber am einfachsten dürfte es sein, wenn du die Datei in eine StringListe einliest (TStrings.LoadFromFile).
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#3
  Alt 23. Jan 2003, 17:08
Dellphi bietet dir die Klasse TIniFile, die den Umgang mit Ini-Dateien wesentlich vereinfacht. Schau mal in der Delphi-Hilefe nach, besonders die Funktion ReadSections dürfte dich da interessieren.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#4
  Alt 23. Jan 2003, 17:32
Hallo Chewie,
wie ich den ganzen Kram lese und schreibe weiss ich schon, nur ich konnte auch in der Delphi Hilfe keinen Befehl finden mit dem ich die Anzahl der sections oder values in einer INI-Datei auslesen kann.
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#5
  Alt 23. Jan 2003, 17:39
Hallo Jan,

mach eine Schleife mit "while not EOF Datei", solange das Ende der Datei nicht erreicht ist, weiter Lesen. Siehe OH zu EOF.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#6
  Alt 23. Jan 2003, 18:18
Hallo DanielB,
das ist natürlich extrem geschickt :]
Kannst Du mir denn sagen, wie man die Einträge in einem edit nacheinander auslesen kann? Ich kann die jetzt nur nach Namen auslesen.
Also ich verstehe nicht wie ich das anstellen soll.
Ich hab es jetzt schon anders (umständlicher gelöst), undzwar habe ich eine extra-section angelegt mit dem namen 'INFO' und dahinein habe ich dann die Anzahl der Einträge gespeichert, und bei jedem mal schreiben wird der Wert erhöht, aber das werde ich dann an diene version anpassen, sobald du mir da mehr zu sagen kannst.
Das ganze ist übrigends um für mein Twebbrowser Programm Logins zu speichern und diese können dann über ein Popupmenu aufgerufen werden, und sofort in die entsprechenden edits geschrieben werden.
BB!
Jan

P.S.: So nehme sich bitte mal einer meinem Problem im Internet/IP/LAN-Forum an!!! *bettel* http://www.delphipraxis.net/viewtopic.php?t=2672
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#7
  Alt 23. Jan 2003, 18:37
Ach so, du willst die Anzahl aller Sections und Values haben? Dann würde ich so vorgehen: Zuerst via ReadSections alle Sections ermitteln und die StringList in einer Schleife durchgehen. Bei jedem Durchlauf dann via ReadSection die Values ermitteln, die Zahl in einer Variable speichern und zu der bisherigen Anzahl dazuaddieren. Dann hast du die Zahl aller Sections und Values.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#8
  Alt 23. Jan 2003, 18:40
Hallo Chewie,
Ich muss nicht notwendiger Weise die Anzahl aller Sections und values haben, da ich auch eine einzige section machen könnte, und da dann lauter values rein, aber das mit der stringlist scheint tatsächlich die beste Methode zu sein, danke Dir vielmals.
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#9
  Alt 23. Jan 2003, 18:54
Hallo Jan,

nochmal zum Verständniss. Wo sollen den die ganzen sachen angeziegt werden?

So wie ich es verstanden habe, hast Du sowas:

Code:
[Info]
Wert1=Zahl1
Wert2=Zahl2
Wert3=Zahl3
usw., usw....

Man kann das alles evtl. ohne den Umweg über eine StringList machen. Ich konnte aber noch nicht erkennen, wie wo wo die ganzen Einträge dann verfügbar sind.
ListBoxen, Edit, wieviele usw.
Noch ein paar Infos bitte.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#10
  Alt 23. Jan 2003, 18:58
Hallo Daniel B,
das ganze sieht so aus:

Code:
[info]
inilength=3

[account1]
user=username1
pw=passwort1

[account2]
user=username2
pw=passwort2

[account3]
user=username3
pw=passwort3
Die info section ist also im Moment nur dazu da meinem programm zu sagen wieviele Einträge es gibt.
Sobald das in Erfahrung gebracht wurde kann mein Prgramm dann die einzelnen accs so auslesen und in ein Popup-menu schreiben:

Code:
procedure tform1.loadaccs();
var inifile: tinifile;
    inilength, i : integer;
    NewItem: TMenuItem;
begin
  inifile:=tinifile.create(ExtractFilePath(Application.ExeName)+'/easywars.ini');
  inilength:=inifile.readInteger('info','length', 0);
  setlength(accarray, inilength);
  form1.popupmenu1.Items.Clear;
  for i:=0 to length(accarray)-1 do
  begin
    setlength(accarray[i],2);
    accarray[i][0]:=inifile.readstring('account'+inttostr(i+1),'user', 'error');
    accarray[i][1]:=inifile.readstring('account'+inttostr(i+1),'pw', 'error');
    NewItem := TMenuItem.Create(PopupMenu1);
    PopupMenu1.Items.Add(NewItem);
    NewItem.Caption := accarray[i][0];
    NewItem.Tag := i;
    NewItem.OnClick:= fillfields;
  end;
end;

Ich hoffe, dass das jetzt verständlich ist.
bye
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:22 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