Текущий архив: 2007.09.16;
Скачать: CL | DM;
ВнизЧто я делаю не так? Найти похожие ветки
← →
Bad_B (2007-08-25 22:53) [0]Задача самая простая: поиск в папке файла размер которого меньше (к примеру) 1,5 кб и дописать в него инфу из мемо,
если же такого файла не найдено, то создать и записать.
Вот что сделал, не могу понять почему работает не верно (создает кучу пустых файлов).var
i,h:integer;
f:Tsearchrec;
put:string;
hhh:textfile;
begin
randomize;
//задаем путь где искать и что искать
if FindFirst(extractfiledir(expandfilename("ads.s3m"))+"\*.htm",faAnyFile,f)=0 then
repeat
//имя и размер файла записываем в стринг грид
form1.sg1.Cells[0,form1.sg1.RowCount-1]:=f.Name;
form1.sg1.Cells[1,form1.sg1.RowCount-1]:=inttostr(f.size);
//если размер меньше 1,5 кб, то дописываем в него инфу из мемо
if f.size<=1500 then
begin
assignfile(hhh,extractfiledir(expandfilename("ads.s3m"))+"\"+f.Name);
//что б пользователь видел в какой файл дописывается
label2.Caption:=extractfiledir(expandfilename("ads.s3m"))+"\"+f.Name;
Append(hhh);
writeln(hhh,s1,memo1.text,s2);
closefile(hhh);
break;//после записи прерываем поиск
end
//если не найдено такого файла, то создаем пустой файл
else
begin
h:=random(231);
filecreate(extractfiledir(expandfilename("ads.s3m"))+"\"+inttostr(h)+".htm");
end;
until FindNext(f)<>0;
FindClose(f);
end;
← →
Anatoly Podgoretsky © (2007-08-25 22:58) [1]> Bad_B (25.08.2007 22:53:00) [0]
ShowMessage(extractfiledir(expandfilename("ads.s3m")));
← →
Bad_B (2007-08-25 23:18) [2]
> Anatoly Podgoretsky © (25.08.07 22:58) [1]
ShowMessage(extractfiledir(expandfilename("ads.s3m"))) показывает "D:\web\raz\dot", а мне нужно "D:\web\raz\dot\*.htm"
поэтому я ж и написал в коде
extractfiledir(expandfilename("ads.s3m"))+"\*.htm"
или я что не понял?
← →
Anatoly Podgoretsky © (2007-08-25 23:24) [3]> Bad_B (25.08.2007 23:18:02) [2]
То есть ты это и хотел и тебя не смущает, что этот путь может быть разным?
Зависит от погоды на марсе.
← →
Anatoly Podgoretsky © (2007-08-25 23:28) [4]Инвариант extractfiledir(expandfilename("ads.s3m")) можно и нужно вынести за пределы цикла
← →
Германн © (2007-08-26 01:08) [5]
> Bad_B (25.08.07 22:53)
...
> //задаем путь где искать и что искать
> if FindFirst(extractfiledir(expandfilename("ads.s3m"))+"\*.
> htm",faAnyFile,f)=0 then
>
"Что искать" тут задано. А вот "Где искать" - тут полный бред.
← →
Bad_B (2007-08-26 01:18) [6]
> Германн © (26.08.07 01:08) [5]
так подскажите как сделать не бред?
ЗЫ. на примитиве завис...
← →
Германн © (2007-08-26 01:57) [7]
> Bad_B (26.08.07 01:18) [6]
>
>
> > Германн © (26.08.07 01:08) [5]
>
> так подскажите как сделать не бред?
>
Подскажу, если объяснишь "где ты хочешь искать"?
← →
Bad_B (2007-08-26 02:31) [8]
> Германн © (26.08.07 01:57) [7]
сейчас попробую еще разок подробно описать что и как (может и сам соображу)
В общем по такому пути "D:\web\raz\dot\" находятся различные htm файлы и файлы других форматов. Мне надо найти все htm, удовлетворяющие условию(д.б. меньше 1,5 кб). Я это делаю так
(чуток переписал код от первонального):
procedure tform1.proverka;
var
h,k,uuu:integer;
f:Tsearchrec;
begin
uuu:=0;
if FindFirst("*.htm",faAnyFile,f)=0 then
repeat
//if f.size<=1500 then
begin
form1.sg1.Cells[0,form1.sg1.RowCount-1]:=ExpandFileName(f.name);
form1.sg1.Cells[1,form1.sg1.RowCount-1]:=inttostr(f.size);
memo1.Lines.Add(ExpandFileName(f.name));
sg1.RowCount:=sg1.RowCount+1;
end;
until FindNext(f)<>0;
FindClose(f);
Затем я определяю какие файлы нужны (файлы менее 1,5 кб) через такую вот одновременную проверку:
//проверил размер, если меньше значит удовлетворяет и в соседней ячейке грида пишу тру, иначе ложь
for k:=1 to sg1.RowCount-1 do
if strtoint(sg1.Cells[1,k])<1500 then
sg1.Cells[2,k]:="True"
else
sg1.Cells[2,k]:="False";
//считаю сколько набралось тру
for k:=1 to sg1.RowCount-1 do
if sg1.Cells[2,k]="True" then
inc(uuu);
//если нет ни одного тру, то создаю файл
if uuu=0 then
begin
h:=random(231);
filecreate(extractfiledir(expandfilename(f.Name))+"\"+inttostr(h)+".htm");
end;end;
Записываю в файл удовлетворяющий условию так:procedure tform1.Zapis;
var
k:integer;
hhh:textfile;
begin
proverka;
for k:=1 to sg1.RowCount-1 do
if (strtoint(sg1.Cells[1,k])<=1500) then
begin
assignfile(hhh,sg1.Cells[0,k]);
Append(hhh);
writeln(hhh,s1,memo1.text,s2);
closefile(hhh);
end;
end;
По нажатию на кнопку вызываю zapis.
Все вроде как даже работает, и записывается в файл, и после его "наполнения" создается, да только на этом все и заканчивается, после создания файла уже 103 ошибка (не вожможно открыть файл) выбивает...
ЗЫ. знаю что проблема простейшая, но в упор не вижу(((
← →
Германн © (2007-08-26 02:41) [9]
> Bad_B (26.08.07 02:31) [8]
>
>
> > Германн © (26.08.07 01:57) [7]
>
> сейчас попробую еще разок подробно описать что и как (может
> и сам соображу)
>
> В общем по такому пути "D:\web\raz\dot\" находятся различные
> htm файлы
Вот по такому пути и ищи!
> Я это делаю так
> (чуток переписал код от первонального):
>
> procedure tform1.proverka;
> var
> h,k,uuu:integer;
> f:Tsearchrec;
> begin
> uuu:=0;
> if FindFirst("*.htm",faAnyFile,f)=0 then
А тут ты ищещь по пути заданному в CurrentDir :(
> filecreate(extractfiledir(expandfilename(f.Name))+"\"+inttostr(h)+".
> htm");
А тут ты опять уходишь незнамо куда.
Короче, прочитай хэлп по "expandfilename" и "CurrentDir". Внимательно. Будут вопросы, милости просим.
← →
Bad_B (2007-08-26 04:43) [10]
> Германн © (26.08.07 02:41) [9]
имхо, подоплека была в другом... "не смешивай функции работающие с файловыми переменными (write,assignfile) c функциями, работающими с дескрипторами (filecreate)..." видимо отсюда error#103
← →
Loginov Dmitry © (2007-08-26 09:31) [11]filecreate после создания файла держит его открытым. Для закрытия нужно использовать CloseHandle.
> имхо, подоплека была в другом... "не смешивай функции работающие
> с файловыми переменными (write,assignfile) c функциями,
> работающими с дескрипторами (filecreate)..." видимо отсюда
> error#103
скорее ошибка он неполного понимания того, что делаешь.
← →
Anatoly Podgoretsky © (2007-08-26 12:50) [12]
const
RootPath = "D:\web\raz\dot\"
И используешь везде, а не дурдом под названием expand, работу которого ты не понимаешь.
Можешь и явно указывать в каждом месте, но это не удобно, особенно если его надо сменить при разработке.
← →
Bad_B (2007-08-26 16:30) [13]Сорри за навязчивсть, но надо таки разобраться до конца, что б не задавать таких вопросов.
> Loginov Dmitry © (26.08.07 09:31) [11]h:=random(23);
put:="D:\web\raz\dot\"+inttostr(h)+".htm";
filecreate(put);
fileclose(filecreate(put));
все равно не закрывает, или я не так делаю?
> Anatoly Podgoretsky © (26.08.07 12:50) [12]
Непременно воспользуюсь советом, ноextractfiledir(expandfilename("ads.s3m"))+"\*.htm"
тоже дает верный результат. где не верно-то?
ЗЫ. не бейте ногами, как могу пытаюсь разобраться
← →
Anatoly Podgoretsky © (2007-08-26 17:34) [14]Верный в виде кучи пустых файлов
← →
Bad_B (2007-08-26 17:59) [15]Я так понимаю expandfilename("ads.s3m")) дает полный путь к файлу, т.е.
"D:\web\raz\dot\ads.s3m", а extractfiledir(expandfilename("ads.s3m")) обрезает путь до такого вида "D:\web\raz\dot".
Разве это влияет на создание пустых файлов? Даже если это так, то во втором предложенном варианте, выдает ошибку 103. Т.е. я так понимаю после создания файла filecreate, assignfile не может получить доспут к файлу, т.к. он не закрыт еще. Создаю и закрываю к указал вышеh:=random(23);
put:="D:\web\raz\dot\"+inttostr(h)+".htm";
filecreate(put);
fileclose(filecreate(put));
, но ошибка все-равно есть. Что ж не так?
← →
Anatoly Podgoretsky © (2007-08-26 18:16) [16]Поводу пустых файлов - если тебя это не интересовало, то зачем задавал вопрос?
Смешно на два открытия одно закрытие.
← →
sniknik © (2007-08-26 18:18) [17]> Я так понимаю expandfilename("ads.s3m")) дает полный путь к файлу
а ты не понимай, а просто почитай справку. впрочем повторяюсь.
> Что ж не так?
возможно программирование это "не твое", и в этом все дело. (отсюда и игнорирование подсказок, и глупая уверенность в том "что проблема простейшая" при полном ее не понимании (с чего бы? если не можеш значит для тебя это не просто))
← →
Bad_B (2007-08-26 19:00) [18]
> sniknik © (26.08.07 18:18) [17]
> а ты не понимай, а просто почитай справку
из справки (русик) для Д5 "ExpandFileName Возвращает полный путь и имя файла FileName." Так?
> возможно программирование это "не твое", и в этом все дело.
зацепил этим)) +1...
Рабочий вариант(о каких то улучшениях даже боюсь заикаться, забьете:-))procedure TForm1.Button1Click(Sender: TObject);
var
FileHandle,uuu:integer;
put:string;
hhh:textfile;
f:Tsearchrec;
begin
randomize;
uuu:=0;
if FindFirst("D:\web\razl\dot\*.htm",faAnyFile,f)=0 then
repeat
if f.size<=1500 then
begin
form1.sg1.Cells[0,form1.sg1.RowCount-1]:=ExpandFileName(f.name);
form1.sg1.Cells[1,form1.sg1.RowCount-1]:=inttostr(f.size);
memo1.Lines.Add(ExpandFileName(f.name));
sg1.RowCount:=sg1.RowCount+1;
inc(uuu);
end;
until FindNext(f)<>0;
FindClose(f);
sg1.RowCount:=sg1.RowCount-1;
if (uuu<>0) and (FileExists(sg1.Cells[0,1])) then
begin
assignfile(hhh,sg1.Cells[0,1]);
{$I-}
append(hhh);
{$I+}
if IOresult=0 then
writeln(hhh,memo1.text);
closefile(hhh);
end
else
begin
showmessage("all");
sg1.RowCount:=sg1.RowCount+1;
FileHandle:= filecreate(extractfiledir(ExpandFileName(f.Name))+"\"+inttostr(random(23))+".htm");
showmessage(inttostr(FileHandle));
FileClose( FileHandle);
end;
end;
← →
sniknik © (2007-08-26 19:09) [19]> из справки (русик) для Д5 "ExpandFileName Возвращает полный путь и имя файла FileName." Так?
какой путь? про текущий тебе уже "намекали", если именно он и нужен то можно получить его проще, одной функцией. но с чего ты взял что это будет "D:\web\raz\dot" (нужный тебе)?
> Рабочий вариант(о каких то улучшениях даже боюсь заикаться, забьете:-))
и что он делает? т.е. вернее что ты от него хочеш? и о каких улучшениях можно заикаться если неведомо зачем это нужно. код он не самоочевиден.
← →
Bad_B (2007-08-26 19:24) [20]
> sniknik © (26.08.07 19:09) [19]
> про текущий тебе уже "намекали",
Это?const
RootPath = "D:\web\raz\dot\"
да, исправлю.
> но с чего ты взял что это будет "D:\web\raz\dot" (нужный
> тебе)?
а каким он еще может быть? если я однозначно определил где искатьFindFirst("D:\web\razl\dot\*.htm",faAnyFile,f)
а потом также однозначно где нужно его создатьextractfiledir(ExpandFileName(f.Name))
. Или это неправильно?
> и что он делает?
Делает он то что я хотел: ищет по пути "D:\web\raz\dot\" все файлы *.htm, затем если файл меньше 1,5кб, то записывает в него инфу из мемо, если таких файлов нет, то создает пустой файл, который будет "заполнен".
← →
Anatoly Podgoretsky © (2007-08-26 19:38) [21]> Bad_B (26.08.2007 19:00:18) [18]
Зачем в одной процедуре файлы Паскаля и низкоуровневые файлы.
← →
Bad_B (2007-08-26 19:59) [22]
> Anatoly Podgoretsky © (26.08.07 19:38) [21]
Так показалось проще реализовать.
Или так нельзя (не желательно) делать? Если не сложно пару слов об этом.
← →
sniknik © (2007-08-26 20:05) [23]> Или это неправильно?
да откуда я знаю правильно это или нет? ты переоцениваешь мои телепатические таланты...
если пут заданный в FindFirst и есть текущий, и если именно это тебе и нужно то тогда правильно, если пути различны то нет. с чего ты вообще решил что параметр из FindFirst както влияет на ExpandFileName? разве в хелпе это написано?
> Делает он то что я хотел: ищет по пути "D:\web\raz\dot\"
все. неправильно. вообще возможна правильная работа при совпадении условий но не более.
и это не полностью раскрытое условие "что он делает", в коде присутствуют какието странные "артефакты" (randomize, form1.sg1.Cells, sg1.RowCount ...) которые для озвученного "Делает он то ... " как собаке пятая нога, а значит либо нужно их выкинуть либо доозвучить условие "что он делает".
← →
Bad_B (2007-08-26 20:31) [24]
> sniknik © (26.08.07 20:05) [23]
> параметр из FindFirst както влияет на ExpandFileName
получается что влияет. Ведь взависимости от того какой файл (имя) найдет FindFirst в тот файл и записываются данные.
> все. неправильно.
нет, конечно надо первоначально учитывать а существует ли подобный путь на машине, иначе будут ошибки. Такой путь (т.е. условие о которым вы говорите) существует всегда.
> либо доозвучить
procedure TForm1.Button1Click(Sender: TObject);
var
FileHandle,uuu:integer;
put:string;
hhh:textfile;
f:Tsearchrec;
begin
//для генерации всегда случайных чисел используем, хотя целесообразно перенести в FormCreate, но пока этого не делаю,
randomize;
uuu:=0;
//ищем файлы в папке "D:\web\razl\dot\" все файлы *.htm
if FindFirst("D:\web\razl\dot\*.htm",faAnyFile,f)=0 then
repeat
//если размер файла менее или равен 1,5кб, то
if f.size<=1500 then
begin
//записываем в stringgrid, у меня он переименован в sg1, полный путь к файлу и в соседнюю колонку размер этого файла
form1.sg1.Cells[0,form1.sg1.RowCount-1]:=ExpandFileName(f.name);
form1.sg1.Cells[1,form1.sg1.RowCount-1]:=inttostr(f.size);
memo1.Lines.Add(ExpandFileName(f.name));
//увеличиваем количество строк в sg1 на одну, если удовлетворяющих файлов не один
sg1.RowCount:=sg1.RowCount+1;
//считаем количество удовлеторяющих файлов
inc(uuu);
end;
until FindNext(f)<>0;
// освобождаем память, выделенную процедурой FindFirst
FindClose(f);
//уменьшаем количество строк, что при отображении в sg1, последняя строка не была пустой
sg1.RowCount:=sg1.RowCount-1;
//если количество удовлетворяющих файлов не равно нулю, т.е. сработало inc(uuu), и файл существует файл, путь к которому записан в первой строке sg1, то осуществляем запись в этот файл
if (uuu<>0) and (FileExists(sg1.Cells[0,1])) then
begin
assignfile(hhh,sg1.Cells[0,1]);
{$I-}
append(hhh);
{$I+}
if IOresult=0 then
writeln(hhh,memo1.text);
closefile(hhh);
end
else
begin
//если нет файлов удовлетворяющих условию (>= 1500), то создаем пустой файл
showmessage("all");
sg1.RowCount:=sg1.RowCount+1;
FileHandle:= filecreate(extractfiledir(ExpandFileName(f.Name))+"\"+inttostr(random(23))+".htm");
showmessage(inttostr(FileHandle));
FileClose( FileHandle);
end;
end;
Так хоть немного понятнее стало, что я хочу сделать, что сделал и как? И все ли правильно сделал?
← →
sniknik © (2007-08-26 20:51) [25]> получается что влияет.
получается ты не слушаешь ответов, зачем спрашиваешь тогда?
> Ведь взависимости от того какой файл (имя) найдет FindFirst в тот файл и записываются данные.
условие совпало, но так будет не всегда.
> Такой путь (т.е. условие о которым вы говорите) существует всегда.
не перевирай, я говорил не об условии существования пути, а об условии совпадения его с текущим.
> Так хоть немного понятнее стало, что я хочу сделать, что сделал и как?
а то. понятно, что ты надергал откудато (вероятно из ответов тебе) куски разного по стилям кода даже не особо понимая что он делает. и до сих пор отказываясь понимать.
> И все ли правильно сделал?
шутишь? при указанных явных ошибках, др. "мелочах" (1,5кб это не 1500б например), и таком неряшливом коде? надо переписывать. однозначно.
← →
Bad_B (2007-08-26 21:13) [26]//оффтопный пост
> условие совпало, но так будет не всегда.
почему не всегда? если 100% есть уверенность что такой путь существует и совпадает с текущим. Такая уверенность, потому что заранее создается на машине.
> ты надергал откудато (вероятно из ответов тебе) куски разного
> по стилям
обычно ставят имхо когда так говорят, или я не правильно прокомментировал свой код? да, не отрицаю, что пользовался советами, но ведь не строчки кода мне запостили (ну, не считая const RootPath "D:\web\raz\dot\"), писал самостоятельно... хотя, думайте что хотите, это ваше право...
Если не затруднит (понимаю, если лень или просто нет времени) покажите как надо?
← →
@!!ex © (2007-08-26 21:38) [27]оффтоп
> обычно ставят имхо когда так говорят, или я не правильно
> прокомментировал свой код? да, не отрицаю, что пользовался
> советами, но ведь не строчки кода мне запостили (ну, не
> считая const RootPath "D:\web\raz\dot\"), писал самостоятельно...
> хотя, думайте что хотите, это ваше право...
Вообще то ИМХо в его комментах присутствует.
Лично для меня слова "видимо" и ИМХО, практически синонимы, а для вас?
← →
tmp (2007-08-26 22:31) [28]
> Bad_B (26.08.07 20:31) [24]
Ужасный код.
Вот стандартный пример поиска файлов. Разберись хорошо с этим примером и, если всё правильно поймёшь, то сможешь правильно реализовать свою идею.
Процедура находит файлы определённые маской - Mask в заданном каталоге - Directory и, возможно, в подкаталогах(в зависимости от WithSubDirs) и добавляет их в List.
procedure GetFilesInDirectory(Directory: String; const Mask: String;
List: TStrings;
WithSubDirs, ClearList: Boolean);
procedure ScanDir(const Directory: String);
var
SR: TSearchRec;
begin
if FindFirst(Directory + Mask, faAnyFile and not faDirectory, SR) = 0 then try
repeat
List.Add(Directory + SR.Name)
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
if WithSubDirs then begin
if FindFirst(Directory + "*.*", faAnyFile, SR) = 0 then try
repeat
if ((SR.attr and faDirectory) = faDirectory) and
(SR.Name <> ".") and (SR.Name <> "..") then
ScanDir(Directory + SR.Name + "\");
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
end;
end;
begin
List.BeginUpdate;
try
if ClearList then
List.Clear;
if Directory = "" then Exit;
if Directory[Length(Directory)] <> "\" then
Directory := Directory + "\";
ScanDir(Directory);
finally
List.EndUpdate;
end;
end;
← →
sniknik © (2007-08-26 23:25) [29]> Такая уверенность, потому что заранее создается на машине.
и юзеры тоже создаются? или им мозги промываются под "стандарт", и запускать программу они будут только так а не иначе, и ярлычков делать не будут/сделают как вам надо.
не понимаю, зачем спрашивал тогда? вам с самого начала твердят о бредовости кода
(а если именно и нужен, текущий, то почему явной функцией его не прочитать? зачем усложнение с запутыванием кода?)
> Если не затруднит (понимаю, если лень или просто нет времени) покажите как надо?
э нет... хоть мне сегодня и нечем заняться, но...
мы же обсуждаем
> Что я делаю не так?
а не "как сделать?/напишите за меня"
и потом для тебя же это просто
> ЗЫ. знаю что проблема простейшая, но в упор не вижу(((
типа как два пальца... так вперед!
так что батенька ты пишешь, а мы говорим что не так. и никак иначе.
← →
Bad_B (2007-08-26 23:38) [30]
> tmp (26.08.07 22:31) [28]
спс, сейчас посмотрю
> sniknik © (26.08.07 23:25) [29]
ну, так я ж и не прошу-то код))... до попрошайничал - а терь и с этими "двумя пальцами", как видно, проблема...
я написал код - Вы сами сказали - "ужас! все переписать"...
я за два дня три раза переписываю... но постоянно где-то что-то не то...
чем код-то ужасен? не надо свой код писать, просто прокомментируйте мой, что правильно, что нет.
ЗЫ. ...надо в этом основательно разобраться, раз и навсегда!...
← →
Anatoly Podgoretsky © (2007-08-26 23:41) [31]> Bad_B (26.08.2007 23:38:30) [30]
То что переписываешь видно, но также видно что к советам не прислушиваешься, только частично.
← →
tmp (2007-08-26 23:46) [32]
> Bad_B (26.08.07 23:38) [30]
> чем код-то ужасен? не надо свой код писать, просто прокомментируйте
> мой, что правильно, что нет.
А что комментировать? Если "ужас! все переписать"...
Вобще алгоритм не хороший. Это я так думаю - может по твоему и нормально.
← →
Bad_B (2007-08-27 02:53) [33]Опираясь на tmp (26.08.07 22:31) [28] вот что получил:
procedure GetFilesInDirectory(Directory: String; const Mask: String;
List: TStrings;
WithSubDirs, ClearList: Boolean;text:string);
procedure ScanDir(const Directory: String);
var
SR: TSearchRec;
FileHandle:integer;
//это для создания нового файла
procedure Checker(NewFile:string);
begin
if sr.Size>= 1500 then
begin
FileHandle:=filecreate(Directory+inttostr(random(3))+".htm");
FileClose(FileHandle);
ScanDir(Directory);
end;
end;
//для добавления текста
procedure EdText(fileName:string);
var
hhh:textfile;
begin
filename:=directory+sr.name;
assignfile(hhh,filename);
append(hhh);
writeln(hhh,text);
closefile(hhh);
exit;
end;
begin
if FindFirst(Directory + Mask, faAnyFile and not faDirectory, SR) = 0 then
try
repeat
// добавил условие if SR.Size<=1500 then
begin
List.Add(Directory + SR.Name);
edtext(Directory + SR.Name);
exit;
end;
until FindNext(SR) <> 0;
finally
begin
FindClose(SR);
checker(Directory);
end;
end;
//проверка в подкаталогах в принципе не нужна, но пока убирать не буду
if WithSubDirs then begin
if FindFirst(Directory + "*.*", faAnyFile, SR) = 0 then try
repeat
if ((SR.attr and faDirectory) = faDirectory) and
(SR.Name <> ".") and (SR.Name <> "..") and (SR.Size<=1500) then
begin
ScanDir(Directory + SR.Name + "\");
end;
until FindNext(SR) <> 0;
finally
FindClose(SR);
end;
end;
end;
begin
List.BeginUpdate;
try
if ClearList then
List.Clear;
if Directory = "" then Exit;
if Directory[Length(Directory)] <> "\" then
Directory := Directory + "\";
ScanDir(Directory);
finally
List.EndUpdate;
end;
end;
вызываю такGetFilesInDirectory(edit1.Text,"*.htm",memo1.Lines,false,true,memo2.Text);
в edit1.Text пишу путь к файлам, потом задаю маску ("*.htm"), в мемо1 выводим полный путь к файлу, проверка в подкаталогах не нужна пока, поэтому false, list очищаем каждый(имхо, полезно для логов поставить false), и мемо2.техт - текст который будет записываться в файл. Целесообразно будет сделать уникальное имя для создаваемого файла, в противном случае (при рандом(3), например) он перезаписывается.
А сейчас что скажете? Что еще исправить, подправить?
Страницы: 1 вся ветка
Текущий архив: 2007.09.16;
Скачать: CL | DM;
Память: 0.57 MB
Время: 0.049 c