![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Подскажите пожалуйста
в чём ошибка в коде. так как он прост копирует тупо всё и условие не смотрит Код:
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? Где они инициализируются?
|
|
#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?... Над этим и задумайся. |
|
#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 время больше, копируем его. Таким образом, будут скопированы все файлы, кроме того, у кого время наименьшее, более того - многие будут скопированы много раз. Сомневаюсь, что требуется именно это. Что конкретно надо-то? Цитата:
|
|
#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) |