Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wert von ini Datei lesen und wenn nicht vorhanden dann Exit (https://www.delphipraxis.net/113295-wert-von-ini-datei-lesen-und-wenn-nicht-vorhanden-dann-exit.html)

Delphiturbo 5. Mai 2008 19:43


Wert von ini Datei lesen und wenn nicht vorhanden dann Exit
 
hallo

mein Programm holt einen Wert von einer ini Datei
Delphi-Quellcode:
...
procedure TForm1.FormCreate(Sender: TObject);
var MyIniFile : TInifile;
begin
MyIniFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'MyIniFile3.ini');
Edit1.Text := MyIniFile.ReadString('Section1','edit1.text','nicht gefunden');

 MyIniFile.Free;
end;
ich möchte dass mein Programm beendet wenn die Datei nicht vorhanden ist
was kann ich dazu in Code schreiben ?

Der.Kaktus 5. Mai 2008 19:46

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
Hallo,

Delphi-Quellcode:
If Paramcount>0 then ...//pruefen ob Parameter i.O. ist
else application.terminate;
Dem entsprechend die Reaktion abbrechen wenn der Inifile Wert nicht dem entspricht, was er enthalten soll.

tomsel 5. Mai 2008 19:59

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
Delphi-Quellcode:
if not FileExists... then
  Close;

bluesbear 5. Mai 2008 20:07

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
Besser wäre, das Form gar nicht erst zu erstellen, wenn die ini nicht existiert.

tomsel 5. Mai 2008 20:10

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
Ja, genau! Close in FormCreate, geht das überhaupt?

bluesbear 5. Mai 2008 20:14

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
Zitat:

Zitat von tomsel
Ja, genau! Close in FormCreate, geht das überhaupt?

Sehr gute Frage. Das habe ich noch nie ausprobiert <g>. Ein PostMessage in FormShow abzusetzen sollte klappen. Aber dann flackert das Form kurz auf.

Der.Kaktus 5. Mai 2008 20:16

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
Zitat:

Zitat von bluesbear
Zitat:

Zitat von tomsel
Ja, genau! Close in FormCreate, geht das überhaupt?

Sehr gute Frage. Das habe ich noch nie ausprobiert <g>. Ein PostMessage in FormShow abzusetzen sollte klappen. Aber dann flackert das Form kurz auf.

Wie ich oben schon schrieb..Application.Terminate geht da nur..hatte das Prob. naemlich letztens. ;-)

Delphiturbo 5. Mai 2008 20:20

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
Warum verschwendet Button1 nach dem Klick !!!
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var MyIniFile : TInifile;
begin
if FileExists('MyIniFile3.ini') then
begin
MyIniFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'MyIniFile3.ini');
Edit1.Text := MyIniFile.ReadString('Section1','text1','nicht gefunden')
end
else
begin
//close;
ShowMessage('nicht gefunden ');
MyIniFile.Free;
end;

toms 5. Mai 2008 20:22

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
Zitat:

Zitat von Der.Kaktus
Zitat:

Zitat von bluesbear
Zitat:

Zitat von tomsel
Ja, genau! Close in FormCreate, geht das überhaupt?

Sehr gute Frage. Das habe ich noch nie ausprobiert <g>. Ein PostMessage in FormShow abzusetzen sollte klappen. Aber dann flackert das Form kurz auf.

Wie ich oben schon schrieb..Application.Terminate geht da nur..hatte das Prob. naemlich letztens. ;-)

Warum den Check nicht schon in der dpr Datei machen?

Der.Kaktus 5. Mai 2008 20:25

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
@toms 2late *gg* folgt!!


Zitat:

Zitat von Delphiturbo
Warum verschwendet Button1 nach dem Klick !!!
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var MyIniFile : TInifile;
begin
if FileExists('MyIniFile3.ini') then
begin
MyIniFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'MyIniFile3.ini');
Edit1.Text := MyIniFile.ReadString('Section1','text1','nicht gefunden')
end
else
begin
//close;
ShowMessage('nicht gefunden ');
MyIniFile.Free;
end;

