![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как прочесть фаил такой структуры [D7]
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]> единственное дали структуру, отрывок прилепил выше. Сказали расбирайся.
Если бы еще пример файла с такой структурой был...
А так... чего разбираться в бессмыслице?
Можно прочитать по слогам, можно выучить наизусть...