Я тоже не увидел объявления CheckList ... И что это вообще ? Rx чтоль не компилится ?Сообщение от qwas
Я тоже не увидел объявления CheckList ... И что это вообще ? Rx чтоль не компилится ?Сообщение от qwas
Последний раз редактировалось JiF; 26.06.2006 в 16:25.
Да, Rx не комилиться.Сообщение от JiF
Чё делать та?
хм, попробуй все *.dcu файлы из папки с сорцами Rx (папка Units) скопировать в *\Borland\Delphi7\Lib\ (:
Телевизор — это просто маленькое прозрачное окошко в трубе духовного мусоропровода. © В. Пелевин.
Всё равно неканает?
Прога для [вырезано цензурой]
Последний раз редактировалось qwas; 07.12.2006 в 02:17.
Как организовать поиск файлов по расширению?
Сообщение от qwasртфм: по функциям есть хелп, читай (:Код:procedure TForm1.Button1Click(Sender: TObject); var F: TSearchRec; begin FindFirst('c:\music\*.mp3', faAnyFile, F); if F.name <> '' then begin Memo1.Lines.Add(F.name); while FindNext(F) = 0 do Memo1.Lines.Add(F.name); end; FindClose(F); end;
Телевизор — это просто маленькое прозрачное окошко в трубе духовного мусоропровода. © В. Пелевин.
А как организовать поиск по всему С: или D: и т.д?
Аналогично вышеуказанному примеру, только перед поиском файла рекурсивно переходить по каталогам... Хосспади, это ж примитив ! Какой из тебя кодер, если не читаешь мануалы и не шаришь в простых алгоритмах ?Сообщение от qwas
Последний раз редактировалось JiF; 05.10.2006 в 19:55.
Мануалы я читаю только у меня их нет, винт полетел со всей драгоценной инфой, а заново всё с инета качать трафика нет!
Последний раз редактировалось qwas; 06.10.2006 в 13:45.
В сети есть всякие Делфи Ворлды, и Делфи Рашн КНоуледж Бэйз... ищи в п2п...Сообщение от qwas
drkb23 скачал. Ещё во чё нашёл!
Быстая штука!Код:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ListBox1: TListBox; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} Procedure FindRecursive(Const path: String; Const mask: String); Var fullpath: String; Function Recurse( Var path: String; Const mask: String ): Boolean; Var SRec: TSearchRec; retval: Integer; oldlen: Integer; Begin Recurse := True; oldlen := Length(path); retval := FindFirst(path+mask, faAnyFile, SRec); While retval = 0 Do Begin Application.ProcessMessages; If (SRec.Attr and (faDirectory or faVolumeID)) = 0 Then Form1.ListBox1.items.Add(path+srec.name); //добавление очередного найденного файла в ListBox Form1.Caption:='Found '+IntToStr(Form1.ListBox1.items.Count)+' files...'; retval := FindNext(SRec); End; FindClose(SRec); If not Result Then Exit; retval := FindFirst( path+'*.*', faDirectory, SRec); While retval = 0 Do Begin If (SRec.Attr and faDirectory) <> 0 Then If (SRec.Name <> '.') and (SRec.Name <> '..') Then Begin path := path + SRec.Name + '\'; If not Recurse( path, mask ) Then Begin Result := False; Break; End; Delete( path, oldlen+1, 255 ); End; retval := FindNext( SRec ); End; FindClose( SRec ); End; // Recurse //__________________________________________________________________________ Begin If path = '' Then GetDir(0, fullpath) Else fullpath := path; If fullpath[Length(fullpath)] <> '\' Then fullpath := fullpath + '\'; If mask = '' Then Recurse(fullpath, '*.*') Else Recurse(fullpath, mask); End; procedure TForm1.Button1Click(Sender: TObject); begin FindRecursive('c:\','*.*'); end; end.
попробуй js или vbs ) узнаешь что такое "быстрая штука"
Да, для таких задач пас кал - это таки ужос. Скриптовые языки, в частности - шелл, тут рулять.
Всего-то делов написать find путь 'маска для файла'. В ruby, например, нисколько не сложнее - Dir.glob("путьоткудаискать/**/маскафайла"). Впрочем, пас кал почти для всего ужас. Как и си без плюсов. Но если в си без плюсов это еще кое-как оправдывается высокой скоростью, малым обьемом скомпилированного кода да и вообще близостью к основам, то...
написана полная чушь, ИМХО! любой язык ужас, если руки кривые...на Pascal, Delphi написать сканирование диска раз плюнуть..и скорость впечатляющая! P.S. я был очень доволен результатомСообщение от aSj
На любом языке можно, да. Точно также как гланды, в принципе, можно удалить через ж%пу. Ты сравни сколько кода там по сравнению с ruby-евской одной строчкой.
Причем, эта самая строчка очень органично вписываеться в ruby api. И делает то же самое. А если не видно разницы, зачем писать больше?
а как же удовольствие от проделанной работы?Сообщение от aSj
(подозрительно) от какой-такой работы - от удаления гланд через ж%пу??? ;))))
Нда, месье знает толк в извращениях ;)
Настоящее удовольствие от работы бывает в том случае если она сделана быстро, правильно и красиво.
то, что я использовал выражение "...от проделанной работы" вовсе не означает, что я имею ввиду работу в общепринятом смысле..как то "ходить на работу". в программировании "для души" чем больше приходится делать самому - тем интереснее! по крайней мере для меня всегда так было. приятно осознавать, что сам реализовываешь всю схему .... и я вовсе не злоупотребляю этим! просто в задаче сканирования диска гораздо интереснее самому реализовать этот рекурсивынй алгоритм поиска, чем использовать "одну строку"
Ты не прав (c) ;)
Это разве что в самом-самом начале, когда программер очень молод и очень зелен и слова 'рекурсия' вызывают в нем блаженную дрожь прикосновения к чуду программирования. ;) Но в конце концов программер вырастает и понимает, что первая заповедь программиста - не изобрети велосипеда ;)
И понимает, что даже для only for fun&profit работы написание рекурсии для поиска файла - это артефакт реализации. Который только мешает перейти к действительно интересным вещам.
Впрочем, если уж так хочеться реализовать всю схему - надо начинать с собственной оси ;) А еще лучше - с собственного биоса. Не, вообще процессора ;)
ps: впрочем. для особо талантливых ruby не исключает возможности сделать все ручками ;) А вот пас кал не дает возможности избавиться от этой пакости. Так что - ruby better ;)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)