![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Данные [D6, D7, WinXP]
Ivolg © (2004-11-19 11:43:00)Приветствую всех!!! Помогите очень надо!!!ПЛИЗЗ!!!
Дело в том что я хочу 2 файла с расширением exe слить в файл 2.dat и потом извлечь из 2.dat 2 проги которые я сливал!!! Но у меня не получается, Когда я открываю файл и пишу в другой, то просто происходит перезапись байт, а мне надо чтобы они не перезаписсывались а добавлялись!!!
Пишу такой код:
var
Vf1, Vf2 : file;
NRead, NWrite: Integer;
Buf: array[1..1024] of Char;
begin
AssignFile(Vf1, 'D:\Write.txt');
Reset(Vf1, 1);
AssignFile(Vf2, 'D:\Net.exe');
Rewrite(Vf2, 1);
repeat
BlockRead(Vf1, Buf, SizeOf(Buf), NRead);
BlockWrite(Vf2, Buf, NRead, NWrite);
until (NRead = 0) or (NWrite <> NRead);
CloseFile(Vf1);
CloseFile(Vf2);
СПАСИБО!!!!!
tormoz (2004-11-19 22:07:00) [1]сначала читаешь и пишешь первый файл, затем второй, третий и т.д.
можешь загнать в цикл:
открыть*.dat на запись
покафайлы не кончились
открытьфайл на чтение
записатьв выходной файл
закрытьфайл
конец пока
закрыть*.dat
:-)
Ivolg (2004-11-19 21:45:00) [2]Floppy
Спасибо!!
А если мне нужно недва а 4 или 3 файла записать в Net.dat, то как тогда??
Floppy (2004-11-19 20:18:00) [3]Пишу такой код:
var
Vf1, Vf2, Vf3: file;
NRead, NWrite: Integer;
Buf: array[1..1024] of Byte;//хотя в этом случае можно обойтись и без Array
begin
Assign(Vf1, 'D:\Net1.exe');
Reset(Vf1, 1);
Assign(Vf2, 'D:\Net2.exe');
Reset(Vf2, 1);
Assign(Vf3, 'D:\Net.dat');
ReWrite(Vf3, 1);
repeat
BlockRead(Vf1, Buf, SizeOf(Buf), NRead);
BlockWrite(Vf3, Buf, NRead, NWrite);
until (NRead = 0) or (NWrite <> NRead);
CloseFile(Vf1);
repeat
BlockRead(Vf2, Buf, SizeOf(Buf), NRead);
BlockWrite(Vf3, Buf, NRead, NWrite);
until (NRead = 0) or (NWrite <> NRead);
CloseFile(Vf2);
CloseFile(Vf3);
Ну, а разделить тоже не проблема, пиши если это устроило:)
Ivolg (2004-11-19 19:17:00) [4]А ктонить можеть пример из моего куска кода состряпать, чтоб этазадача исполнилась??? БУДУ ОЧЕНЬ БЛАГОДАРЕН!!!!!!!
novice_man (2004-11-19 12:43:00) [5]Плохиш © (19.11.04 12:31) [8]
А что пример из справки ну совсем не помогает? Тогда только в дворники.
Пошел выбирать метлу и лопату ПОБОЛЬШЕ!!! ;-)
Хватит на сегодня работать. Нужно отдыхать!
Сорри за пост [7].
Игорь Шевченко (2004-11-19 12:33:00) [6]novice_man © (19.11.04 12:10) [5]
Извиняюсь, ошибся. Append для текстовых файлов.
Плохиш (2004-11-19 12:31:00) [7]
> novice_man © (19.11.04 12:29) [7]
> Кратенько так, примерчик, как после RESET + SEEK дописать
> второй файл?
А что пример из справки ну совсем не помогает? Тогда только в дворники.
novice_man (2004-11-19 12:29:00) [8]Плохиш © (19.11.04 12:20) [6]
reset + seek
Кратенько так, примерчик, как после RESET + SEEK дописать второй файл?
Плохиш (2004-11-19 12:20:00) [9]reset + seek
novice_man (2004-11-19 12:10:00) [10]Игорь Шевченко ©
Append
Как? Для Vf1, Vf2 : file;Append ?????
Игорь Шевченко (2004-11-19 12:05:00) [11]Append
novice_man (2004-11-19 11:51:00) [12]....
AssignFile(Vf1, 'D:\Write.txt');
Reset(Vf1, 1);
AssignFile(Vf2, 'D:\Net.exe');
Rewrite(Vf2, 1) <<-- создаешь новый файл
....
Попробуй через OpenFile, CreateFile;
Алхимик (2004-11-19 11:47:00) [13]Справку по Rewrite почитай, станет понятнее. Или росто на русский переведи.
Ivolg (2004-11-19 11:46:00) [14]Ой!! вот:
var
Vf1, Vf2 : file;
NRead, NWrite: Integer;
Buf: array[1..1024] of Char;
begin
AssignFile(Vf1, 'D:\Net.exe'); \\ Поправка
Reset(Vf1, 1);
AssignFile(Vf2, 'D:\2.dat'); \\ Поправка
Rewrite(Vf2, 1);
repeat
BlockRead(Vf1, Buf, SizeOf(Buf), NRead);
BlockWrite(Vf2, Buf, NRead, NWrite);
until (NRead = 0) or (NWrite <> NRead);
CloseFile(Vf1);
CloseFile(Vf2);