|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Как переписать текстовые файлы в разные папки! |
|
Как переписать текстовые файлы в разные папки!
|
Guest |
У меня в разных папках находятся текстовые файлы, я открываю обсщую папку(через процедуру Обзора папок)
программа заходит в первую папку наход файлы и переписывает их, потом выходит из папки и заходит в следующую, но при открытии файла Error (Project * raised exception class EInOutError whit message 'File not Found'. Process stopped. Use Step or Run to continue.) я пытался передовать полный путь к файлам(ExpandFileName) но результат тот же. Подскпжите как исправить? |
|
Отправлено: 16:53, 15-10-2004 |
Ветеран Сообщения: 637
|
Профиль | Сайт | Отправить PM | Цитировать Guest
Может ты не очистил какую-нибудь переменную? Выложи кусок кода... |
------- Отправлено: 17:10, 15-10-2004 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Эта процедура берет имя файла(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; |
Отправлено: 18:31, 15-10-2004 | #3 |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать ExpandFileName не проверяет свой результат на существование. Судя по вашему вопросу первый раз все нормально т.к. директория которую использует ExpandFileName установлена таким образом, что все получается нормально, но потом директория не меняется т.е. ExpandFileName использует старые данные. Потому-то у вас при открытии файла и возникает ошибка. Попробуйте выводить куда-либо результат ExpandFileName и посмотрите на каком именно возникает ошибка, возможно это подскажет вам пути решения. Кроме того, запретить вывод ошибок I/O можно директивой компилятора {$I-}, а включить опять - уже с плюсиком. Удачи.
|
------- Отправлено: 04:17, 17-10-2004 | #4 |
invisible man
Сообщения: n/a |
Товарищи нужна на делфе процедура, которая будет просматривать все директории(субдириктории) с возможностью нахождения нужных файлов и редактировать их, я написал подобную вроде все исчет, но при редактировании файлов *выводит ошибку ввода вывода.
Помогите плиз! |
|
Отправлено: 14:50, 20-10-2004 | #5 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Мало информации. Приведите кусок кода, отвечающего за редактирования, в котором происходит ошибка. Хотя бы.
|
Отправлено: 09:32, 21-10-2004 | #6 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Я уже показывал свою процедуру мне давали не совсем коректные ответы, может потому что я задавал не совсем коректные вопросы не знаю, но дело в что я уже смотрел в инете процедуру поиска по всем коталогам и файлам в этих каталогах у меня происходит примерно все так же, но моя процедура в первой конечной папке все делает нормально, а в остальных ошибка ввода вывода - причем раньше была с открываемым файлом, а после некоторых монепуляций с создаваемым файлом(фаил создается не там где надо) хотя открытие и создание происходит вроде бы по полному пути и через одну переменную->
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] |
Отправлено: 11:42, 21-10-2004 | #7 |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать Ругайте меня и все такое, но приклеиваю к первоначальной теме.
|
------- Отправлено: 02:57, 22-10-2004 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Не открываются текстовые файлы и изображения и к ним создались файлы с расшир. drweb | leda | Лечение систем от вредоносных программ | 1 | 03-10-2009 01:22 | |
Учетные записи в разные папки | lleWxaM | Microsoft Exchange Server | 3 | 25-07-2008 08:43 | |
Скрипт качает бекап с фтп. Как застравить качать в разные папки? | mooseyaka | Программирование и базы данных | 4 | 28-05-2007 13:41 | |
[решено] Как удалить файлы с папки...? | Cobra_1_Stas | Автоматическая установка Windows 2000/XP/2003 | 40 | 10-10-2006 10:11 | |
Delphi - Текстовые файлы в Delphi | Borislav | Программирование и базы данных | 2 | 11-01-2005 13:18 |
|