Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 4698
Рейтинг: 426
#1: 2009-03-21 21:19:56 ЛС | профиль | цитата
Помогите сделать программу-патчер. Идея: сравнивает две папки(вместе с вложенными папками) и из одной в другую копирует недостающие файлы. Пример: 2 папки в одной из них нет файла r.txt и прога копирует его туды. Вот то на чем застрял:
code_12345.txt
карма: 10
0
файлы: 1code_12345.txt [4.8KB] [218]
Ответов: 117
Рейтинг: 9
#2: 2009-03-21 21:45:51 ЛС | профиль | цитата
А над чем именно застрял?
У тебя в этом месте
code_12346.txt
не все линии соеденены - может в этом загвоздка?
карма: 0

0
Разработчик
Ответов: 4698
Рейтинг: 426
#3: 2009-03-21 21:50:23 ЛС | профиль | цитата
Да не, я не понял как скопировать из однои папки в другую(Пример, было: Cgamesgood .txt надо: Cgames2good .txt)
------------ Дoбавленo:

Тока не способом переименовывания папки!
------------ Дoбавленo:

А именно копированием!
карма: 10
0
Ответов: 117
Рейтинг: 9
#4: 2009-03-21 21:53:34 ЛС | профиль | цитата
С помощью FileTools и копируй, там для этого doCopy есть
карма: 0

0
файлы: 1code_12346.txt [1.1KB] [262]
Гость
Ответов: 17029
Рейтинг: 0
#5: 2009-03-21 21:55:34 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2021-05-21 12:48:37
карма: 0

0
Разработчик
Ответов: 4698
Рейтинг: 426
#6: 2009-03-21 21:57:26 ЛС | профиль | цитата
Я кажется писал не все копировать а
Assasin писал(а):
Идея: сравнивает две папки(вместе с вложенными папками) и из одной в другую копирует недостающие файлы

------------ Дoбавленo:

писал(а):
Assasin, сначала создай

Это как?
карма: 10
0
Ответов: 4641
Рейтинг: 334
#7: 2009-03-21 22:15:48 ЛС | профиль | цитата
Assasin писал(а):
Да не, я не понял как скопировать из однои папки в другую

вот так например


Add(MainForm,2953706,161,126)
{
link(onCreate,1022147:doString,[(233,146)(233,139)])
}
Add(FileTools,5050740,224,175)
{
link(FileName,7508432:Var2,[])
}
Add(Dir,257143,273,70)
{
}
Add(Memory,2449611,224,70)
{
Default=String(Hiasm.exe)
}
Add(FormatStr,1022147,273,133)
{
Mask="%1My\%2"
link(onFString,5050740:doCopy,[(317,139)(317,163)(212,163)(212,188)])
link(Str1,257143:CurrentDir,[])
link(Str2,7508432:Var3,[(286,114)])
}
Add(GetDataEx,7508432,217,105)
{
link(Data,2449611:Value,[])
}

карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 4698
Рейтинг: 426
#8: 2009-03-21 22:19:20 ЛС | профиль | цитата
Ссылка битая - отправляет на старый форум
карма: 10
0
Ответов: 4641
Рейтинг: 334
#9: 2009-03-21 22:35:23 ЛС | профиль | цитата
Assasin писал(а):
Ссылка битая - отправляет на старый форум

исправил
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 4698
Рейтинг: 426
#10: 2009-03-21 22:42:35 ЛС | профиль | цитата
Не совсем то, он по твоему примеру копирует в ту же папку, а надо в введенную(+ учет создания доп каталогов при пути. Пример: Cмоефайлчто-то.rar, туды Cтвоефайлчто-то.rar)
карма: 10
0
Ответов: 4641
Рейтинг: 334
#11: 2009-03-21 22:56:18 ЛС | профиль | цитата
Assasin писал(а):
Не совсем то, он по твоему примеру копирует в ту же папку, а надо в введенную

так вводи папку. В чем проблемма? непонял.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 4698
Рейтинг: 426
#12: 2009-03-21 22:57:42 ЛС | профиль | цитата
Вопрос: куда ввести в NewFileName
карма: 10
0
Ответов: 4641
Рейтинг: 334
#13: 2009-03-21 23:00:51 ЛС | профиль | цитата
Assasin писал(а):
Вопрос: куда ввести в NewFileName

да! туда, но если папка уже создана.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 4698
Рейтинг: 426
#14: 2009-03-21 23:26:14 ЛС | профиль | цитата
С папкой не проблема(я добавлю функцию авто-создания, как получу РАБОЧУЮ прогу), ща попробую еще раз мож че и выйдет. . . .
------------ Дoбавленo:

