Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как прочесть фаил такой структуры [D7]


Страницы:   1 2 3

Silver... ©   (2008-02-01 13:26:00) 

Дается такая вот структура файла

1.  1 int
2.  90 int
3.  1 Int
4.  4 Int
5.  1 Int

------- Может повториться несколько раз --- Begin
6.1   4 int
6.2  16 char
6.3  16 char
------- Может повториться несколько раз --- End
7.  1 int

...
 Думал прочсть в String или в поток а потом разбирать по-байтно, только предвижу мороки тут...

Есть др. решение?


palva   (2008-02-01 18:27:00) [21]


> опред. количество

blockread для двоичного файла


Silver...   (2008-02-01 18:23:00) [22]


> Anatoly Podgoretsky ©   (01.02.08 16:56) [24]


а какая разница что в том файле записано ...

как реализовать напр. след. ------> желательно одним махом

чтать из любого 'MyFile .pdf'

pole1 - первые 2 байта
pole2 - след. 5 байта
pole3 - след. 3 байта

типа


...
Type
 TMyTyoe: Record
    pole1: array[1..2] of byte;
    pole2: array[1..5] of byte;
    pole3: array[1..3] of byte;
  end;

...
f: file of TMyType;
r: TMyType;
...

 Read(f, R)
...


 Так по мне криво, даже если дает опр. результат

PS. Не вижу где "Чукча" / "белорусский партизан".
       Ключевая фраза "получить в TMyRypeиз бин. фаила. ... читая в опред. поредок, опред. количество байт - ОДНИМ МАХОМ"


Anatoly Podgoretsky   (2008-02-01 16:56:00) [23]

> Silver...  (01.02.2008 16:00:22)  [22]

Чукча не читатель и даже не писатель.
Чукча белорусский партизан.


Сергей М.   (2008-02-01 16:07:00) [24]


> Как счтать из бинарного фаила одним махом


GetMem(SomePointer,SomeFileSize);
..
MyFileStream.Readbuffer(SomePointer^, SomeFileSize)ж


Silver...   (2008-02-01 16:00:00) [25]


> Нас не интересует, откуда дали, нужна структура, а не кусок
> абстрактного текста


Так до сих пор говорим тока о структуре файла. Никто даже не намекает как чтать

перефразирую вопрос

 Как счтать из бинарного фаила одним махом все чтоб потом оттуда (куды счтали :) ) доставать инфу (желательно не побайтно) изходя из заданной структуры.

 Типа:

Chitaem_Iz_GdeSchitali(1, 1, Var_pole1);
Chitaem_Iz_GdeSchitali(2, 90, Var_pole2);


Плохиш   (2008-02-01 15:57:00) [26]


> Silver...   (01.02.08 14:18) [8]

Да хоть учитайся
fileStream.Read(FStrukturaDannyh, RazmerStrukturyDannyh);

повторяй для всех твоих подструктур из файла.


han_malign   (2008-02-01 15:53:00) [27]


> по байтно не красиво - медленно. хотел как-нибудь сразу в рекорд или как минимум не побайтно

телепатирую - BlockRead()...

а так же см. TFileStream, TMemoryStream


Сергей М.   (2008-02-01 15:41:00) [28]


> написано длина в байтах


Гденаписано ?

В том самом огрызке "структуры", что ты сюда привел, нет ни единого упоминания о каких-то там "байтах")


Anatoly Podgoretsky   (2008-02-01 15:35:00) [29]

> Silver...  (01.02.2008 13:51:05)  [5]

Нас не интересует, откуда дали, нужна структура, а не кусок абстрактного текста.


Silver...   (2008-02-01 15:33:00) [30]


> игрушку чтоль ломаем


нет - данные фаилы полукяются от работы аппарата

мне нужно получть доп. инфу которую не дает прога которая работает с ними

пытаюсь побайтно счтать ... но этих фаилов около 500 в день

по байтно не красиво - медленно. хотел как-нибудь сразу в рекорд или как минимум не побайтно


Dennis I. Komarov   (2008-02-01 15:26:00) [31]

> [15] Галинка ©   (01.02.08 15:23)

90 / 4 = 22.5 т.е 22 и 4 бита :)))))))


Галинка   (2008-02-01 15:23:00) [32]

можут и длина в байтах. Если длина кратна 4, то наверное можно читать 90 байтов порциями по 4.


Галинка   (2008-02-01 15:22:00) [33]

игрушку чтоль ломаем? Очень на ArtMoney похоже.


Silver...   (2008-02-01 15:06:00) [34]


> Это какой же 90 Int? :)


написано длина в байтах


Dennis I. Komarov   (2008-02-01 14:51:00) [35]

Это какой же 90 Int? :)
Может это их количество, ты файлик то глянь...


Silver...   (2008-02-01 14:44:00) [36]


> Если не хитришь и не несешь отсебячину


Нет поверь.

Они ответили "единственное что можем сделать дать структуру файла" ... дали

... Предлагаю :) упростить задачу: как получть

в

R: Record
     Pole1, Pole2: Integer;
  end;


данные из фаила ...
a.  1 int
b.  2 Int

PS. на сколько понял 1,2 это длина в байтах


Сергей М.   (2008-02-01 14:28:00) [37]


> дали структуру, отрывок прилепил выше


Если не хитришь и не несешь отсебячину, то фтопку такую контору вместе с ее "структурой"


Silver...   (2008-02-01 14:19:00) [38]

тут еще смущает

------- Может повториться несколько раз --- Begin
6.1   4 int
6.2  16 char
6.3  16 char
------- Может повториться несколько раз --- End

как с этим быть?


Silver...   (2008-02-01 14:18:00) [39]

а что значит прочесть файл

...

получить Record со всеми составляющими
типа

r.pole1
r.pole2
...


palva   (2008-02-01 14:02:00) [40]

> единственное дали структуру, отрывок прилепил выше. Сказали расбирайся.

Если бы еще пример файла с такой структурой был...
А так... чего разбираться в бессмыслице?
Можно прочитать по слогам, можно выучить наизусть...


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо