![]() |
String durchsuchen
Ich habe mir folgende Funktion gebastelt, um zu überprüfen, ob eine Datei eine DLL-Datei ist:
Code:
Klappt auch super, jedoch wenn die Datei Test.DLL heißt, geht es schon wieder nicht :(
procedure TForm1.FormCreate(Sender: TObject);
begin if(pos('.dll','C:\Test.dll') > 0) then Label1.Caption:='DLL-Datei' else Label1.Caption:='Keine DLL-Datei' end; Gibt es vielleicht ein kurze Möglichkeit, dass die Groß- und Kleinbuchstaben egal sind, denn ich möchte nicht alle möglichkeiten durch gehen, also dLL, dlL, DlL usw. :love: Danke UC |
Re: String durchsuchen
so:
Delphi-Quellcode:
if (Pos('.DLL',AnsiUpperCase('C:\Test.dll')) > 0) then
|
Re: String durchsuchen
Ok, hat sich erledigt, habe selbst eine Lösung gefunden:
Code:
procedure TForm1.FormCreate(Sender: TObject);
begin if(pos('.dll',lowercase('C:\Test.Dll')) > 0) then Label1.Caption:='DLL-Datei' else Label1.Caption:='Keine DLL-Datei' end; |
Re: String durchsuchen
Moin UC,
Zitat:
Was machst Du, wenn die Datei .dll im Dateinamen beinhaltet, z.b. Test.dll.exe, oder die Endung länger ist test.dll2? Schau Dir mal die LastDelimiter an, und nehm dann alles ab dem letzen Punkt im String für den Vergleich. |
Re: String durchsuchen
Also wenn, dann wenigstens so:
Delphi-Quellcode:
If AnsiUpperCase(ExtractFileExt('C:\Test.Dll')) = '.DLL' Then
Label1.Caption := 'DLL-Datei' Else Label1.Caption := 'Keine DLL-Datei'; |
Re: String durchsuchen
Wer sagt, dass eine DLL auch die Endung DLL haben muss? Bei Assarbad
![]() |
Re: String durchsuchen
Ich habe mir mal das Programm von Assarbad angeguckt, konnte nix finden, was mir weiter helfen könnte.
Eigentlich auch logisch? Denn eine Dll ist doch auch nur eine gültiges PE32 Format, oder irre ich mich da jetzt :roll: |
Re: String durchsuchen
Also ich würde länger als 10 Minuten brauchen, um zu verstehen, was er da macht und vor allem wie.
|
Re: String durchsuchen
Ich habe mich jetzt mal ein bisschen rangesetzt und eine schöne kleine Funktion geschrieben, die überprüft ob die eingegeben Datei eine DLL-Datei ist, egal wie die geschrieben ist:
Delphi-Quellcode:
Auch wenn der der Dateiname .exe.dll oder dll.exe heißt, kommt man zum richtigen Ergebnis.
function isDll(Dateiname: string): Boolean;
var i : Integer; s : String; begin if(pos('.',Dateiname) > 0) then begin i := length(Dateiname); while(Dateiname[i] <> '.') do dec(i); s := lowercase(copy(Dateiname,i,99)); if length(s)=4 then begin if(pos('.dll',s) > 0) then Result := true else Result := false end else Result := false end else Result := false end; Ist sicher ein bisschen umständlich programmiert, aber es läuft :mrgreen: |
Re: String durchsuchen
Moin UC,
zum einen ist Himitsus Variante doch auch gut, zum anderen kann ich mich des Eindruckes nicht erwehren, dass Du Dir LastDelimiter nicht wirklich angeschaut hast ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz