Показать полную графическую версию : AssignFile
khvalera
24-05-2003, 19:20
Задача токая нужно открыть с помощью Delphi текстовый неопределенный по маске файл (v00*.d*) и переименовать в другой.
И еще добавить содержимое одного файла к другому один к одному.
khvalera
А в чем проблема?
OpenFile(1) - Readln - OpenFile(2) - Writeln
(в коде конечно не так, но это основная идея)
или какие-то заморочки с проверкой, а тот ли это файл, и т.д.?
noname00.pas
26-05-2003, 11:18
Dmitry Sher
А по-моему были какие-то более умные функции типа Rename. :-)
Boss Linuxoid
26-05-2003, 19:15
khvalera
Как же ты откроешь файл, не зная его имени?
Добавлено:
khvalera
Как же ты откроешь файл, не зная его имени?
khvalera
26-05-2003, 20:30
Извиняюсь сначала не открыть а переименовать!
Левая прога делает файлы типа v01.01.03.*, и естественно дата будет разной
расширение она тулит почему-то тоже разное. Задача моей программы переименовать неизвестные файлы в определенные имена и собрать их содержимое в один файл.
shurikan
27-05-2003, 01:00
khvalera
Тогда используй FindFirst и FindNext. В Дельфёвом хелпе они хорошо описаны и пример есть. Найдёшь все такие файлы и сольёшь в один. :biggrin:
noname00.pas
А по-моему были какие-то более умные функции типа Rename. :-)
Да, но эта функция переименует файл, а надо содержимое добавить в конец другого файла (как я понял ):gigi:
khvalera
30-05-2003, 11:18
Вроде бы заработало!
Теперь может, кто посоветует, как лучше переместить содержимое из одного файла в другой.
И как в Delphi делается задержка на определенное время, аналог Pascal Delay.
khvalera
Теперь может, кто посоветует, как лучше переместить содержимое из одного файла в другой.
Посмотри мой первый пост
khvalera
02-06-2003, 15:17
Сразу благодарю всех за помощь, самому пришлось бы искать долго и нудно.
Может кто подскажет еще?
Если файл находится в каталоге, все работает ОК, а если оно появляется после
запуска программы последняя просто невидит его и работает до посинения.
DirAval:='c:\Aval\Rip\';
DirWClient:='c:\Agent\Rip\';
DirAgent:='c:\Agent\Rip\';
Data:=Edit1.Text;
FindFirst(DirWClient+'v*.*',Attrs,Files);
OldName:=Files.Name;
If Files.Name <>'v'+Data+'_1.zzz' then
repeat
FindNext(Files); {на ... он сдался}
until OldName > '';
NewName:='v'+Data+'_1.zzz';
RenameFile(DirWClient+OldName,DirWClient+NewName);
Что не кото незнает как в Delphi делается задержка???
Что не кото незнает как в Delphi делается задержка???
не помню точно, но кажется sleep(...);
shurikan
05-06-2003, 03:22
khvalera
DirAval:='c:\Aval\Rip\'; * *
DirWClient:='c:\Agent\Rip\';
DirAgent:='c:\Agent\Rip\';
Data:=Edit1.Text;
FindFirst(DirWClient+'v*.*',Attrs,Files);
OldName:=Files.Name;
If Files.Name <>'v'+Data+'_1.zzz' then
repeat
*FindNext(Files); * {на ... он сдался}
until *OldName > '';
NewName:='v'+Data+'_1.zzz';
RenameFile(DirWClient+OldName,DirWClient+NewName);
Обрати внимание на OldName, которое инициализируется один раз и больше не изменяется. Так что until ни разу не сработает, а цикл будет бесконечным. И вообще, таким способом все файлы не переименуешь. А тебе, как я понял, нужно именно это. Или файл такой всего один может быть? Если один, то FindFirst тебе его и найдёт, а если их несколько с подобной "маской", то каждый последующий находит FindNext. Files - это запись, которая инициализируется в FindFirst, а потом FindNext использует поля записи для поиска следующего и, если находит, то в Files.Name лежит имя уже другого файла. Почитай хелп и пример, там всё расписано...:gigi:
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC