![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Бантик/Батник [D7, WinXP]
WhiteGuy © (2005-01-05 12:02:00)Ну, чуваки, я вас уже наверное задолбал. 8-).
Я короче делаю прогу для разрезания файлов. Как сделать такую фишку, чтобы по завершению разрезания создавался батник с командами для склеивания?? У меня в проге типа
assignFile(outf, edit2.text+'block'+inttostr(i)+'.cit');
rewrite (outf, 1);
SlyFox (2005-01-05 15:58:00) [1]Чё человека мучаете то? :)
Вот код:
procedure TForm1.DoneClick(Sender: TObject); // Делаем bat-файл b.bat
var outf: TextFile;
begin
AssignFile(outf,'b.bat');
Rewrite(outf);
Writeln(outf,'строка батника 1');
...........
CloseFile(outf);
end;
Что не ясно еще?
KSergey (2005-01-05 15:10:00) [2]> [22] WhiteGuy (05.01.05 15:06)
> Ну так поможет кто-нить или нет??
С чем??!!
Справку (вернее - пример) по AssignFile смотрел? Что-то непонятно?
Ну или сумму называй, наконец. Тогда индивидуальные занятия проведем. ;)
WhiteGuy (2005-01-05 15:06:00) [3]Ну так поможет кто-нить или нет??
PVOzerski (2005-01-05 14:53:00) [4]Ну, например, что-то такое. Delphi под рукой нет, так что работоспобность проверяй сам :^)
function MakeBat(const batname,resultname:string;count:integer):boolean;
var
s:string;
f:file;
i:integer;
len,done:longint;//или longword? - проверяй сам
begin
s:='copy /b ';
for i:=1 to count-1 do //это если нуменация блоков идет с 1
s:=s+'block'+inttostr(i)+'.cit+';
s:=s+'block'+inttostr(count)+'.cit '+resultname;
assignfile(f,batname);
Result:=false;
done:=0;
len:=length(s);
{$i-}
rewrite(f,1);
if IOresult=0 then
begin
blockwrite(f,s[1],len,done);
Result:=len=done;
closefile(f);
end;
end;
WhiteGuy (2005-01-05 14:10:00) [5]2 PVOzerski
Ну а кода кусень можно?
KSergey (2005-01-05 14:09:00) [6]> [17] WhiteGuy (05.01.05 14:02)
> Сергей, я думаю, что у этого Гусева алгоритм проги не тот...
А проверить, б...?! Фигли думать-то??
К стати, именно тот.
PVOzerski (2005-01-05 14:04:00) [7]Вообще-то команды для склеивания файлов в батниках возможны.
Например, copy /b 1.txt+2.txt+3.txt all.txt
Вот примерно такую строчку надо и сгенерить и скинуть в файл. На API, в textfile, в типизированный, в нетипизированный - особой разницы нет.
WhiteGuy (2005-01-05 14:02:00) [8]2 KSergey
Сергей, я думаю, что у этого Гусева алгоритм проги не тот...
И может кто-то тут таки мне поможет:
я уже писал: copy /b файл.1+файл.2+файл.3+....+файл.н конечный_файл
KSergey (2005-01-05 13:47:00) [9]> [15] WhiteGuy (05.01.05 13:43)
> А я думал, что там есть функция записи бантика после разрезки!
> :(
Есть мыло автора - в чем проблема? Может эта идея придется ему по душе?
WhiteGuy (2005-01-05 13:43:00) [10]2 KSergey
Не очень такой этот Каттер и крутой 8-).
А я думал, что там есть функция записи бантика после разрезки! :(
TUser (2005-01-05 13:10:00) [11]
> LostDelpher (05.01.05 13:05) [11]
> Резалка - нужна -
> был случай нужно было прочесть логи MSSQL - а файл был больше
> 3 гига - пришлось писать резак.
1. FAR эти 3 гига спокойно откроет. И довольно быстро.
2. Резаки уже есть. Надо только поискать на freeware-сайтах.
TUser (2005-01-05 13:06:00) [12]
> Рар и Зип занимают по мегу и платные, а моя будет 150 кб
> и халявная! 8-)
Есть еще PowerArchiver. Он бесплатный. Большой правда (2М дистрибутив, после установки - 3 с копейками) - зато на Delphi !) Кучу форматов держит. А размер чейчас не столь критичен, как 5 лет назад, ИМХО.
Rar, конечно, помощьнее будет. И поменьше в дистрибутиве. А после установки - почти столько же. Стоит он недорого. А если не хочешь платить - кликай постоянно на Esc.
PS. Архиваторы - настолько заезжанная тема, что написать что-то действительно стоящее - это тяжело. Особенно еще и 'халявное', т.е. собственными силами в часы досуга.
KSergey (2005-01-05 13:06:00) [13]> [11] LostDelpher (05.01.05 13:05)
> пришлось писать резак.
Теперь все (надеюсь) знают где его взять ;)
LostDelpher (2005-01-05 13:05:00) [14]Резалка - нужна -
был случай нужно было прочесть логи MSSQL - а файл был больше 3 гига - пришлось писать резак.
KSergey (2005-01-05 13:02:00) [15]> [9] WhiteGuy (05.01.05 12:41)
> Намыль, пжалуйста! 8)
http://gus.bip.ru/resProgs.html
Там есть мыло. Пишите, автор обещал выслать. Exe можете скачать, повертеть.
> Тип какой?
> file :)
Плохо. Должен быть TextFile (для батника). В справке есть пример (для AssignFile)
WhiteGuy (2005-01-05 12:41:00) [16]2 KSergey
Тип какой?
file :)
Намыль, пжалуйста! 8)
2 TUser
copy /b file.1+file.2+file.3 file
- это сбор файлов батником!
KSergey (2005-01-05 12:29:00) [17]> [6] WhiteGuy (05.01.05 12:27)
> outf - это "выходной" файл
Ежу понятно
Тип какой?
> [5] TUser © (05.01.05 12:25)
> Может я ошибаюсь - но просто батником тут не обойтись.
Ну почему? Смотря как резать. Можно вполне и штатной copy обойтись.
К стати, есть отлично сделанный резак (не мною). Если автор разрешит - могу отмылить.
WhiteGuy (2005-01-05 12:28:00) [18]2 TUser
PS. Если черь идет о том, чтобы разбить один файл на несколько и переносить их на дискетах, то такие программы уже есть и в большом количестве. Начиная с Rar/Zip и иже с ними.
Рар и Зип занимают по мегу и платные, а моя будет 150 кб и халявная! 8-)
WhiteGuy (2005-01-05 12:27:00) [19]2 Gero
outf - это "выходной" файл
2 KSergey
Ну, тогда, мужики! :-)
TUser (2005-01-05 12:25:00) [20]Может я ошибаюсь - но просто батником тут не обойтись. По крайней мере напиши прогу, которую будешь из батника вызывать и передавать ей 2 файла для склейки + имя файла для результата. А она склеет.
PS. Если черь идет о том, чтобы разбить один файл на несколько и переносить их на дискетах, то такие программы уже есть и в большом количестве. Начиная с Rar/Zip и иже с ними.