Название: Читаем файл по-байтно Отправлено: irv от Октябрь 10, 2010, 19:36 Есть файл с таким значением байтов:
00 02 00 01 ...(данные - 12 байт)...00 02 Как прочитать 3 и 4 байт и последущие 2 байта после данных?? Вот такой код: Код: int allpunkt = 2; //первые 2 байта (00 02) Необходимые пояснения. Первые 2 байта являются общим счетчиком (всего пунктов в файле), 3 и 4 - номер текущего пункта. Как читать текущий пункт, если данные между ними занимают 12 байт. Где ошибка? Спасибо. Название: Re: Читаем файл по-байтно Отправлено: xokc от Октябрь 10, 2010, 20:11 Не очень понял причем тут многопоточность. А сути - читать Assistent про QFile.seek
Название: Re: Читаем файл по-байтно Отправлено: Amigo_sa от Октябрь 11, 2010, 11:07 Сначала считайте первый char и short, а потом используйте
int QDataStream::readRawData( char * s, int len): Название: Re: Читаем файл по-байтно Отправлено: developer от Октябрь 11, 2010, 11:18 Все достаточно просто.
1. Открываєм файл. 2. Делаем seek на нужную позицию. 3. Читаем нужное количество байт. Псевдо код Нам нужно прочитать 10 байтов которие находяться по смещению 5 байтов от начала файла. 1. f = open("file", 'r').// здесь можно указать откуда делать seek - от начала или от конца.(До конца не уверен что здесь но возможность такая должна быть.) 2. f.seek(5) // перемещаем "курсор" на позицию 5 байтов относительно начала. 3. f.read(10) // читаем 10 байтов начиная с позиции 5. (точно не помню, но кажеться что "курсор" автоматически перемещается на позицию последнего прочитанного байта, в нашем случае 5+10=15 позиция, ето нужно проверить.) Название: Re: Читаем файл по-байтно Отправлено: developer от Октябрь 11, 2010, 11:22 А и еще. Мы можем делать seek как нам будет угодно. То есть бегать по всему файлу, от начала до конца - после seek(9) мы можем делать seek(4). И потом читать файл или определеное количество байт.
|