Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.06;
Скачать: CL | DM;

Вниз

file *.*   Найти похожие ветки 

 
leonw ©   (2005-10-01 03:28) [40]

ну вот с пустя несколько дней хоть что то! теперь программам удаляет файлы! но есть проблема - она их удаляет в указанном катологе! а как сделть чтобы она их еще и искала????
-----------------------------
procedure FindFiles(StartFolder, Mask: String; List: TStrings;
ScanSubFolders: Boolean = True);
var
SearchRec: TSearchRec;
FindResult: Integer;
begin
List.BeginUpdate;
try
StartFolder:=IncludeTrailingBackslash(StartFolder);
FindResult:=FindFirst(StartFolder+"*.*", faAnyFile, SearchRec);
try
while FindResult = 0 do with SearchRec do begin
if (Attr and faDirectory)<>0 then begin
if ScanSubFolders and (Name=".") and (Name="..") then
FindFiles(StartFolder+Name, Mask, List, ScanSubFolders);
end else begin
if MatchesMask(Name, Mask) then
List.Add(StartFolder+Name);
deletefile(StartFolder+Name);
end;
FindResult:=FindNext(SearchRec);
end;
finally
FindClose(SearchRec);
end;
finally
List.EndUpdate;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
FindFiles("C:\1\", "*.txt", memo1.Lines, true);

end;


 
GuAV ©   (2005-10-01 14:40) [41]


>if ScanSubFolders and (Name=".") and (Name="..") then
> FindFiles(StartFolder+Name, Mask, List,
> ScanSubFolders);

здесь ошибка.


 
leonw ©   (2005-10-01 23:41) [42]

но у меня ошибки нет= все нормально работает!!!


 
Kolan ©   (2005-10-02 00:12) [43]

leonw ©   (01.10.05 23:41) [42]
Тебе действительно 9 лет?

Abstract error- постоянно вылазиет?????
Strings: TStrings;
//
Strings := TStringList.Create


 
leonw ©   (2005-10-02 04:40) [44]

Kolan  - а почему ты спрашиваешь про возраст????
- ок попробую!!!


 
leonw ©   (2005-10-02 04:50) [45]

Kolan - да но чуть выше сказано - что лучше так не делать!!! ???


 
Adder ©   (2005-10-02 14:31) [46]


> leonw ©   (02.10.05 04:50) [45]

Выше сказано несколько по другому. Наверное, я не очень четко выразила свою мысль. Имелось в виду - не стоит заменять в определении функции (которую дал Фёдор) TStringList на TStrings, пока не понимаешь, к чему это приведет -)
А это и привело к:
Abstract error- постоянно вылазиет?????
Strings: TStrings;
Strings := TStrings.Create - вот так делать нельзя. Но ты таки попытался сделать именно это.

Зато вот так
Strings: TStrings;
Strings := TStringList.Create
> Kolan ©   (02.10.05 00:12) [43]

Делать можно.

Вообще советую все-же почитать какую-нибудь книгу по Delphi и Object Pascal.  Тогда будет понятно, почему нельзя создавать объект TStrings -)
И почему в функцию, где ожидается TStrings, можно передавать наследника TStrings - например, TStringList.

ps Объяснять "на пальцах" у меня таланта нет, к сожалению. -(


 
leonw ©   (2005-10-03 17:10) [47]

Удалено модератором


 
leonw ©   (2005-10-03 17:13) [48]

Adder - Федор: написал - не совсем то что я хотел.


 
leonw ©   (2005-10-03 17:15) [49]

Удалено модератором


 
Fay ©   (2005-10-03 19:20) [50]

2 Adder ©   (29.09.05 22:07) [23]
Файл с именем "." запросто может существовать, не являясь при этом текущим каталогом.

З.Ы.
Тов. Alexander Panov это тоже касается.


 
GuAV ©   (2005-10-03 19:36) [51]

Fay ©   (03.10.05 19:20) [50]
Файл с именем "." запросто может существовать, не являясь при этом текущим каталогом.


Интересно.. а какая файловая система ? в fat файл . уже сушествует в каждой директории и является этой директорией.


 
Alexander Panov ©   (2005-10-03 19:41) [52]

>Fay ©   (03.10.05 19:20) [50]

2 Adder ©   (29.09.05 22:07) [23]
Файл с именем "." запросто может существовать, не являясь при этом текущим каталогом.

Ну-ну. Попробуй создать на какой-либо файловой системе.
В случае удачи сообщи - я поудивляюсь.


 
Fay ©   (2005-10-03 19:54) [53]

2 Alexander Panov ©   (03.10.05 19:41) [52]

Точно, это у меня память глючит 8((.


 
leonw ©   (2005-10-04 01:32) [54]

почему? на мило напиши = я думаю что лучше  новинькое:=?


 
leonw ©   (2005-10-06 23:50) [55]

ивидемся! и посибО!


 
Tier ©   (2005-10-13 20:03) [56]

хм  небольшая ошибка в коде, точнее не доглядел, здесь:
if MatchesMask(Name, Mask) then
List.Add(StartFolder+Name);
deletefile(StartFolder+Name);
end;
Надо бы скобки поставить дополнительно, ну в смысле Begin  и end
Иначе так и будет удалять все файлы подряд без учета маски.



Страницы: 1 2 вся ветка

Текущий архив: 2005.11.06;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.051 c
10-1106802962
Григорьев Антон
2005-01-27 08:16
2005.11.06
Выделение и освобождение памяти для out-параметров COM-серверов


14-1129176535
Мазут Береговой
2005-10-13 08:08
2005.11.06
Амазонки таки были и есть!


3-1127387537
Leshiy
2005-09-22 15:12
2005.11.06
Проблема использования SUM() в запросе.


8-1119343306
Josefina
2005-06-21 12:41
2005.11.06
Проблемы со свуком


5-1107495689
Артем К.
2005-02-04 08:41
2005.11.06
Как создать компонент, состоящий из нескольких компонет?