Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2007, 14:05   #1
OrdJONY
.NET-чик
Форумчанин
 
Аватар для OrdJONY
 
Регистрация: 24.03.2007
Сообщений: 569
Вопрос Нетипизированный файл

Помогите как можно сделать нетипизированный файл вот такого формата:
1 байт значение от 0 до 255, 2 байта значение от 0 до 65000, 1 байт значение от 0 до 255, 4 байта значение от 0 до максимум сколько можно поместить в 4 байта. А далее будет следовать данные размер которых указан в последнем значении (4-ех байтах). Только это нужно записать все не в файл, а в какой-то буфер, т.е. в память и потом как прочитать такую структуру??
"Разработка под веб - как работа с пылесосом: нихрена не прикольно, но засасывает"
Мо маленький городок
OrdJONY вне форума Ответить с цитированием
Старый 01.10.2007, 13:08   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Так в чем проблема ? используй записи
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 01.10.2007, 13:51   #3
OrdJONY
.NET-чик
Форумчанин
 
Аватар для OrdJONY
 
Регистрация: 24.03.2007
Сообщений: 569
По умолчанию

Так а потом надо добавить эти данные размер которых заранее неизвестен. Как сделать??
"Разработка под веб - как работа с пылесосом: нихрена не прикольно, но засасывает"
Мо маленький городок
OrdJONY вне форума Ответить с цитированием
Старый 01.10.2007, 13:59   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Ничего не понятно, что именно вызывает затруднение ? заполнение одной записи ? заполнение массива записей ? запись массива записей в файл ? чтение массива записей из файла ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 01.10.2007, 16:41   #5
OrdJONY
.NET-чик
Форумчанин
 
Аватар для OrdJONY
 
Регистрация: 24.03.2007
Сообщений: 569
По умолчанию

Ту структуру можно занести в запись, с этим проблем нет. А потом должно быть данные они не известного заранее размера. Это может быть 2 байта, 4, 8 или 16 байт неизвестно! Это все и эти данные нужно записать в буфер (или файл), а потом как-то прочитать.
"Разработка под веб - как работа с пылесосом: нихрена не прикольно, но засасывает"
Мо маленький городок
OrdJONY вне форума Ответить с цитированием
Старый 01.10.2007, 16:55   #6
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

после того, как мы записали определённые данные, пишем размер "пакета" следующих данных, и всё. В итоге наша прога читает число, потом считывает столько, сколько указано в этом числе.
zetrix вне форума Ответить с цитированием
Старый 02.10.2007, 17:05   #7
OrdJONY
.NET-чик
Форумчанин
 
Аватар для OrdJONY
 
Регистрация: 24.03.2007
Сообщений: 569
Подмигивание

Цитата:
Сообщение от zetrix Посмотреть сообщение
после того, как мы записали определённые данные, пишем размер "пакета" следующих данных, и всё. В итоге наша прога читает число, потом считывает столько, сколько указано в этом числе.
В последнии 4 байта и указывают на размер "пакета". Только напишите плиз кодик как такое сделать, чтобы записывать не в файл, а какой-то буфер (в память)
"Разработка под веб - как работа с пылесосом: нихрена не прикольно, но засасывает"
Мо маленький городок
OrdJONY вне форума Ответить с цитированием
Старый 02.10.2007, 17:23   #8
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

обычно размер указывают в начале, а не в конце и вапще смысл в конце писать размер, если мы должны в конец перейти, а соответственно и размер знать или там мусор какой содержица до последних 4 байт, что нам размер нужен? а так можно поюзать TMemoryStream
pu4koff вне форума Ответить с цитированием
Старый 02.10.2007, 18:09   #9
OrdJONY
.NET-чик
Форумчанин
 
Аватар для OrdJONY
 
Регистрация: 24.03.2007
Сообщений: 569
Радость

Цитата:
Сообщение от pu4koff Посмотреть сообщение
или там мусор какой содержица до последних 4 байт, что нам размер нужен? а так можно поюзать TMemoryStream
Да разный мусор Объясните поподробней как пользоватся TMemoryStream?
"Разработка под веб - как работа с пылесосом: нихрена не прикольно, но засасывает"
Мо маленький городок
OrdJONY вне форума Ответить с цитированием
Старый 02.10.2007, 19:35   #10
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

допустим в файле записано несколько integer'ов. Подсчитать их сумму можно так:
Код:
var
  m: TMemoryStream;
  i,j: integer;
begin
  m := TMemoryStream.Create;
  m.LoadFromFile('C:\123.txt');
  i := 0;
  while m.Read(j,sizeof(i)) > 0 do i := i + j;
  m.Free;
для работы с файлами есть исчо TFileStream. Перейти в какую-либо позицию: Seek. ну и писать ес-но Write. в Read и Write передаеца буфер со значением и кол-во байт читаемых/записываемых возвращаеца сколько прочтено/записано
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
chm файл Михаил Юрьевич Общие вопросы Delphi 2 10.07.2008 08:17
Как с поиощью hiew вставить в файл строчку, "раздвинуть" файл и вставить туда строчку? barand Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 28.06.2008 10:58
[Pascal]Нетипизированный файл Fuaran8989 Помощь студентам 1 13.05.2008 09:14
Файл Ketu Паскаль, Turbo Pascal, PascalABC.NET 8 31.03.2008 07:10
ini файл Simply-Art Общие вопросы Delphi 3 17.06.2007 14:43