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/)
-   -   Delphi speichern von var (https://www.delphipraxis.net/66085-speichern-von-var.html)

Hador 26. Mär 2006 18:51

Re: speichern von var
 
Zitat:

Zitat von Frodo_Beutlin
Delphi-Quellcode:
ini:=TIniFile.create(ExtractFilePath (ParamStr(0))+'D:\Office\Delphi\Umfragen\umfragepr.exeergebnis.ini');

Delphi-Quellcode:
ExtractFilePath (ParamStr(0))
liefert schon den Absoluten Pfad zu deinem Projekt, so dass du ihn nicht noch einmal angeben musst.
also:
Delphi-Quellcode:
ini:=TIniFile.create(ExtractFilePath (ParamStr(0))+'umfragepr.exeergebnis.ini');
Auch solltest du auf den Gebrauch von globalen Variablen verzichten

EDIT:
Ich glaub der rote Kasten hat Urlaub :gruebel:

Und bitte erst nach 24h pushen!

Frodo_Beutlin 26. Mär 2006 19:25

Re: speichern von var
 
erstmal sorry fürs pushen hab ich nicht gewusst..

soll ich jetzt bei beiden zeilen

Delphi-Quellcode:
ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'umfragepr.exeergebnis.ini');
oder

Delphi-Quellcode:
ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'ergebnis.ini');
schreiben?

bladecs 26. Mär 2006 19:36

Re: speichern von var
 
also ich würde

Delphi-Quellcode:
ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'ergebnis.ini');
nehmen. Nimm den Namen, der für dich passender erscheint.

Frodo_Beutlin 26. Mär 2006 19:52

Re: speichern von var
 
ich habe beides schon versucht aber irgendwie bekomme ich nie die gespeicherten werte :cry:

kann mir jemand villeicht den quellcode so hinschrieben wie es funktioniren müsste?

Christian Seehase 26. Mär 2006 20:38

Re: speichern von var
 
Moin Frodo,

das einfachste, und übersichtlichste, wäre wohl, wenn Du ini als Feld in Deinem Formular deklarierst, und nur einmal (!) erzeugst.
Beispielsweise:

Delphi-Quellcode:
TForm1 = class(TForm)
//....

private
  Fini : TIniFile;
end;

/...

implementation

procedure TForm1.Form1Create(Sender: TObject); // OnCreate
begin
  // Instanz erzeugen
  // Hier muss die Ini-Datei im Programmverzeichnis liegen.
  Fini := TIniFile.Create(ExtractFilepath(paramstr(0)+'ergebnis.ini');
end;

procedure TForm1.Form1Destroy(Sender: TObject); // OnDestroy
begin
  // ...und wieder freigeben.
  FreeAndNil(Fini);
end;
Da man Datenbereiche von Objekten als Felder bezeichnet, bekommen diese, üblicherweise, den Präfix F, es funktioniert natürlich auch ohne.

Frodo_Beutlin 26. Mär 2006 20:50

Re: speichern von var
 
Delphi-Quellcode:
 unit umfrage;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, IniFiles;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    choosedrg: TRadioGroup;
    votebtm: TButton;
    procedure votebtmClick(Sender: TObject);
    procedure FormShow(sende:TObject);
  private
    Fini:TIniFile:
  public
    { Public-Deklarationen } 
  end;

var
  Form1: TForm1;
  a,b,c,d,e,f,ap,bp,cp,dp,ep,fp,x:double;

implementation

{$R *.dfm} 


procedure TForm1.Form1Create(sender:TObject);
begin
  Fini := TIniFile.Create(ExtractFilepath(paramstr(0)+'ergebnis.ini');
  a:=ini.ReadFloat('frage1','wert1',0);
  b:=ini.ReadFloat('frage1','wert2',0);
  c:=ini.ReadFloat('frage1','wert3',0);
  d:=ini.ReadFloat('frage1','wert4',0);
  e:=ini.ReadFloat('frage1','wert5',0);
  f:=ini.ReadFloat('frage1','wert6',0);
end;

procedure TForm1.votebtmClick(Sender: TObject);
begin
  case choosedrg.ItemIndex of
      0:a:=a+1;
      1:b:=b+1;
      2:c:=c+1;
      3:d:=d+1;
      4:e:=e+1;
      5:f:=f+1;
  end;
  x:=a+b+c+d+e+f;
  ap:=a*100/x;
  bp:=b*100/x;
  cp:=c*100/x;
  dp:=d*100/x;
  ep:=e*100/x;
  fp:=f*100/x;
  ini:=TIniFile.create(ExtractFilePath (ParamStr(0))+'ergebnis.ini');
  ini.WriteFloat('frage1', 'wert1', a);
  ini.WriteFloat('frage1', 'wert2', b);
  ini.WriteFloat('frage1', 'wert3', c);
  ini.WriteFloat('frage1', 'wert4', d);
  ini.WriteFloat('frage1', 'wert5', e);
  ini.WriteFloat('frage1', 'wert6', f);
end;

procedure TForm1.Form1Destroy(Sender: TObject);
begin
  FreeAndNil(Fini);
end;

end.
müsste dies dann so ausseheb?

xZise 26. Mär 2006 21:07

Re: speichern von var
 
Nein!
In der
Delphi-Quellcode:
procedure TForm1.votebtmClick(Sender: TObject);
hast du "ini" und nicht "FIni" genommen!
Außerdem reicht es bei deiner Variante die Datei nur einmal zu Createn.

Also in der
Delphi-Quellcode:
procedure TForm1.votebtmClick(Sender: TObject);
Das
Delphi-Quellcode:
ini := TIniFile.Create(...);
wegnehmen

Edit: Ich sehe gerade: INI gibt es gar nicht! Es gibt nur FIni! (siehe
Delphi-Quellcode:
procedure TForm1.Form1Create(sender:TObject);
)

Lies dir doch bitte mal das Tutorial durch und kapiere es doch und wenn nicht, dann frage dazu etwas... ;)

Frodo_Beutlin 27. Mär 2006 19:11

Re: speichern von var
 
ich habs jetzt auf Fini geändert aber es funktioniert immer noch nicht. könnte mir jemand bitte den
gesamten quellcode umändern wie er dann aussehen müsste, bitte? das wäre wrklich hilfreich... danke im vorraus


tom

inherited 27. Mär 2006 19:37

Re: speichern von var
 
Was passiert denn? Compiliert er nicht wenn ja, was sagt er? Oder Startet er und lädt, bzw speichert nich.
Sorry meine Kristallkugel ist nämlich grad in reperatur

Frodo_Beutlin 28. Mär 2006 12:51

Re: speichern von var
 
kompilieren funktioniert und auch das speichern läuft einwandfrei. nur wenn ich die variablen wieder aus der ini datei laden will bekomme ich immer 0 den variablen zugewiesen :(


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

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