![]() |
geht nicht...aus ini lesen
Hey ich hab da noch ein klitschko kleines problem :)
zwar möchte ich von meiner ini die werte auslesen lassen und in meine edits wieder anzeigen lassen. hier mal mein code wie ich die ini erstelle:
Delphi-Quellcode:
und hier wie ich die werte beziehe:
var Ini: TIniFile;
i: Integer; begin ini := TIniFile.Create('C:\Beispiel.ini'); try // Zum Speichern For i := 0 to ComponentCount - 1 do begin if (TEdit(Components[i]).Name = 'prodLK') or (TEdit(Components[i]).Name = 'unprodLK') or (TEdit(Components[i]).Name = 'GehaltServ') or (TEdit(Components[i]).Name = 'PersonalNK') or (TEdit(Components[i]).Name = 'Berufsbekl') or (TEdit(Components[i]).Name = 'KostenServ') or (TEdit(Components[i]).Name = 'AnschKostFremd') then ini.WriteString('Daten'+(Jahr.text),(Components[i] as TEdit).name,(Components[i] as TEdit).text) else if Components[i] is TEdit then ini.WriteString('Summen'+(Jahr.Text)+(Monat.Text),(Components[i] as TEdit).name,((Components[i] as TEdit).text)); end; finally ini.Free; end; end;
Delphi-Quellcode:
komme einfach nicht darauf wo der fehler ist...
var Ini: TIniFile;
i: Integer; begin ini := TiniFile.Create('C:\Beispiel.ini'); // Zum Lesen For i := 0 to ComponentCount - 1 do begin If Components[i] Is TEdit then with Components[i] As TEdit Do begin text := ini.ReadString('Summen'+(Jahr.Text)+(Monat.Text),(Components[i] as TEdit).name,((Components[i] as TEdit).text)); end; end; ini.Free; end; mfg kumar89 |
Re: geht nicht...aus ini lesen
Hallo kumar89,
ich verstehe leider nicht was dein Problem ist das hat mehrere Gründe: - Titel "geht nicht ... aus ini lesen" hat keine Aussage zu der Problemstellung - Fehlerbeschreibung: - fehlt! Füge das doch noch hinzu, dann kann dir auch bestimmt jemand helfen. Viele Grüße, Tobi |
Re: geht nicht...aus ini lesen
Was geht den genau nicht? Und ja du solltest endlich mal anfangen unsere Tipps zu beherzigen!!
|
Re: geht nicht...aus ini lesen
Warum machst Du Dir das Leben nicht leichter und vergisst die Schleifen über die Formularkomponenten. Statt dessen schreibe den Code doch einfach so:
Delphi-Quellcode:
und zum einlesen:ini.writestring('misc','MeinErstesEdit',MeinErstesEdit.text); ini.writestring('misc','MeinZweitesEdit',MeinZweitesEdit.text);
Delphi-Quellcode:
So wird das Programm deutlich übersichtlicher.MeinErstesEdit.text := ini.readstring('misc','MeinErstesEdit','default1'); MeinZweitesEdit.text := ini.readstring('misc','MeinZweitesEdit','default2'); |
Re: geht nicht...aus ini lesen
ja der fehler liegt daran, dass wenn ich mein projekt wieder öffne die werte nicht in die edits eingetragen werden, ind enen ich zuvor die werte geschrieben habe.
wenn ich nun compiliere kommt eine fehlermeldung in der steht: ...ist eine exception der klasse elisterror mit der meldung 'Listenindex überschreitet das Maximum (35)' |
Re: geht nicht...aus ini lesen
In diesem Fall müsstest du für jede Komponente einen Eintrag im selben Format in die Ini schreiben
|
Re: geht nicht...aus ini lesen
Halo,
dein Fehler ist in der Tat, dass du nicht auf uns hörst.
Delphi-Quellcode:
If Components[i] Is TEdit then with Components[i] As TEdit Do begin
text := ini.ReadString('Summen'+(Jahr.Text)+(Monat.Text),(Components[i] as TEdit).name,((Components[i] as TEdit).text)); Is TEdit OK Das with erschwert alles. Aber warum wieder keine lokale Variablen !!! Wie soll man bei diesem Kauderwelsch (Sorry, auch als Anfänger solltest du die Hinweise anwenden) einen Fehler finden ? 1. lokale Variable Edit: TEdit definieren 2. Breakpoint auf Edit.Text setzen Heiko |
Re: geht nicht...aus ini lesen
Hallo,
wenn ich nun compiliere kommt eine fehlermeldung in der steht: Zitat:
Unwahrscheinlich, dass das beim Kompilieren kommt, ich denke her, es kommt beim Ablauf ? Zeig noch mal den hoffentlich geänderten Code. Heiko |
Re: geht nicht...aus ini lesen
Um meine Vorredner mal zusammenzufassen:
Delphi-Quellcode:
var Ini: TIniFile;
i: Integer; Edit: TEdit; begin ini := TiniFile.Create('C:\Beispiel.ini'); try // Zum Lesen For i := 0 to ComponentCount - 1 do begin If Components[i] Is TEdit then begin Edit := TEdit(Components[i]); Edit.Text := ini.ReadString('Summen'+(Jahr.Text)+(Monat.Text),Edit.name,'Wuppdi'); end; end; finally ini.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 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-2025 by Thomas Breitkreuz