AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

geht nicht...aus ini lesen

Ein Thema von kumar89 · begonnen am 28. Jan 2010 · letzter Beitrag vom 28. Jan 2010
Antwort Antwort
kumar89
(Gast)

n/a Beiträge
 
#1

geht nicht...aus ini lesen

  Alt 28. Jan 2010, 14:59
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:
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;
und hier wie ich die werte beziehe:

Delphi-Quellcode:
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;
komme einfach nicht darauf wo der fehler ist...

mfg kumar89
  Mit Zitat antworten Zitat
Highttower

Registriert seit: 2. Jun 2009
Ort: Worms
88 Beiträge
 
Delphi 2010 Professional
 
#2

Re: geht nicht...aus ini lesen

  Alt 28. Jan 2010, 15:06
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
Tobi
Rechtschreib und Semikolion Fehler dürfen behalten werden.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: geht nicht...aus ini lesen

  Alt 28. Jan 2010, 15:07
Was geht den genau nicht? Und ja du solltest endlich mal anfangen unsere Tipps zu beherzigen!!
Markus Kinzler
  Mit Zitat antworten Zitat
exilant

Registriert seit: 28. Jul 2006
134 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: geht nicht...aus ini lesen

  Alt 28. Jan 2010, 15:13
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:

  ini.writestring('misc','MeinErstesEdit',MeinErstesEdit.text);
  ini.writestring('misc','MeinZweitesEdit',MeinZweitesEdit.text);
und zum einlesen:

Delphi-Quellcode:

  MeinErstesEdit.text := ini.readstring('misc','MeinErstesEdit','default1');
  MeinZweitesEdit.text := ini.readstring('misc','MeinZweitesEdit','default2');
So wird das Programm deutlich übersichtlicher.
Anything, carried to the extreme, becomes insanity. (Exilant)
  Mit Zitat antworten Zitat
kumar89
(Gast)

n/a Beiträge
 
#5

Re: geht nicht...aus ini lesen

  Alt 28. Jan 2010, 15:17
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)'
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: geht nicht...aus ini lesen

  Alt 28. Jan 2010, 15:20
In diesem Fall müsstest du für jede Komponente einen Eintrag im selben Format in die Ini schreiben
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: geht nicht...aus ini lesen

  Alt 28. Jan 2010, 15:21
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
Heiko
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: geht nicht...aus ini lesen

  Alt 28. Jan 2010, 15:23
Hallo,

wenn ich nun compiliere kommt eine fehlermeldung in der steht:
Zitat:
...ist eine exception der klasse elisterror mit der meldung 'Listenindex überschreitet das Maximum (35)'

Unwahrscheinlich, dass das beim Kompilieren kommt,
ich denke her, es kommt beim Ablauf ?

Zeig noch mal den hoffentlich geänderten Code.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: geht nicht...aus ini lesen

  Alt 28. Jan 2010, 15:28
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;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 15:24 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