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 [gelöst]Ini auslesen und in Label schreiben (https://www.delphipraxis.net/109744-%5Bgeloest%5Dini-auslesen-und-label-schreiben.html)

freeriders 6. Mär 2008 20:00


[gelöst]Ini auslesen und in Label schreiben
 
Hi erstmal!
Ja ich bin ziemlicher Delphi Neuling.
In meinem Programm werden Dateien kopiert.
Ich habe den Zielpfad in einem Label gespeichert.
Nunja das kalppt auch alles wunderbar.
Nur ich wollte das Programm nun ein bisschen Userfreundlicher gestalten und so will ich den Pfad aus dem Label beim ersten mal in ein Ini File speichern.
Das habe ich auch soweit geschafft. Die Ini Datei ist korrekt erstellt.
So sieht sie aus:
Code:
[Section]
FIFA Pfad=D:\Programme\EA Sports\FIFA 08\
Um die Ini zu erstllen hab ich nen String geschrieben.
Delphi-Quellcode:
procedure WriteString(
  const SectionName, Schluessel, Wert: string);
  begin

end;
Nunja mein Problem ist nun das Auslesen.
Und zwar möchte ich ja, dass das Value aus dem Ini File direkt in das Label geschrieben wird.
Ich habe im Internet ein wenig gelesen (so habe ich auch das Erstellen geschafft), allerdings klappt das Auslesen von der Ini Datei nicht.
Hier mal mein (falscher) Code:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);

begin
Label2.Caption := GetCurrentDir;
end;


var ini: TIniFile;
begin
  try
  ReadString(Section, FIFA Pfad, string);
  finally
    ini.free;
  end;
end;
Ich wäre über Hilfe sehr erfreut, denn ich möchte das Projekt schnellstmöglich abschließen=)

LG

David Geis

Fussball-Robby 6. Mär 2008 20:03

Re: Ini auslesen und in Label schreiben
 
Hey, das müsste so aussehen:
Delphi-Quellcode:
var ini: TIniFile;
begin
  ini:=TiniFile.Create('PFAD ZUR INI');
    try
      Label2.Caption:=ini.ReadString('Section', 'FIFA Pfad', 'ERROR');
    finally
      ini.free;
    end;
end;
Mfg

[Edit]Aber komisch, dass du da nicht selber drauf gekommen bist, da es genauso geht, wie das Schreiben in eine Ini...

freeriders 6. Mär 2008 20:13

Re: Ini auslesen und in Label schreiben
 
Zitat:

Zitat von Fussball-Robby
Hey, das müsste so aussehen:
Delphi-Quellcode:
var ini: TIniFile;
begin
  ini:=TiniFile.Create('PFAD ZUR INI');
    try
      Label2.Caption:=ini.ReadString('Section', 'FIFA Pfad', 'ERROR');
    finally
      ini.free;
    end;
end;
Mfg

[Edit]Aber komisch, dass du da nicht selber drauf gekommen bist, da es genauso geht, wie das Schreiben in eine Ini...

Hm
Ich glaube ich hatte das so probiert nur bekomme ich einen Fehler
Code sieht nun so aus:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);

begin
Label2.Caption := GetCurrentDir;
end;


var ini: TIniFile;
begin
  ini:=TiniFile.Create(Label2.Caption+'\Pfad.ini');
    try
      Label1.Caption:=ini.ReadString('Section', 'FIFA Pfad', 'ERROR');
    finally
      ini.free;
  end;
end;

end.
Der Compiler setzt mich hinter Label2 von "ini:=TiniFile.Create(Label2.Caption+'\Pfad.ini'); "
Er sagt auch "Variable 'Ini' ist möglicherweise nicht initialisiert worden."

Fussball-Robby 6. Mär 2008 20:24

Re: Ini auslesen und in Label schreiben
 
Wenn überhaupt musst du das so machen:
Delphi-Quellcode:
Procedure TForm1.FormCreate(Sender: TObject);
Var ini: TIniFile;
Begin
  Label2.Caption := GetCurrentDir;

  ini:=TiniFile.Create(Label2.Caption+'\Pfad.ini');
    Try
      Label1.Caption:=ini.ReadString('Section', 'FIFA Pfad', 'ERROR');
    Finally
      ini.Free;
  end;
end;
Außerdem: was kommt da für eine Fehlermeldung?

Die Muhkuh 6. Mär 2008 20:30

Re: Ini auslesen und in Label schreiben
 
Aua, was soll das über die Label.Caption?

Mach es doch direkt:

Delphi-Quellcode:
Procedure TForm1.FormCreate(Sender: TObject);
Var ini: TIniFile;
Begin
  ini:=TiniFile.Create(GetCurrentDir+'\Pfad.ini');
    Try
      Label1.Caption:=ini.ReadString('Section', 'FIFA Pfad', 'ERROR');
    Finally
      ini.Free;
  end;
end;

freeriders 6. Mär 2008 20:43

Re: Ini auslesen und in Label schreiben
 
Fussball-Robby du bist mein Held des Abends :wink:
Es klappt=)
Ja und warum nicht direkt über GetCurrentDir weiß ich im Moment auch nicht...
Werde das dann noch abändern.
Danke für den Tip.
Manchmal macht mans sich eben komplizierter als es eigentlich is.

Thread kann geschlossen werden

Fussball-Robby 6. Mär 2008 20:46

Re: Ini auslesen und in Label schreiben
 
Zitat:

Zitat von freeriders
Fussball-Robby du bist mein Held des Abends :wink:

Danke :-D , wobei du das
Zitat:

Zitat von Die Muhkuh
Aua, was soll das über die Label.Caption?

Mach es doch direkt:

Delphi-Quellcode:
Procedure TForm1.FormCreate(Sender: TObject);
Var ini: TIniFile;
Begin
  ini:=TiniFile.Create(GetCurrentDir+'\Pfad.ini');
    Try
      Label1.Caption:=ini.ReadString('Section', 'FIFA Pfad', 'ERROR');
    Finally
      ini.Free;
  end;
end;

auf jeden Fall beachten solltest. Du musst die Oberfläche des Programms getrennt von Einstellungen etc verwalten

Mfg

freeriders 6. Mär 2008 20:56

Re: [gelöst]Ini auslesen und in Label schreiben
 
Ich hoffe es ist kein Problem, wenn ich das jetzt hier reinschreibe.
Denn es gibt einen Fehler, wenn ich alles in GetCurrentDir ändere, was vorher vom Label2 bezogen wurde.
Hier am besten mal der Code, damit ihr alles nachvollziehen könnt.

Delphi-Quellcode:
begin

 if RadioButton1.Checked then
   begin
   ShellFileOperation(GetCurrentDir+'\ORG\fifa.db', Label1.Caption+'\data\cmn', FO_COPY);
   ShellFileOperation(GetCurrentDir+'\ORG\ger.db', Label1.Caption+'\data\cmn\fe', FO_COPY);
   end;
Wenn nicht werde ich alles wieder in ein Label schreiben, denn so ging es ja, auch wenn es schlecht programmiert ist...

Achso er sagt mir:

"Datei kann nicht kopiert werden. Die Quelldatei oder vom Quelldatenträger kann nicht gelesen werden."


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