Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Gibt es einen einfacheren Weg zur INI als diesen? (https://www.delphipraxis.net/20484-gibt-es-einen-einfacheren-weg-zur-ini-als-diesen.html)

DRPEnc 18. Apr 2004 21:16


Gibt es einen einfacheren Weg zur INI als diesen?
 
Delphi-Quellcode:
//INIDATEI
function suchdatei(pfad,datei:string):string;
var
  sr:TSearchRec;
begin
  result:='';
  if findfirst(pfad+'*.*',$27,sr)=0 then
    repeat
      if ansilowercase(sr.name)=ansilowercase(datei) then
      begin
        result:=pfad;
        break;
      end;
    until findnext(sr)<>0;
  FindClose(Sr);
end;

function finden(start,datei:string):string;
var
  sr:TSearchRec;
  hlp:string;
begin
  if ansilastchar(start)<>'\' then
    start:=start+'\';
  result:=suchdatei(start,datei);
  if result <> '' then exit;
  if findfirst(start+'*.*',faAnyfile,sr)=0 then
  begin
    repeat
      if (sr.Attr and faDirectory > 0)and(sr.name[1]<>'.') then
      begin
        hlp:=start+sr.name;
        result:=finden(hlp,datei);
        if result <> '' then break;
      end;
    until findnext(sr)<>0;
  FindClose(Sr);
  end;
end;

//INIDATEI
Delphi-Quellcode:
if not FileExists('DRPEncME.ini')
then begin
  Startverzeichnis:='C:';
  Dateiname:='DRPEncME.exe';
  screen.cursor:=crhourglass;
  Ergebnis:=finden(Startverzeichnis,Dateiname);
  if Ergebnis <> '' then
  begin
  listINI.Items.Clear;
  ListINI.Items.add(Ergebnis);
  listINI.Items.SaveToFile('DRPEncME.ini');
  ListLOAD.Items.LoadFromFile('DRPEncME.ini');
  INI.Text:=ListLOAD.Items[0];
  end
  else
  Startverzeichnis:='D:';
  Dateiname:='DRPEncME.exe';
  screen.cursor:=crhourglass;
  Ergebnis:=finden(Startverzeichnis,Dateiname);
  if Ergebnis <> '' then
  begin
  listINI.Items.Clear;
  ListINI.Items.add(Ergebnis);
  listINI.Items.SaveToFile('DRPEncME.ini') ;
  ListLOAD.Items.LoadFromFile('DRPEncME.ini');
  INI.Text:=ListLOAD.Items[0];
  end
  else
  Startverzeichnis:='E:';
  Dateiname:='DRPEncME.exe';
  screen.cursor:=crhourglass;
  Ergebnis:=finden(Startverzeichnis,Dateiname);
  if Ergebnis <> '' then
  begin
  listINI.Items.Clear;
  ListINI.Items.add(Ergebnis);
  listINI.Items.SaveToFile('DRPEncME.ini');
  ListLOAD.Items.LoadFromFile('DRPEncME.ini');
  INI.Text:=ListLOAD.Items[0];
  end
  else
  Startverzeichnis:='F:';
  Dateiname:='DRPEncME.exe';
  screen.cursor:=crhourglass;
  Ergebnis:=finden(Startverzeichnis,Dateiname);
  if Ergebnis <> '' then
  begin
  listINI.Items.Clear;
  ListINI.Items.add(Ergebnis);
  listINI.Items.SaveToFile('DRPEncME.ini');
    ListLOAD.Items.LoadFromFile('DRPEncME.ini');
  INI.Text:=ListLOAD.Items[0];
  end
  else
  Startverzeichnis:='G:';
  Dateiname:='DRPEncME.exe';
  screen.cursor:=crhourglass;
  Ergebnis:=finden(Startverzeichnis,Dateiname);
  if Ergebnis <> '' then
  begin
  listINI.Items.Clear;
  ListINI.Items.add(Ergebnis);
  listINI.Items.SaveToFile('DRPEncME.ini');
    ListLOAD.Items.LoadFromFile('DRPEncME.ini');
  INI.Text:=ListLOAD.Items[0];
  end
  else
  Startverzeichnis:='H:';
  Dateiname:='DRPEncME.exe';
  screen.cursor:=crhourglass;
  Ergebnis:=finden(Startverzeichnis,Dateiname);
  if Ergebnis <> '' then
  begin
  listINI.Items.Clear;
  ListINI.Items.add(Ergebnis);
  listINI.Items.SaveToFile('DRPEncME.ini');
  ListLOAD.Items.LoadFromFile('DRPEncME.ini');
  INI.Text:=ListLOAD.Items[0];
  end
  else
    showmessage('DRPEncME.exe not found');
  screen.cursor:=crdefault;
  end;
  begin
  makecmd.Click;
  end;
  end;
Im endeffekt brauch ich die Information fom Ordner in dem sich die EXE befindet. Müsste doch einfacher gehen oder?

Jens Schumann 18. Apr 2004 21:22

Re: Gibt es einen einfacheren Weg zur INI als diesen?
 
Hallo,
klar - geht auch viel einfacher.
Jede Anwendung bekommt bei Aufruf den Pfad und Dateinamen als Paramter mit.
Code:
PfadUndDateiname:=ParamStr(0)

Markus K. 18. Apr 2004 21:23

Re: Gibt es einen einfacheren Weg zur INI als diesen?
 
Hallo DRPEnc,
mit ExtractFilePath(Application.ExeName) bekommst du den Pfad der Exe. Vielleicht hilft es dir.

Tschüß Markus

Nicolai1234 18. Apr 2004 21:24

Re: Gibt es einen einfacheren Weg zur INI als diesen?
 
Und nur der Pfad ist:
Delphi-Quellcode:
Pfad := ExtractFilePath(ParamStr(0))

DRPEnc 18. Apr 2004 21:50

Re: Gibt es einen einfacheren Weg zur INI als diesen?
 
danke, wie einbinden?

habs danke...


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