mach die Abfrage doch im Projekt(dpr) hinter application.init..iss paramcount bzw. Inifile(wert) ungleich dem, den Du erwartest..dann schreibst Du "Application.Terminated"..schon umgehst Du alle Schwierigkeiten.

Fussball-Robby 5. Mai 2008 20:29

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var MyIniFile : TInifile;
begin
if FileExists('MyIniFile3.ini') then
begin
MyIniFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'MyIniFile3.ini');
Edit1.Text := MyIniFile.ReadString('Section1','text1','nicht gefunden')
end
else
begin
//close;
ShowMessage('nicht gefunden ');
MyIniFile.Free;
end;
Was ist das denn? Wenn die Datei existiert, erstellst du die IniFile, wenn sie nicht existiert, gibtst du sie frei? Außerdem solltest du dir angewöhnen, den Code einzurücken:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  MyIniFile: TInifile;
  FName: String;
begin
  FName := ExtractFilePath(ParamStr(0)) + 'MyIniFile3.ini';
  if FileExists(FName) then
  begin
    MyIniFile := TIniFile.Create(FName);
    try
      Edit1.Text := MyIniFile.ReadString('Section1', 'text1', 'nicht gefunden')
    finally
      MyIniFile.Free;
    end;
  end
  else
  begin
    //close;
    ShowMessage('nicht gefunden ');
  end;
end;

Delphiturbo 5. Mai 2008 20:57

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
Es ist ok mit dem Code, möchte ich aber noch den Code ändern

wenn die INI-Datei vorhanden ist aber die Zeile text1 nicht da, dann soll das Programm auch beendet werden und nicht eine Meldung zeigen "nicht gefunden"

Blackheart 5. Mai 2008 21:12

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
Zitat:

Zitat von Delphiturbo
Es ist ok mit dem Code, möchte ich aber noch den Code ändern

wenn die INI-Datei vorhanden ist aber die Zeile text1 nicht da, dann soll das Programm auch beendet werden und nicht eine Meldung zeigen "nicht gefunden"

Und wo ist nun dein Problem ?
Delphi-Quellcode:
If IniFile.ReadString(bla then...

Delphiturbo 5. Mai 2008 23:42

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
Ich habe jetzt ein anderes Problem

Es wird immer eine neue Zeile in Ini-Datei hinzugefügt !
Delphi-Quellcode:
...
MyIniFile.WriteString('Daten1','Text1', 'blabla');
...
d.h. wenn ich die INI-Datei öffne dann finde ich folgendes :
Delphi-Quellcode:
[Daten]
Text=blabla
[Daten]
Text=blabla
[Daten]
Text=blabla
[Daten]
Text=blabla
...
Wie kann ich die Zeile in ini Datei ersetzen ? Also die alte zuerst löschen
und dann die neue hinschreiben.

Blackheart 6. Mai 2008 16:20

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
Normalerweise wird der Wert überschrieben du musst da wohl irgendetwas
verkehrt machen am besten du zeigst mal etwas code.

SaFu 6. Mai 2008 16:26

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
Hatte das Problem auch schonmal wenn irgendwo noch ein leerzeichen drin ist wurde es bei mir auch immer wieder neu geschrieben. Raus gemach ging

vielleicht hilfts ja

DeddyH 6. Mai 2008 16:27

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
Spätestens beim 2. Anruf sollte der Wert dann aber trotzdem überschrieben werden.

Deltachaos 6. Mai 2008 16:46

Re: Wert von ini Datei lesen und wenn nicht vorhanden dann E
 
Delphi-Quellcode:
...
MyIniFile.WriteString('Daten1','Text1', 'blabla');
...
d.h. wenn ich die INI-Datei öffne dann finde ich folgendes :
Delphi-Quellcode:
[Daten]
Text=blabla
[Daten]
Text=blabla
[Daten]
Text=blabla
[Daten]
Text=blabla
...
kleine Frage:

Warum steht oben 'Daten1' und unten '[Daten]' dass muss eigentlich dan '[Daten1]'

gibst du den die ini Datei auch wieder frei. nur so ne vermutung.


Delphi-Quellcode:
  inidatei.free;
:mrgreen: :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23: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