Ich muss alle Dateien löschen, deren Namen mit "a" beginnen, dann drei beliebige Buchstaben und ".txt" -Erweiterung wie "a123.txt". Hier ist der Code:FindFirst und Fragezeichen
var
sFileMask: string;
tsrMessage: TSearchRec;
begin
sFileMask := 'c:/a???.txt';
if SysUtils.FindFirst(sFileMask, 0, tsrMessage) = 0 then
begin
repeat
ShowMessage(tsrMessage.Name);
until FindNext(tsrMessage) <> 0;
SysUtils.FindClose(tsrMessage);
end;
end;
Ich habe immer gedacht, dass die Fragezeichen bedeuten, ein und nur ein Charakter, aber zu meiner Überraschung festgestellt, dass dieser Code gibt „a.txt“, „a1.txt“ und „a123. txt "Dateinamen. Gibt es eine einfache Möglichkeit, den Code so zu ändern, dass nur Dateien wie "a123.txt" gesucht werden?
Ja, ich wollte diese Methode auch verwenden, aber das von mir verwendete Beispiel wurde vereinfacht. Eigentlich muss ich Dateien nach Maske wie im Format% 03d.txt usw. löschen. In diesem Fall wird der Code für solch eine einfache Aufgabe zu kompliziert, so dass ich entschied, dass ich etwas falsch mache. – Molochnik
@Molotechnik: Siehe EDIT-Sektion ... – HeartWare