![]() |
Re: speichern von var
Ich hab im Quellcode "speichern" angesprochen, damit meinte ich aber eigentlich die Benutzung von Variablen.
Flare |
Re: speichern von var
Du könntest dass ganze auch folgendermaßen machen.
Das ist - finde ich - bei wenigen Daten noch einfacher:
Delphi-Quellcode:
Das ist mal 'n komplettes Beispielprogramm.
program Project2;
{$APPTYPE CONSOLE} var F: TextFile; var1, var2: string; var3, var4: Integer; begin //Variablen initialisieren var1 := 'bla'; var2 := 'blubb'; var3 := 42; var4 := 0; //Datei öffnen und die Daten Zeile für Zeile abspeichern AssignFile(F, 'DATEINAME'); Rewrite(F); Writeln(F, var1); Writeln(F, var2); Writeln(F, var3); Writeln(F, var4); CloseFile(F); //Variablen "leeren" var1 := ''; var2 := ''; var3 := -1; var4 := -1; //Datei öffnen und die Daten Zeile für Zeile auslesen AssignFile(F, 'DATEINAME'); Reset(F); Readln(F, var1); Readln(F, var2); Readln(F, var3); Readln(F, var4); CloseFile(F); //Variablen in Konsole ausgeben Writeln(var1); Writeln(var2); Writeln(var3); Writeln(var4); Readln; end. |
Re: speichern von var
@Hador
Warum stellst du hier Pascal-Code rein wenn es um Win32 Delphi geht? Flare |
Re: speichern von var
:shock: :shock: :shock:
Das IST Object Pascal (Delphi Win32) Code Zitat:
|
Re: speichern von var
Und ich bitte euch beim Thema zu bleiben und alles andere via PM zu klären.
Danke. |
Re: speichern von var
danke für die hilfe und die links zum toturial.. ich habe sie mir durchgelesen und es ausprobiert...
das speichern hat funktioniert aber wenn ich die variablen dann wieder aufrufen will, funktioniert es nicht...sie bekommmen dann alle 0 zugewiesen ?!?!? ich hoffe ihr könnt ihr mir erneut helfen :)
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 { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; a,b,c,d,e,f,ap,bp,cp,dp,ep,fp,x:double; ini: TIniFile; implementation {$R *.dfm} procedure TForm1.FormShow(sende:TObject); begin ini:=TIniFile.create('ergebnis.ini'); try 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); finally ini.Free; end; 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((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); ini.free; end; end. lg tom |
Re: speichern von var
Hallo Tom!
Schau Dir doch mal Deinen Code genau an:
Delphi-Quellcode:
Siehst Du den Unterschied? Bei ersten Mal wird die Datei im aktuellen Verzeichnis gesucht (das nicht unbedingt das Programmverzeichnis sein muß, ein reines Glücksspiel!), im zweiten Fall im Programmverzeichnis. Obendrein hast Du vergessen, den Programmnamen rauszunehmen, der Ini-Name ist also "programmverzeichnis\programm.exeergebnis.ini" - kein Wunder, daß die Werte leer sind.
procedure TForm1.FormShow(sende:TObject);
begin ini:=TIniFile.create('ergebnis.ini'); end; procedure TForm1.votebtmClick(Sender: TObject); ini:=TIniFile.Create((ParamStr(0))+'ergebnis.ini'); end; Schreibe in beiden Fällen:
Delphi-Quellcode:
Außerdem ist es unnötig, die Variable "ini" global zu deklarieren. Deklariere sie jeweils in den Methoden, in denen sie benutzt wird.
ini:=TIniFile.Create(ExtractFilePath (ParamStr(0))+'ergebnis.ini');
Desweiteren: beim ersten Teil hast Du einen Ressourcenschutzblock drin, beim zweiten mal nicht! Da frage ich mich natürlich, wo Du Deinen Code zusammengesucht hast und ob Du überhaupt verstehst, was Du da geschrieben hast - man sollte nicht kopieren, sondern kapieren! Dietmar Brüggendiek Edit: hupps - da fehlte ja ExtractFilePath! |
Re: speichern von var
jetzt habe ich das geändert jedoch funktioniert es immer noch nicht :?
Delphi-Quellcode:
tg tom
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 { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; a,b,c,d,e,f,ap,bp,cp,dp,ep,fp,x:double; ini: TIniFile; implementation {$R *.dfm} procedure TForm1.FormShow(sende:TObject); begin ini:=TIniFile.create(ExtractFilePath (ParamStr(0))+'D:\Office\Delphi\Umfragen\umfragepr.exeergebnis.ini'); try 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); finally ini.Free; end; 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); ini.free; end; end. |
Re: speichern von var
kann mir bitte jemand helfen?!?!?!?!?!
|
Re: speichern von var
Sag mal, verstehst du überhaupt, was du da schreibst? :wall: :wall: :wall:
Delphi-Quellcode:
Wenn die aktuelle Anwendung D:\Office\Delphi\Umfragen\umfragepr.exe heißt, dann kommt da hinten D:\Office\Delphi\Umfragen\D:\Office\Delphi\Umfrage n\umfragepr.exeergebnis.ini raus.
ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'D:\Office\Delphi\Umfragen\umfragepr.exeergebnis.ini');
Und bevor ich jetz noch nen Herzinfarkt bekomme:
Delphi-Quellcode:
So müssen beide Zeilen lauten (sowohl 35 als auch 65).
ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'ergebnis.ini');
Außerdem darf man erst nach 24 Stunden pushen. :warn: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 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