![]() |
Daten aus ini auslesen
Hallo Leute
Habe wieder mal ein Problem und zwar speichere ich von einer CheckListBox die aktivierten auflistungen und zwar so
Delphi-Quellcode:
jetzt bin ich am verzweifeln wie ich die wieder auslesen kann.
procedure Tfrm_netz.btn_speichernClick(Sender: TObject);
var ini:TIniFile; i: Integer; s:String; begin ini := TIniFile.Create(IncludeTrailingPathDelimiter(GetCurrentDir)+'server.ini'); begin try for i := 0 to Checklistbox1.Items.Count - 1 do if ChecklistBox1.Checked[i] = true then begin s:=s+ChecklistBox1.Items[i]+','; end; ini.WriteString('ChecklistBox','Items',s); finally ini.Free; end; frm_haupt.Button2.Click; close; end; end; Hat jemand eine Hilfe für mich Danke Mfg StoRmtec |
Re: Daten aus ini auslesen
Wie hast du es denn bisher probiert? Das sollte eigentlich auch in jedem Tutorial behandelt werden oder da, wo du dein Wissen über das Schreiben her hast.
Aber nebenbei bemerkt:
Delphi-Quellcode:
Was kommt denn da für ein Pfad bei raus? Guck mal hier:
IncludeTrailingPathDelimiter(GetCurrentDir)+'server.ini'
![]() |
Re: Daten aus ini auslesen
Und es wird wie gewünscht gespeichert?
|
Re: Daten aus ini auslesen
|
Re: Daten aus ini auslesen
Ein paar Dinge:
1. Deine Formatierung ist grauenhaft :mrgreen: 2. Zitat:
Delphi-Quellcode:
3. Niemals auf true abfragen, besser (und eleganter) geht das mit
'server.ini'
Delphi-Quellcode:
4. Du könntest doch auch die einzelnen Items als Boolean-Werte in die Ini schreiben (oder gleich eine Bitmaske verwenden).
if ChecklistBox1.Checked[i] then
Delphi-Quellcode:
[edit] Da tippt man sich wund, und dann sind schon 3 Antworten da :? [/edit]
Ini.WriteBool('ChecklistBox',IntToStr(i),ChecklistBox1.Checked[i]);
|
Re: Daten aus ini auslesen
OKay danke für die Antworten habe es ein wenig besser angepasst
Speichern geht echt super aber das auslesen komme echt nicht drauf wie ich die eingetragen einträge wieder auslesen kann und in eine ChecklistBox wieder ausgeben kann. Bitte um Hilfe Danke |
Re: Daten aus ini auslesen
:glaskugel:, der aktuelle Code wäre schon recht hilfreich, findest Du nicht?
|
Re: Daten aus ini auslesen
ist eh oben eingefügt habe nur den Pfad angepasst :D
danke |
Re: Daten aus ini auslesen
Schau Dir doch die Punkte 3 und 4 aus meinem Post noch einmal an, dann geht das ganz easy.
|
Re: Daten aus ini auslesen
Danke für die Hilfe was du leistet aber bei den Punkt 3 und 4 wenn ich das einsetze dann speichert er mir gar nichts
irgendwie mache ich da was falsch leider |
Re: Daten aus ini auslesen
Liest Du auch die richtige Ini (also im richtigen Verzeichnis) aus? Egal, was ich meinte:
Delphi-Quellcode:
//Speichern
for i := 0 to Checklistbox1.Items.Count - 1 do ini.WriteBool('ChecklistBox',IntToStr(i),ChecklistBox1.Checked[i]); //Auslesen for i := 0 to Checklistbox1.Items.Count - 1 do ChecklistBox1.Checked[i] := ini.ReadBool('ChecklistBox',IntToStr(i),false); |
Re: Daten aus ini auslesen
Ja lese ich
aber wenn ich das von dir nehme dann schaut meine ini so aus [ChecklistBox] 0=1 aber er soll ja den Netzwerknamen auslesen was er mir auflistet wenn ich die andere Methode nehme [ChecklistBox] Items=\\MARTIN-PC, Danke |
Re: Daten aus ini auslesen
Deine Logik stimmt nicht. Du willst Boolean-Werte in einer Stringauflistung darstellen, das ist IMHO "von hinten durch die Brust ins Auge". Wenn Du unbedingt sprechende Namen haben willst, mach das doch so:
Delphi-Quellcode:
//Speichern
for i := 0 to Checklistbox1.Items.Count - 1 do ini.WriteBool('ChecklistBox',ChecklistBox1.Items[i],ChecklistBox1.Checked[i]); //Auslesen for i := 0 to Checklistbox1.Items.Count - 1 do ChecklistBox1.Checked[i] := ini.ReadBool('ChecklistBox',ChecklistBox1.Items[i],false); |
Re: Daten aus ini auslesen
Mei entweder ist es schon zu spät für das aber jetzt schreibt er mir den namen in die ini
aber auslesen tut er mir ihn nicht und die checklistbox bleibt leer |
Re: Daten aus ini auslesen
Ich habe gerade kein Delphi am Start, aber momentan kann ich keinen Denkfehler sehen. Sogar die Reihenfolge der Einträge in der Ini sollte da keine Rolle spielen :gruebel:. Verwendest Du auch ganz sicher in beiden Methoden denselben Pfad?
|
Re: Daten aus ini auslesen
Okay ich habe es jetzt
er lest mir die angehakte Datei aus aber er speichert alles was er auslest im Netzwerk ab aber er sollte nur die angehakte Datei speichern und die anderen nicht wie es jetzt ist speichert er alles und was angehakt ist lest er auch wieder aus |
Re: Daten aus ini auslesen
Wärst Du da mit einer einfachen TStringlist nicht besser bedient?
|
Re: Daten aus ini auslesen
MMh ja wenn du das sagst sicher also es sollte so sein
Er lest mir im ganzen Netzwerk sie Computer aus dann wähle ich 3 Computer aus die soll er mir speichern und dann nur die 3 wieder auslesen |
Re: Daten aus ini auslesen
Da ich den gesamten Hintergrund ja immer noch nicht kenne, würde ich das wirklich erst einmal mit einer TStringlist machen.
Delphi-Quellcode:
Damit sollten in der Datei nur die angehakten Rechnernamen stehen.
var sl: TStringlist;
i: integer; begin sl := TStringlist.Create; try for i := 0 to Checklistbox1.Count - 1 do if Checklistbox1.Checked[i] then sl.Add(Checklistbox1.Items[i]); sl.SaveToFile(<Dateiname>); finally sl.Free; end; end; |
Re: Daten aus ini auslesen
Als erstes mal einen richtigen Herzlichen Danke an dich
das Forum ist echt spitze und die User dazu Habe es jetzt angepasst und jetzt ist es perfekt Danke MFG StoRmtec |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz