![]() |
Findfirst/Findnext-Suchmaske
Hallo Leute,
Ich habe mich schon vor relativ langer Zeit hier im Forum mal angemeldet, der Grund wieso ich bis jetzt nie geschrieben habe, ist die fehlende Zeit. Mit der Lehre und Fitnesstraining in der Freizeit etc. bleibt leider nicht mehr viel übrig. Besonders wenn man dann auch noch auf einem anderen Board aktiv sein muss und gerne mal ab und an was programmiert, wird's halt immer weniger. Auch wenn ich eigentlich viel lieber ein bisschen mehr hier wäre und mich in die Community integrieren möchte, geht's momentan recht schlecht. Naja, trotz meiner mangelnden Aufmerksamkeit, die ich dem Board hier widme, hoffe ich trotzdem, dass mir jemand bei meiner Frage helfen kann. Ich schreibe momentan ein Programm, welches gesuchte Dateien (anhand von einer benutzerdefinierten Suchmaske) auflistet. Mein Problem ist nun: Bei Findfirst kann man ja als Parameter zum Path (z.B. C:\mp3) noch die Dateisuchmaske (z.B. *.mp3) angeben. Somit werden ja nur die mp3-files aufgelistet. Wenn ich nun aber mehrere Extensions in die Suche aufnehmen will (also z.B. *.mp3/*.mp4), wie kann ich das in einer Suche verwirklichen? Die einzige Idee die mir kam wäre den Filter *.* zu verwenden und einfach alle Extensions mit denen, die in der Suchmaske enhalten sind, zu vergleichen und die passenden rauszupicken. Ich frage mich nun, ob's da nicht eine einfachere/schönere Lösung gäbe... Hoffe ihr könnt mir helfen, danke schonmal im Voraus. |
Re: Findfirst/Findnext-Suchmaske
ich wüsste auch nur die von dir genannte lösung und habe es bisher auch immer so gemacht.
|
Re: Findfirst/Findnext-Suchmaske
Hmm, schade.
Naja, dann mach ich's eben so, wie ich vorhin sagte. Danke trotzdem. |
Re: Findfirst/Findnext-Suchmaske
Ich glaube Find... unterstützt mehrere Suchstrings mit ; getrennt. Allerdings noch nie verwendet und nicht sicher ob es wirklich so ist. Zu dem weiß ich nicht, wie es sich mit der Suche in Verzeichnissen verhält. Also ob man bei jeder Suchmaske auch das Verzeichnis angeben muss oder einmal das Verzeichnis reicht und dann immer nur die Suchmasken.
|
Re: Findfirst/Findnext-Suchmaske
hi,
warum machst du nicht zuerst einen suchlauf mit *.mp3 und dann noch einen mit *.mp4 der benutzer müsste dann das gewünschte ergebnis bekommen, und du müsstes im programm immer nur die suchfunktion aufrufen?!!! |
Re: Findfirst/Findnext-Suchmaske
Die Suchmaske "*.mp?" dürfte deinem Ziel am nächsten kommen. Aber mehrere voneinander getrennte suchmasken gibts nicht. Es gibt allerdings keine Performanceeinbußen, wenn man die einzelnen Suchmasken hintereinander durchläuft.
|
Re: Findfirst/Findnext-Suchmaske
Keine Performanceeinbussen wenn man mehrere Suchen durchführt, als nur eine? Hmm, kommt mir zwar fast ein bisschen spanisch vor... aber werde ich mal testen. Wenn das wirklich gleich schnell geht, dann erspart mir das eine menge Arbeit. Danke für die Antworten!
|
Re: Findfirst/Findnext-Suchmaske
Zitat:
SCRaT |
Re: Findfirst/Findnext-Suchmaske
Hallo,
man kann es zu Fuß machen - oder man verwendet eine Komponente:
Delphi-Quellcode:
Grüße vom marabu
function GetFiles(const dir, masks: string; s: TStrings = nil): Integer;
begin with TFileListBox.CreateParented(HWND(-3)) do try Mask := masks; Directory := dir; FileType := [ftArchive]; Result := Items.Count; if Assigned(s) then s.Assign(Items); finally Free; end; end; { var s: TStrings; n: Cardinal; begin s := TStringList.Create; n := GetFiles('c:\audio', '*.mp3;*.mp4', s); ShowMessage(IntToStr(n) + sLineBreak + s.Text); s.Free; end; } |
Re: Findfirst/Findnext-Suchmaske
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:08 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 by Thomas Breitkreuz