Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Как переписать текстовые файлы в разные папки! (http://forum.oszone.net/showthread.php?t=29374)

Guest 15-10-2004 16:53 203600

У меня в разных папках находятся текстовые файлы, я открываю обсщую папку(через процедуру Обзора папок)
программа заходит в первую папку наход файлы и переписывает их, потом выходит из папки и заходит в следующую, но при открытии файла Error (Project * raised exception class EInOutError whit message 'File not Found'.
Process stopped. Use Step or Run to continue.) я пытался передовать полный путь к файлам(ExpandFileName) но результат тот же. Подскпжите как исправить?

fossil 15-10-2004 17:10 203601

Guest
Может ты не очистил какую-нибудь переменную? Выложи кусок кода...

IM13 15-10-2004 18:31 203602

Эта процедура берет имя файла(namefile) извлекае пулный путь
и открывает через полный путь этот файл и делает с ним нужные мне действия потом удаляет его и переименовывает созданный фаил в страрый

Код:

procedure TForm1.opfile(namefile:string);
var
fr,fw:textfile;
sr,sw,FullFileName,DirNameFile:string;
begin
 *FullFileName:= ExpandFileName(namefile);
 *assignfile(fr,FullFileName);
 *reset(fr);
 *DirNameFile:=ExtractFileDir(FullFileName);
 *assignfile(fw,DirNameFile+'\'+'demo.htm');
 *rewrite(fw);
 *sw:=extractfilename(namefile);
 *filename(sw,keyword);

 *if flag=0 then begin FirstFile:=namefile; flag:=1; end;

 *while (not eof(fr)) do
 * *begin
 * * *readln(fr,sr);
 * * *if (sr=edit2.Text) or (sr=edit3.Text) or (sr=edit4.Text)
 * * *then
 * * * *writeln(fw,sr+keyword)
 * * *else
 * * *writeln(fw,sr);
 * *end;
 * *memo1.Lines.Add(namefile);
 * *closefile(fr);
 * *closefile(fw);
 * *deletefile(FullFileName);
 * *renamefile('demo.htm',namefile);
 * *deletefile('demo.htm');
 * *end;

[s]Исправлено: Prisoner, 3:56 17-10-2004[/s]

Prisoner 17-10-2004 04:17 203603

ExpandFileName не проверяет свой результат на существование. Судя по вашему вопросу первый раз все нормально т.к. директория которую использует ExpandFileName установлена таким образом, что все получается нормально, но потом директория не меняется т.е. ExpandFileName использует старые данные. Потому-то у вас при открытии файла и возникает ошибка. Попробуйте выводить куда-либо результат ExpandFileName и посмотрите на каком именно возникает ошибка, возможно это подскажет вам пути решения. Кроме того, запретить вывод ошибок I/O можно директивой компилятора {$I-}, а включить опять - уже с плюсиком. Удачи.

invisible man 20-10-2004 14:50 203604

Процедура для поиска по каталогам на Delphi
 
Товарищи нужна на делфе процедура, которая будет просматривать все директории(субдириктории) с возможностью нахождения нужных файлов и редактировать их, я написал подобную вроде все исчет, но при редактировании файлов *выводит ошибку ввода вывода.
Помогите плиз!

hasherfrog 21-10-2004 09:32 203605

Процедура для поиска по каталогам на Delphi
 
Мало информации. Приведите кусок кода, отвечающего за редактирования, в котором происходит ошибка. Хотя бы.

IM13 21-10-2004 11:42 203606

Процедура для поиска по каталогам на Delphi
 
Я уже показывал свою процедуру мне давали не совсем коректные ответы, может потому что я задавал не совсем коректные вопросы не знаю, но дело в что я уже смотрел в инете процедуру поиска по всем коталогам и файлам в этих каталогах у меня происходит примерно все так же, но моя процедура в первой конечной папке все делает нормально, а в остальных ошибка ввода вывода - причем раньше была с открываемым файлом, а после некоторых монепуляций с создаваемым файлом(фаил создается не там где надо) хотя открытие и создание происходит вроде бы по полному пути и через одну переменную->
begin
*setcurrentdir(path+'\');
*e:=findfirst(path+'\'+'*.*',16,t);
*while e=0 do (дальше открываю папку и перебераю все файлы)
(при *нахождении нужного файла запускается другая процедура)
end;
* *e:=findnext(t);
...
assignfile(fr,FullName);(где FullName и dirname это полные пути взятые из переменной прошлой процедуры path)
*reset(fr);
*assignfile(fw,dirname+'\'+'demo.*');
*rewrite(fw);
...(сдесь я провожу с открытым файлом некот. действия и записываю в demo.* внизу я удаляю старый и переименовываю demo.* в старый)
* *closefile(fr);
* *closefile(fw);
* *deletefile(FullName);
* *renamefile('demo.*',nameoldfile);
* *deletefile('demo.*');
* *end;
в первом каталоге все нормально в остальных либо вообще ничего, либо создаётся не понятно где, через F7 все просматривал, все перменные, вроде все нормально

[s]Исправлено: invisible man, 11:47 21-10-2004[/s]

Prisoner 22-10-2004 02:57 203607

Процедура для поиска по каталогам на Delphi
 
Ругайте меня и все такое, но приклеиваю к первоначальной теме.


Время: 13:09.

Время: 13:09.
© OSzone.net 2001-