Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Problem mit ini-Datei bei Wertzuweisungen (https://www.delphipraxis.net/114392-problem-mit-ini-datei-bei-wertzuweisungen.html)

Helmi 24. Mai 2008 18:31

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Hallo,

du hast zwei Möglichkeiten:

1. Möglichkeit:

Du liest dir mit ReadSectionValues alle Einträge der Section in eine StringList
ein und schaust dir dann StringList.Count an

oder...

2. Möglichkeit:

Du speicherst dir zuerst in die Ini-Datei wieviele Einträge es sind (sofern du es
zu diesem Zeitpunkt schon weisst).
Beim Auslesen brauchst dann nur den Eintrag der Anzahl auslesen und du weisst
wieviele drin sind.
(unsicher wenn sich was ändert)

Subsidenz 24. Mai 2008 18:33

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Zitat:

Zitat von DeddyH
Versuch es mal mit TIniFile.ReadSectionValues. Die Anzahl der Einträge in der Stringliste entspricht dann der Anzahl der Werte.

Delphi-Quellcode:
z:=TIniFile.ReadSectionValues('Titel');
so? Anmerkung: Titel ist einer meiner Überschriften in der Tabelle.

DeddyH 24. Mai 2008 18:35

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Etwas zu kurz, fürchte ich.
Delphi-Quellcode:
var sl: TStringlist;
    Anzahl: integer;
begin
  sl := TStringList.Create;
  Anzahl := 0;
  try
    Ini.ReadSectionValues('Titel',sl);
    Anzahl := sl.Count;
  finally
    sl.Free;
  end;
end;

Helmi 24. Mai 2008 18:36

Re: Problem mit ini-Datei bei Wertzuweisungen
 
eher so:

Delphi-Quellcode:
var
  sl: TStringList;
  z: Integer; //Anzahl

begin
  sl := TStringList.Create;

  try
    IniFile.ReadSectionValues('Titel', sl);

    z := sl.Count;
  finally
    FreeAndNil(sl);
  end;
end;

Subsidenz 24. Mai 2008 18:46

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Okay ich sollte mal lieber das Problem etwas ausführlicher erklären.
Also ich habs jetzt geschafft, dass er die Werte ordentlich in die ini abspeichert.
Wenn ich nun das Programm erneut starten will klick ich auf den "Laden"-Button und will meine StringGrid nach den Werten einrichten. Da hab ich mir überlegt, dass die Zeilenanzahl der Anzahl der Werte in der ini entsprechen muss (nur halt +1 wegen der tabelle).

Das Ganze hab ich dann so umgesetzt:

Delphi-Quellcode:
procedure TForm1.ladenClick(Sender: TObject);
var i : TListBox;
    z,a : integer;
    sl: TStringlist;
begin
 begin
  sl := TStringList.Create;
  try
    Ini.ReadSectionValues('Titel',sl);
    z := sl.Count;
  finally
    FreeAndNil(sl);
  end;
ini := TIniFile.Create(ExtractFilePath( ParamStr(0))+'data.ini');
a:=1;
grid.RowCount:=z+1;
 for a:=1 to z do
 begin
  grid.Cells[0,a]:=ini.ReadSection('Titel', IntToStr(a), '');
 end;
end;
Jetzt meckert er an folgender Stelle:
Delphi-Quellcode:
  grid.Cells[0,a]:=ini.ReadSection('Titel', IntToStr(a), '');
MFG Subsidenz

DeddyH 24. Mai 2008 18:48

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Ersetz mal ReadSection durch ReadString.

Subsidenz 24. Mai 2008 18:52

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Zitat:

Zitat von DeddyH
Ersetz mal ReadSection durch ReadString.

Jetzt führt er zwar das Programm endlich aus aber er zeigt ein Acces violation Error. :)

DeddyH 24. Mai 2008 18:54

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Du erzeugst die Ini erst, nachdem Du versucht hast, daraus zu lesen?

Subsidenz 24. Mai 2008 18:55

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Zitat:

Zitat von DeddyH
Du erzeugst die Ini erst, nachdem Du versucht hast, daraus zu lesen?

Naja eigentlich existiert sieh ja schon.^^ Soll ich den Befehl rausnehmen?

DeddyH 24. Mai 2008 18:58

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Solange Du die IniFile erzeugt und nicht wieder freigegeben hast, musst Du sie nicht wieder neu erzeugen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:37 Uhr.
Seite 2 von 4     12 34      

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