Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Windows Wildcards negieren (https://www.delphipraxis.net/44650-windows-wildcards-negieren.html)

uschi 22. Apr 2005 09:38


Windows Wildcards negieren
 
Guten Morgen zusammen.

Ich stehe vor einen kniffligen Problem und ich hoffe ihr könnt mir weiterhelfen.

Es geht um die Wildcards von Windows.

Wenn ich jetzt eine JPEG Datei suche gebe ich ein *.jpg oder *.jpeg das ist klaro.

Jetzt aber zu meiner Frage...

Ist es möglich nach allem anderen zu suchen außer *.jpg z.B. "<>*.jpg" oder so ähnlich?



danke schonmal!

alcaeus 22. Apr 2005 09:41

Re: Windows Wildcards nigieren
 
Du musst mit Delphi-Referenz durchsuchenFindFirst und Delphi-Referenz durchsuchenFindNext alle Dateien (*.*) suchen, und anschliessend mit ExtractFileExt ueberpruefen, ob sie jpg-Dateien sind. Falls ja, ueberspringst du sie einfach.
Eine andere Moeglichkeit kenne ich nicht...

Greetz
alcaeus

uschi 22. Apr 2005 09:42

Re: Windows Wildcards nigieren
 
Danke für die schnelle Antwort, allerdings wollte ich genau das vermeiden

sakura 22. Apr 2005 09:49

Re: Windows Wildcards nigieren
 
Zitat:

Zitat von uschi
Danke für die schnelle Antwort, allerdings wollte ich genau das vermeiden

Da kommst Du aber nicht drumrum. Hier mal ein einfacher Ansatz (direkt getippt, nicht getestet):
Delphi-Quellcode:
uses
  Masks;

...

var
  SR: TSearchRec;
  Mask: TMask;
begin
  Mask := TMask.Create('*.jpg');
  try
    if FindFirst('C:\Temp\*.*', faAnyFile, SR) = 0 then
    try
      repeat
        if (SR.Attr and (faDirectory or faSymLink)) <> 0 then
          Continue;
        if not Mask.Matches(SR.Name) then
        begin
          // die Datei ist okay, mach was
        end;
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
  finally
    Mask.Free;
  end;
end;
...:cat:...

MathiasSimmack 22. Apr 2005 10:39

Re: Windows Wildcards nigieren
 
Habe auch noch was zu dem Thema: klick. :shock: Aus dem Jahr 2003.


Edit: Es ist zwar löblich, dass du politisch korrekt sein willst, aber es heißt trotzdem negieren. :lol:


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