Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Überprüfen, ob Dateiname eine bestimmte Endung hat (https://www.delphipraxis.net/8098-ueberpruefen-ob-dateiname-eine-bestimmte-endung-hat.html)

magoo2002de 28. Aug 2003 14:52


Überprüfen, ob Dateiname eine bestimmte Endung hat
 
Hallo,
ich habe da mal wieder ein Problem. Ich habe zwar hier im Forum schon gesucht, aber leider nich das richtige gefunden.

Und zwar habe ich einer INI-Datei mehrere Dateiendung definiert, die durch ein Komma getrennt sind.
In der INI-Datei sieht das wie folgt aus:

[Section]
FileExt=exe,zip,pdf

Nun lasse ich bei Form.Create die Dateiendungen in einen String (String: TheFileExt) laden. Nun möchte ich eine Prozedur erstellen, die überprüft, ob der Dateiname (den ich der Prozedur übergebe) eine der sich im String befindenen Dateiendungen besitzt.
Es sollte so sein, dass ich die Prozedur (ich hab sie jetzt einfach mal 'IsFileExt' genannt) später wie folgt aufrufen kann:

Delphi-Quellcode:
if IsFileExt('C:\Autorun.bat') = True then
 begin
  //hier passiert was
 end
 else begin
  //hier passiert was anderes
 end;

Vielen Dank schon mal für eure Hilfe!

CalganX 28. Aug 2003 14:55

Re: Überprüfen, ob Dateiname eine bestimmte Endung hat
 
Schau dir in der Hilfe mal die Funktion ExtractFileExt an!

Chris

magoo2002de 28. Aug 2003 15:01

Re: Überprüfen, ob Dateiname eine bestimmte Endung hat
 
Ja schon, aber wie bekomme ich es hin, dass der String mit den Dateiendungen zerteilt wird. Hast du da vielleicht ein Beispiel?

Luckie 28. Aug 2003 15:03

Re: Überprüfen, ob Dateiname eine bestimmte Endung hat
 
Was verstehst du unter "zerteilt"?

moin339 28. Aug 2003 15:03

Re: Überprüfen, ob Dateiname eine bestimmte Endung hat
 
So müsste es eigentlich funktionieren (habe ich nicht getestet)

Delphi-Quellcode:
function IsFileExt(s: string): boolean;
var
  ext: string;
begin
  result := false;
  ext := ExtractFileExt(s)
 
  if FileExt = ext then
  begin
    result := true;
  end
  else
  begin
    if (pos(ext + ',', FileExt) = 1) or (pos(ext + ',', FileExt) = length(FileExt)-length(ext)) then
    begin
      result := true;
    end
    else
    begin
      if pos(',' + ext + ',', FileExt) > 0 then
      begin
        result := true;
      end;
    end;
  end;
end;

edit: einen klienen fehler verbessert

Illuminator-23-5 28. Aug 2003 15:03

Re: Überprüfen, ob Dateiname eine bestimmte Endung hat
 
Delphi-Quellcode:
while pos(',', endungen) > 0 do begin
  Endungsliste.Hinzufügen(copy(endungen, 1, pos(',')-1));
  delete(endungen, 1, pos(','));
end;

magoo2002de 28. Aug 2003 15:07

Re: Überprüfen, ob Dateiname eine bestimmte Endung hat
 
@Luckie:
Ich habe einen String mit folgendem Inhalt:
exe,pdf,zip
Diese möchte ich eine StringList bekommen.

@moin339 & Illuminator-23-5:
Vielen Dank. Ich werde gleich mal ausprobieren.

Luckie 28. Aug 2003 15:15

Re: Überprüfen, ob Dateiname eine bestimmte Endung hat
 
CommaText oder ExplodeExplode.


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