Delphi-PRAXiS
Seite 3 von 4     123 4      

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)

Subsidenz 24. Mai 2008 19:00

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Also nach dem rausnehmen sah es nicht gerade besser aus. Er zeigt immer noch den Access violation Fehler und geht in diese Zeile(die mit den Ausrufezeichen):

Delphi-Quellcode:
begin
  sl := TStringList.Create;
  try
    Ini.ReadSectionValues('Titel',sl); !!!!
    z := sl.Count;
  finally
    FreeAndNil(sl);
  end;

DeddyH 24. Mai 2008 19:05

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Wo hast Du denn das TIniFile.Create stehen? Ist die Ini eine globale Variable?

Subsidenz 24. Mai 2008 19:07

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Zitat:

Zitat von DeddyH
Wo hast Du denn das TIniFile.Create stehen? Ist die Ini eine globale Variable?

Delphi-Quellcode:
var
  ini : TiniFile;
Das hab ich bei den globalen Variablen stehen.

MFG Subsidenz

DeddyH 24. Mai 2008 19:08

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Und wo wird sie angelegt (TIniFile.Create)?

Subsidenz 24. Mai 2008 19:11

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Zitat:

Zitat von DeddyH
Und wo wird sie angelegt (TIniFile.Create)?

Die wird beim Speichern angelegt, bzw. verändert.

Delphi-Quellcode:
ini := TIniFile.Create(ExtractFilePath( ParamStr(0))+'data.ini');
Dieser Code ist mit in der Speicher-Prozedur. Sie wird also im gleichen Ordner angelegt bzw. gespeichert/überschrieben.

DeddyH 24. Mai 2008 19:15

Re: Problem mit ini-Datei bei Wertzuweisungen
 
So kommen wir irgendwie nicht weiter. Wenn es nicht gerade 400 Zeilen sind, poste mal die Unit.

Subsidenz 24. Mai 2008 19:20

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Delphi-Quellcode:
unit Seite1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls, jpeg, ExtCtrls, Outline, ComCtrls, TabNotBk,
  Buttons, iniFiles;

type
  TForm1 = class(TForm)
    Hintergrund: TImage;
    ueberschrift: TLabel;
    eigenschaften: TGroupBox;
    ltitel: TLabel;
    tinterpret: TLabel;
    tgenre: TLabel;
    tgroesse: TLabel;
    tlaenge: TLabel;
    titel: TEdit;
    interpret: TEdit;
    genre: TEdit;
    groesse: TEdit;
    laenge: TEdit;
    grid: TStringGrid;
    operatoren: TGroupBox;
    ein: TButton;
    BitBtn1: TBitBtn;
    spei: TButton;
    loeschen: TButton;
    laden: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure einClick(Sender: TObject);
    procedure speiClick(Sender: TObject);
    procedure ladenClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  ini : TiniFile;

implementation

uses Unit2, Seite2;

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
begin
Form3.ShowModal;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
grid.Cells[0,0]:='Titel';
grid.Cells[1,0]:='Interpret';
grid.Cells[2,0]:='Genre';
grid.Cells[3,0]:='Größe in MB';
grid.Cells[4,0]:='Länge in min';
end;


procedure TForm1.einClick(Sender: TObject);
var h :integer;
begin
h:=grid.RowCount-1;
grid.Cells[0,h]:=titel.Text;
grid.Cells[1,h]:=interpret.Text;
grid.Cells[2,h]:=genre.Text;
grid.Cells[3,h]:=groesse.Text;
grid.Cells[4,h]:=laenge.Text;
grid.RowCount:=h+2;
titel.SetFocus;
end;

procedure TForm1.speiClick(Sender: TObject);
var a,h : integer;
begin
a:=1;
h:=grid.RowCount-2;
ini := TIniFile.Create(ExtractFilePath( ParamStr(0))+'data.ini');
ini.EraseSection('Titel');
for a:=1 to h do
begin
 ini.WriteString('Titel', IntToStr(a), grid.Cells[0,a])
end;
end;

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;
a:=1;
grid.RowCount:=z+1;
 for a:=1 to z do
 begin
  grid.Cells[0,a]:=ini.ReadString('Titel', IntToStr(a), '');
 end;
end;
end;

end.
Anmerkung: Dies ist ein Programm für eine Musik-Datenbank. Man trägt jeweils in 5 Editfelder etwas ein und dann wird es in eine Tabelle geschrieben. Die Werte daraus kann man durch den Button "Speichern" in eine ini-Datei schreiben. Beim "Laden" sollen nun diese Werte wieder in die Tabelle eingefügt werden.

Soweit wollt ich das erstmal machen. Löschen der Zeilen bzw. Bearbeiten kommt noch hinzu. Das Laden steht halt gerade im Problem-Mittelpunkt :-D

MFG Subsidenz

DeddyH 24. Mai 2008 19:25

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Wenn ich das richtig sehe, müsstest Du immer erst speichern, damit die Ini zur Verfügung steht. Da Du eh globale Variablen benutzt, kannst Du das auch so machen (vor dem letzten end.):
Delphi-Quellcode:
initialization
  ini := TIniFile.Create(ExtractFilePath( ParamStr(0))+'data.ini');

finalization
  ini.Free;
Damit steht die Ini global zur Verfügung, Du musst sie nicht neu erzeugen. (Hoffentlich werde ich jetzt nicht öffentlich gesteinigt :duck: )

Subsidenz 24. Mai 2008 19:29

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Zitat:

Zitat von DeddyH
Wenn ich das richtig sehe, müsstest Du immer erst speichern, damit die Ini zur Verfügung steht. Da Du eh globale Variablen benutzt, kannst Du das auch so machen (vor dem letzten end.):
Delphi-Quellcode:
initialization
  ini := TIniFile.Create(ExtractFilePath( ParamStr(0))+'data.ini');

finalization
  ini.Free;
Damit steht die Ini global zur Verfügung, Du musst sie nicht neu erzeugen. (Hoffentlich werde ich jetzt nicht öffentlich gesteinigt :duck: )

Entschuldigung :oops:
Aber wo müssen die beiden Sachen denn eingefügt werden?

DeddyH 24. Mai 2008 19:34

Re: Problem mit ini-Datei bei Wertzuweisungen
 
Zitat:

vor dem letzten end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:32 Uhr.
Seite 3 von 4     123 4      

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