Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.55 MB
Время: 0.037 c
6-1121587327
Gamer
2005-07-17 12:02
2005.11.06
Много скриншотов


1-1129296155
Sysanin
2005-10-14 17:22
2005.11.06
Проигрывание звука из DLL


3-1127472404
Top
2005-09-23 14:46
2005.11.06
Offline работа


4-1125891553
NightLord
2005-09-05 07:39
2005.11.06
Windows


3-1127375236
Jioniro
2005-09-22 11:47
2005.11.06
Поиск по контексту с помощью SQL запроса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский