Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 18.04.2010
Сообщений: 7

С помощью процедур BlockRead и BlockWrite добавить к первому файлу содержимое второго файла

19.04.2010, 11:08. Показов 2953. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны два файла одного и того же типа. С помощью процедур BlockRead и BlockWrite добавить к первому файлу содержимое второго файла, а ко второму файлу — содержимое первого.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.04.2010, 11:08
Ответы с готовыми решениями:

BlockWrite BlockRead
Привет Пишу Распаковщик и столкнулся с такой проблеммой Мне к примеру нужна записаль 2586 байт с 48 байта и записать эти данные в файл ))И...

BlockWrite и BlockRead
http://www.delphibasics.ru/BlockWrite.php var myFile : File; byteArray : array of byte; oneByte : byte; i, count :...

Альтернатива AssignFile, BlockRead, BlockWrite
Доброго времени суток. Появилась такая проблема. AssignFile не умеет хавать большие файлы, а мне нужно с ними работать (с файлами больше 10...

1
 Аватар для Mawrat
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
19.04.2010, 11:58
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Буфер данных оформлен в виде строки. Для обмена данными использован третий файл. Когда размеры файлов небольшие, можно обойтись без третьего файла. Но мы будем считать, что делается всё как положено - якобы файлы могут быть очень большими.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
procedure TForm1.Button1Click(Sender: TObject);
const
  Fn1 = 'file1.dat';
  Fn2 = 'file2.dat';
  Fn3 = 'file3.dat';
var
  F1, F2, F3 : File;
  StrBuff : String;
  Cnt : Integer;
begin
 
  //Записываем в файлы 1 и 2 какое-нибудь содержимое.
 
  AssignFile(F1, Fn1);
  //Создаём/пересоздаём первый файл. И открываем его в режиме "только запись".
  //Минимальный размер обрабатываемых блоков устанавливаем равным одному байту.
  Rewrite(F1, 1);
  StrBuff := 'Это содержимое первого файла.';
  BlockWrite(F1, Pointer(StrBuff)^, Length(StrBuff));
 
  AssignFile(F2, Fn2);
  Rewrite(F2, 1);
  StrBuff := 'Это содержимое второго файла.';
  BlockWrite(F2, Pointer(StrBuff)^, Length(StrBuff));
 
  //Устанавливаем размер буфера данных равным 1000 байт.
  SetLength(StrBuff, 1000);
 
  //В третий файл сохраняем содержимое первого файла.
  AssignFile(F3, Fn3);
  Rewrite(F3, 1);
  //Открываем первый файл в режиме "чтение/запись".
  //Минимальный размер обрабатываемых блоков устанавливаем равным одному байту.
  Reset(F1, 1);
  while not Eof(F1) do begin
    BlockRead(F1, Pointer(StrBuff)^, Length(StrBuff), Cnt);
    BlockWrite(F3, Pointer(StrBuff)^, Cnt);
  end;
 
  //К содержимому первого файла добавляем содержимое второго файла.
  Reset(F1, 1);
  //Перемещаем файловый указатель в конец первого файла.
  Seek(F1, FileSize(F1));
  Reset(F2, 1);
  while not Eof(F2) do begin
    BlockRead(F2, Pointer(StrBuff)^, Length(StrBuff), Cnt);
    BlockWrite(F1, Pointer(StrBuff)^, Cnt);
  end;
 
  //К содержимому второго файла добавляем содержимое третьего файла.
  //В третьем файле у нас, как раз, хранится первоначальная копия содержимого
  //первого файла.
  Reset(F2, 1);
  //Перемещаем файловый указатель в конец второго файла.
  Seek(F2, FileSize(F2));
  Reset(F3, 1);
  while not Eof(F3) do begin
    BlockRead(F3, Pointer(StrBuff)^, Length(StrBuff), Cnt);
    BlockWrite(F2, Pointer(StrBuff)^, Cnt);
  end;
 
  //Закрываем файлы.
  CloseFile(F1);
  CloseFile(F2);
  CloseFile(F3);
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.04.2010, 11:58
Помогаю со студенческими работами здесь

Добавить к первому файлу содержимое второго файла, а ко второму файлу — содержимое первого
Даны два файла одного и того же типа. Добавить к первому файлу содержимое второго файла, а ко второму файлу — содержимое первого.

Добавить к первому файлу содержимое второго файла, а ко второму файлу — содержимое первого.
11. Даны два файла одного и того же типа. Добавить к первому файлу содержимое второго файла, а ко второму файлу — содержимое первого. ...

Blockread и Blockwrite. Добавить к 1-му файлу содержание второго, а ко второму файлу - содержание первого
даны 2 файла одного и того же типа. с помощью процедурывить Blockread и Blockwrite добавить содержимое к 1 файла на содержимое, а ко 2...

С помощью методов BlockRead и BlockWrite создать копию файла
Задача:Дан файл произвольного типа. С помощью процедур BlockRead и BlockWrite создать его копию с новым именем. Написал код для...

Использование blockread / blockwrite
как вообще записывать блоками? хочу записать из stringgrid в нетипизированный файл данные и читать уже оттуда. записать - получается....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru