Имя пользователя:
Пароль:
 

Название темы: AssignFile
Показать сообщение отдельно

Аватара для shurikan

Старожил


Сообщения: 240
Благодарности: 1

Профиль | Отправить PM | Цитировать


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 лежит имя уже другого файла. Почитай хелп и пример, там всё расписано...

-------
UNIX, UNAS и др. Myself I'll like 'em


Отправлено: 03:22, 05-06-2003 | #12

Название темы: AssignFile