Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Dateiendung ohne Punkt (https://www.delphipraxis.net/178744-dateiendung-ohne-punkt.html)

Jansteger 24. Jan 2014 17:10

Dateiendung ohne Punkt
 
Hallo,

Ich möchte aus einer Datei nur die Erweiterung ohne Punkt filtern.
Code:
ExtractFileExt('Filename.txt')
Dabei bleibt der Punkt aber stehen (.txt) . Wie kann ich die Dateiendung ohne Punkt anzeigen lassen?

MfG

Bernhard Geyer 24. Jan 2014 17:12

AW: Dateiendung ohne Punkt
 
Mach halt dein eigenes MyExtractFileExt die genau das macht.
Also suche letzten Punkt und nimm den String danach.

Sir Rufo 24. Jan 2014 17:29

AW: Dateiendung ohne Punkt
 
Delphi-Quellcode:
function ExtractFileExtensionWithoutDot( const Filenam : string ) : string;
begin
  Result := Copy( ExtractFileExtension( Filename ), 2 );
end;

Panthrax 24. Jan 2014 17:32

AW: Dateiendung ohne Punkt
 
Delphi-Quellcode:
function DelphiXE5_GetExtension(const Filename: String): String;
begin
  Result := TPath.GetExtension(Filename).Substring(1);
end;

function Delphi7_GetExtension(const Filename: String): String;
begin
  Result := ExtractFileExt(Filename);
  Result := Copy(Result, 2, Length(Result) - 1);
end;
Delphi-Quellcode:
begin
  WriteLn(GetExtension('Archiv.tar.gz'));
end.
Code:
gz

lbccaleb 24. Jan 2014 17:42

AW: Dateiendung ohne Punkt
 
Delphi-Quellcode:
function ExtractFileExtW(pszText: WideString): WideString;
var
  i: integer;
begin;
  Result := pszText;
  if(pos('.',szFilename) > 0) then
    for i := Length(pszText) downto 1 do
      if pszText[i] = '.' then begin;
        Result := Copy(pszText, i + 1, Length(pszText));
        Break;
      end;
end;

Sir Rufo 24. Jan 2014 17:44

AW: Dateiendung ohne Punkt
 
Zitat:

Zitat von lbccaleb (Beitrag 1245234)
Delphi-Quellcode:
function ExtractFileExtW(pszText: string): WideString;
var
  i: integer;
begin
  Result := pszText;
  for i := Length(pszText) downto 1 do
    if pszText[i] = '.' then begin;
        Result := Copy(pszText, i + 1, Length(pszText));
        break;
    end;
end;

Nein, diese Funktion arbeitet nicht zuverlässig
Code:
C:\Mein.Verzeichnis\DateiOhneEndung

lbccaleb 24. Jan 2014 17:49

AW: Dateiendung ohne Punkt
 
Ja soll ja nur ein Bsp. sein, kann man mit einem ÖffnungsFilter ja ganz leicht korrigieren und kann Sie ja selber noch umbauen..
Außerdem ging es ja um Dateien MIT Endung^^

Bernhard Geyer 24. Jan 2014 17:58

AW: Dateiendung ohne Punkt
 
Zitat:

Zitat von lbccaleb (Beitrag 1245236)
Außerdem ging es ja um Dateien MIT Endung^^

Eine Funktion sollte auch korrekt funktionieren wenn fehlerhafte oder nicht erwartete Eingaben kommen.
In diesem Fall wäre ein Leerstring korrekt

lbccaleb 24. Jan 2014 18:15

AW: Dateiendung ohne Punkt
 
OkOk^^

Er kann auch einfach die aus der SysUtils Unit umbauen:

Delphi-Quellcode:
uses
  SysUtils;
function ExtractFileExtDotless(const FileName: string): string;
var
  I: Integer;
begin
  I := LastDelimiter('.' + PathDelim + DriveDelim, FileName);
  if (I > 0) and (FileName[I] = '.') then
    Result := Copy(FileName, I+1, MaxInt) else
    Result := '';
end;

nuclearping 24. Jan 2014 18:49

AW: Dateiendung ohne Punkt
 
Delphi-Quellcode:
var Ext: String;
begin
  Ext := ExtractFileExt('Filename.txt');
  if (Pos('.', Ext) = 1) then
    Delete(Ext, 1, 1);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:34 Uhr.
Seite 1 von 2  1 2      

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