Ну никак!!!
#sha
Add(MainForm,2953706,7,105)
{
Width=512
Height=443
Caption="Updater1.0"
}
Add(Edit,12914149,147,196)
{
@Hint=#25:Путь туды куды копировать|
Left=5
Top=35
Width=425
Height=25
Font=[MS Sans Serif,10,0,0,1]
Text="Путь к папке"
AddHint(9,-38,156,13,@Hint)
}
Add(Label,13034121,7,189)
{
Left=5
Top=5
Width=494
Height=17
Caption="Введите в поле ниже путь к папке, которую надо обновить(туда куда копировать новые файлы)"
}
Add(Browse,11188591,91,238)
{
link(onBrowse,14248607:doText,[])
}
Add(Button,10421767,42,196)
{
@Hint=#15:Туды копировать|
Left=440
Top=35
Width=60
Height=25
Caption="Выбрать"
link(onClick,13543899:doBrowse,[])
AddHint(-1,-39,103,13,@Hint)
}
Add(StyleXP,6920419,7,63)
{
}
Add(Edit,14248607,161,238)
{
@Hint=#22:Путь туды откуда брать|
Left=5
Top=100
Width=425
Height=25
Font=[MS Sans Serif,10,0,0,1]
Text="Путь к папке"
AddHint(51,-21,135,13,@Hint)
}
Add(Label,9901200,7,147)
{
Left=5
Top=70
Width=497
Height=27
Caption="Введите в поле ниже путь к папке, из которой надо брать новые файлы(то откуда брать новые файлы)"
AutoSize=1
}
Add(Button,1789080,42,238)
{
@Hint=#12:Оттуда брать|
Left=440
Top=100
Width=60
Height=25
Caption="Выбрать"
link(onClick,11188591:doBrowse,[])
AddHint(-35,44,82,13,@Hint)
}
Add(Button,7324329,14,336)
{
Left=5
Top=380
Width=135
Height=25
Caption="Начать"
link(onClick,1902390:doEvent1,[])
AddHint(-13,-29,51,13,Caption)
}
Add(Button,5578446,14,392)
{
Left=365
Top=380
Width=135
Height=25
Enabled=1
Caption="Отменить"
Point(doEnabled)
link(onClick,7248567:doCancel,[(72,398)(72,349)])
AddHint(-16,40,65,13,Caption)
}
Add(ProgressBar,15928031,175,329)
{
Left=5
Top=345
Width=495
Height=25
ProgressColor=65280
Point(doMax)
}
Add(Browse,13543899,91,196)
{
link(onBrowse,12914149:doText,[])
}
Add(Hub,1902390,56,336)
{
link(onEvent1,7248567:doStart,[])
link(onEvent2,5578446:doEnabled,[(82,349)(82,373)(2,373)(2,398)])
}
Add(MultiElementEx,7248567,98,336)
{
link(onCountFiles,15928031:doMax,[])
link(ondoProgressPos,15928031:doPosition,[(152,349)(152,335)])
link(Dirrectory,14248607:Text,[(104,303)(167,303)])
link(FilePathFirst,12914149:Text,[(111,282)(153,282)])
}
BEGIN_SDK
Add(EditMultiEx,4119923,7,7)
{
WorkCount=#43:doStart=Начинает операцию обновления файлов|26:doCancel=Отменяет операцию|
EventCount=#65:onCountFiles=Выдает в поток кол-во файлов которые надо копировать|49:ondoProgressPos=Устанавливает позицию в прогрессе|
DataCount=#45:Dirrectory=Папка из которой обновляются файлы|34:FilePathFirst=Туды куды копировать|
Width=377
Height=256
link(doStart,387756:doEvent1,[(11,13)(11,27)])
link(doCancel,12898277:doEvent1,[(11,20)(11,83)])
}
Add(Thread,5525257,42,21)
{
Delay=1
FastStop=0
link(onExec,5814468:doSearch,[])
}
Add(FileSearch,5814468,91,21)
{
link(onSearch,5380162:doEvent1,[])
link(onEndSearch,10141645:doData,[(191,34)(191,27)])
link(Dir,7590296:Var3,[(104,13)])
}
Add(Counter,7596096,203,21)
{
Max=1000
}
Add(DoData,10141645,259,21)
{
link(onEventData,16338348:doEvent1,[])
link(Data,7596096:Count,[(265,17)(246,17)(246,59)(209,59)])
}
Add(Hub,5380162,147,21)
{
link(onEvent1,7596096:doNext,[])
link(onEvent2,3493904:doAdd,[(171,34)(171,69)])
}
Add(StrList,3493904,182,63)
{
}
Add(Hub,387756,14,21)
{
OutCount=3
link(onEvent1,5525257:doStart,[])
link(onEvent2,3493904:doClear,[(35,34)(35,76)])
link(onEvent3,7596096:doReset,[])
}
Add(GetDataEx,7590296,22,4)
{
Angle=3
link(Data,4119923:Dirrectory,[(13,13)])
}
Add(Hub,16338348,308,21)
{
link(onEvent1,4119923:onCountFiles,[(349,27)(349,13)])
link(onEvent2,11823443:In,[])
}
Add(LineBreak,10840119,7,161)
{
link(Out,1373469:doEnum,[])
Primary=[11823443,329,-133]
}
Add(ArrayEnum,1373469,63,161)
{
link(onItem,10145009:doStart,[])
link(Array,3493904:Array,[(69,115)(202,115)])
}
Add(FileTools,11411225,182,161)
{
link(onEnd,8956299:doCompare,[])
link(FileName,16252991:Var3,[(188,149)(162,149)(162,205)])
}
Add(Thread,10145009,119,161)
{
link(onExec,11411225:doFileExists,[(167,167)(167,188)])
}
Add(MultiElementEx,16451868,294,105)
{
link(FilePathFirst,4119923:FilePathFirst,[(300,56)(20,56)])
link(StringRight,16252991:Var1,[(307,93)(132,93)])
link(Sub_str,7590296:Var2,[(314,61)(35,61)])
}
BEGIN_SDK
Add(EditMultiEx,2150506,21,21)
{
VarCount=#21:FilePath=Путь к файлу|
DataCount=#13:FilePathFirst|11:StringRight|20:Sub_str=То что найти|
Height=179
link(FilePath,5388602:GetData,[(27,186)(48,186)])
}
Add(EventFromData,5388602,42,147)
{
link(onEvent,3088645:doStrCat,[])
}
Add(StrCat,3088645,91,147)
{
link(onStrCat,5388602:doData,[(135,153)(135,141)(30,141)(30,153)])
link(Str1,2150506:FilePathFirst,[(97,76)(27,76)])
link(Str2,6507519:GetData,[])
}
Add(EventFromData,6507519,98,98)
{
link(onEvent,14243286:doReplace,[])
}
Add(Replace,14243286,154,98)
{
link(onReplace,6507519:doData,[(198,104)(198,92)(86,92)(86,104)])
link(Str,2150506:StringRight,[(160,60)(34,60)])
link(Sub_str,2150506:Sub_str,[(167,54)(41,54)])
link(Dest,15741693:Value,[])
}
Add(Memory,15741693,168,42)
{
Default=String()
}
END_SDK
Add(If_else,8956299,231,161)
{
Op2=Integer(0)
link(onTrue,12798115:doCopy,[(275,167)(275,174)])
}
Add(FileTools,12798115,287,161)
{
link(onEnd,15274037:doOperation,[])
link(FileName,16252991:Var2,[(293,154)(273,154)(273,213)(132,213)])
link(NewFileName,16451868:FilePath,[])
}
Add(GetDataEx,16252991,119,196)
{
Angle=3
link(Data,1373469:Item,[(69,205)])
}
Add(Math,15274037,336,161)
{
Op2=1
ResultType=0
link(onResult,4119923:ondoProgressPos,[(376,167)(376,20)])
link(Op1,1373469:Index,[(342,149)(221,149)(221,201)(76,201)])
}
Add(Hub,12898277,14,77)
{
OutCount=4
link(onEvent1,5525257:doStop,[(35,83)(35,34)])
link(onEvent2,5814468:doStop,[(82,90)(82,34)])
link(onEvent3,1373469:doStop,[(46,97)(46,174)])
link(onEvent4,10145009:doStop,[(74,104)(74,174)])
}
Add(InfoTip,2949689,280,70)
{
Info=#12:Че не так???|
Height=74
}
END_SDK
Add(StringTable,10571376,378,371)
{
Left=5
Top=145
Width=495
Height=195
Columns=#4:Файл|6:Размер|4:Путь|
StrDelimiter=";;;;;"
Redaction=1
}
Add(Label,14347091,7,231)
{
Left=5
Top=130
Width=490
Caption="Обновленные файлы:"
AutoSize=1
}
Add(Label,73927,364,427)
{
Left=145
Top=370
Width=216
Height=37
Font=[MS Sans Serif,5,0,0,1]
Caption="Данная операция может занять длительное время поэтому не пугайтесь если она вдруг зависнет!"
AutoSize=1
}
карма: 10
0
Ответов: 4641
Рейтинг: 334
#15: 2009-03-22 00:06:48 ЛС | профиль | цитата
Assasin писал(а):
Ну никак

там где что не так - там непонятно, что хочешь. Раздели свою схему на логические части. Сначало найди что изменилось в папке и выведи это в Memo, затем можно и копированием занятся. А так я совсем запутался. У тебя на первом месте, смотрю интерфейс, а я например обычно логику строю, делаю все последовательно, проверяю каждый шаг на корректность работы, а потом все остальное.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)