![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 06.08.2009
Сообщений: 144
|
![]()
Приветствую!
Допустим есть procedure Write(var Buffer; const Size: Int64); или procedure Read(ver Buffer; const Size: Int64); И есть парочка файлов File1.bin 1024б File2.bin 1024б File3.bin 1024б Которые из себя на самом деле один набор данных, просто разделенный по нескольким файлам, размером 3072б. Планирую сделать "виртуальный" наследник TStream, обеспечивающий прозрачную запись/чтение данных. В зависимости от текущей позиции, в этом виртуальном классе - подлючается нужный файл и работа идет с ним. Допустим текущая позиция равна 1000, соответственно подключен File1.bin и реальная позиция в нем - тоже 1000. Нужно записать Buffer размером 32 байта. Соответственно, 24 байта нужно записать в File1.bin, закрыть его, открыть File2.bin, перейти на 0 позицию - и записать оставшиеся 8 байт. Как можно это осуществить? Да, можно использовать какой то промежуточный массив байт, но это при небольших объемах хорошо. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Запихнуть последовательно все три файла в один MemoryStream, после правки выгрузить в 3 или 23 килобайтных файла. Все операции чтения-записи с использованием ReadBuffer и WriteBuffer
PS ТС, матюки в личках это по крайней мере не порядочно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 25.02.2014 в 12:15. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
для одинаковых
Код:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 25.02.2014 в 12:50. |
![]() |
![]() |
![]() |
#4 | ||
Форумчанин
Регистрация: 06.08.2009
Сообщений: 144
|
![]() Цитата:
Что, если речь идет о нескольких гигабайтах - оперативка лопнет MemoryStream создавать. Цитата:
P.S. Почему на все мои вопросы отвечают либо не то, либо какой-то флуд? Я что не правильные вопросы задаю, или карма у меня такая? |
||
![]() |
![]() |
![]() |
#5 | ||
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
ReadBuffer и WriteBuffer разбуй глаза и посмотри что эти методы делают и где там речь об одном байте
Цитата:
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 25.02.2014 в 16:50. |
||
![]() |
![]() |
![]() |
#6 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]() Цитата:
У тебя есть переменные с которыми ты можешь делать все что хошь(прибавлять и отнимать). Буфер это указатель(Pointrer ![]() как из одного получить два (один с нулевым смещением, а другой с другим известным смещением)? Цитата:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 25.02.2014 в 17:02. |
||
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 06.08.2009
Сообщений: 144
|
![]()
А ответ был предельно просто
Код:
Код:
![]() P.S. Печально, что как всегда, в итоге, ответ я нахожу сам... Только на это уходит, куда больше времени... |
![]() |
![]() |
![]() |
#8 | |||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]() Цитата:
Цитата:
Текст был дан именно для того чтобы Цитата:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 26.02.2014 в 09:00. |
|||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
экспорт набора данных из бд в word | kate158 | Общие вопросы Delphi | 9 | 22.11.2013 15:27 |
Запись бинарных данных в TStream | retroguy | Общие вопросы Delphi | 10 | 24.04.2012 22:03 |
Запись в Excel даты из набора данных | VHomer | БД в Delphi | 1 | 06.03.2012 13:44 |
ADO Обновление набора данных | Ale-X91 | БД в Delphi | 6 | 14.02.2012 14:38 |
Изменение набора данных BDGrid | alex_fcsm | БД в Delphi | 3 | 30.01.2010 21:30 |