|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Поочерёдное копирование файлов с условием через Copyfile
Подскажите пожалуйста
в чём ошибка в коде. так как он прост копирует тупо всё и условие не смотрит Код:
if FindFirst(Edit1.text+'\*.*', faAnyFile, searchResult) = 0 then repeat if fileDate > -1 then if fileDate1 > -1 then if filedate >filedate1 then CopyFile(Pchar(Edit1.Text+'\'+searchResult.Name), Pchar(Edit2.Text+'\'+searchResult.Name),true) Последний раз редактировалось lmikle, 20.04.2013 в 02:29. |
#2
|
||||
|
||||
И что такое fileDate, fileDate1? Где они инициализируются?
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
весь код
Код:
Var fileDate: Integer; fileDate1 : Integer; searchResult : TSearchRec; frombuf, tobuf: Array [0..128] of Char; fileName : string; SR : TSearchRec; S,a:String ; begin if FindFirst(Edit1.text+'\*.*', faAnyFile, searchResult) = 0 then repeat if fileDate > -1 then if fileDate1 > -1 then if filedate >filedate1 then CopyFile(Pchar(Edit1.Text+'\'+searchResult.Name), Pchar(Edit2.Text+'\'+searchResult.Name),true) until FindNext(searchResult) <> 0; FindClose(searchResult); lmikle: Последнее китайское предупреждение. Быстро учимся оформлять посты (использовать правильные теги)! Последний раз редактировалось lmikle, 20.04.2013 в 02:30. |
#4
|
||||
|
||||
Если это весь код то:
Если переменные fileDate, fileDate1 глобальные - в них при запуске программы 0, если локальные - мусор. С какого перепугу сравнивается с -1?... Над этим и задумайся. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
я давно уже над этим кодом сижу сам уже запутался.
но только вот мне всё равно нужна помощь. Подскажите кто-нибудь ка сделать чтобы соблюдалось условие. |
#6
|
||||
|
||||
Цитата:
Код:
... if (FileDate > -1) and (FileDate1 > -1) and (FileDate > FileDate1) then CopyFile(Pchar(Edit1.Text + '\'+SearchResult.Name), Pchar(Edit2.Text + '\' + SearchResult.Name), true); ... Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#7
|
|||
|
|||
вопрос в том
как сделать что бы сравнивала файлы по очереди и копировала те на пример которых время последнего изменения больше. а если время одинаково то переходила к сл. |
#8
|
||||
|
||||
Цитата:
Допустим, есть 5 файлов. A,B,C,D,E. Их время изменения - 2 у.е., 3, 1, 5, 4 соответственно. Берем файл A. У файлов B, D, E время больше. Копируем их. Берем файл B. У файлов D,E время больше, копируем их. Берем C, у всех время больше, копируем все. Берем файл D, у E время больше, копируем его. Таким образом, будут скопированы все файлы, кроме того, у кого время наименьшее, более того - многие будут скопированы много раз. Сомневаюсь, что требуется именно это. Что конкретно надо-то? Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
#9
|
||||
|
||||
Цитата:
Код:
//searchResult.Time {integer} if DateFile < searchResult.Time then ... Код:
function GetFileDate(FileName: string): TDateTime; var FHandle: Integer; begin FHandle:= FileOpen(FileName, 0); try Result:= FileDateToDateTime(FileGetDate(FHandle)); finally FileClose(FHandle); end; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#10
|
|||
|
|||
Чтобы проверить FileDate, файл открывать не надо.
Код:
if FileAge(Edit1.Text+'\'+searchResult.Name) > FileAge(Edit2.Text+'\'+searchResult.Name) then CopyFile(Pchar(Edit1.Text+'\'+searchResult.Name), Pchar(Edit2.Text+'\'+searchResult.Name),true) |