вопрос по типу string
От: Аноним  
Дата: 24.04.05 17:49
Оценка:
Я не знаком с Дельфи глубоко.
В одном проекте на Дельфи в файл записывается строка типа string:
MyStruct = record
     CameraID : string[255]; //пишем в бинарный файл, т.е. целиком весь объект
end;


Потом читаем его простым
MyStructObj : MyStruct;
BlockRead(File,MyStructObj, SizeOf(MyStruct) );


Мне надо прочитать этот файл на С++, скажем в массив символов char Str[];

Как это сделать?
Re: вопрос по типу string
От: raskin Россия  
Дата: 24.04.05 18:01
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я не знаком с Дельфи глубоко.

А>В одном проекте на Дельфи в файл записывается строка типа string:
А>
А>MyStruct = record
А>     CameraID : string[255]; //пишем в бинарный файл, т.е. целиком весь объект
А>end;
А>


А>Потом читаем его простым

А>
А>MyStructObj : MyStruct;
А>BlockRead(File,MyStructObj, SizeOf(MyStruct) );
А>


А>Мне надо прочитать этот файл на С++, скажем в массив символов char Str[];


А>Как это сделать?


Неплохо бы почитать файл для уточнений, но, насколько я помню, там 1-2 байта на длину строки, а потом сами байты — штук 255. В типе String[255] на длину должны бы давать 1 байт. Если это так — читается байт length, потом 255 символов в массив data, потом
data[length]=0;
Re: вопрос по типу string
От: _Student_ Россия http://www.totalprogramming.narod.ru/
Дата: 24.04.05 18:49
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я не знаком с Дельфи глубоко.

А>В одном проекте на Дельфи в файл записывается строка типа string:
А>
А>MyStruct = record
А>     CameraID : string[255]; //пишем в бинарный файл, т.е. целиком весь объект
А>end;
А>


А>Потом читаем его простым

А>
А>MyStructObj : MyStruct;
А>BlockRead(File,MyStructObj, SizeOf(MyStruct) );
А>


А>Мне надо прочитать этот файл на С++, скажем в массив символов char Str[];


А>Как это сделать?


А почему бы не использовать iostream или хотя бы старый добрый stdio???
Я не волшебник, я только учусь...
Re[2]: вопрос по типу string
От: Аноним  
Дата: 24.04.05 18:59
Оценка:
Здравствуйте, _Student_, Вы писали:

_S_>А почему бы не использовать iostream или хотя бы старый добрый stdio???

Именно так и пытаюсь сделать, но неясности с форматом string[255] , как он записан в файле?
Re[2]: вопрос по типу string
От: Аноним  
Дата: 24.04.05 19:04
Оценка:
Здравствуйте, raskin, Вы писали:

R>Неплохо бы почитать файл для уточнений, но, насколько я помню, там 1-2 байта на длину строки, а потом сами байты — штук 255. В типе String[255] на длину должны бы давать 1 байт. Если это так — читается байт length, потом 255 символов в массив data, потом

R>
R>data[length]=0;
R>


Файл большой, там намешано много типов, поэтому нужна именно точная инфа про то , сколько где байт получается.
Re[3]: вопрос по типу string
От: mkopachev  
Дата: 25.04.05 05:20
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Здравствуйте, _Student_, Вы писали:


_S_>>А почему бы не использовать iostream или хотя бы старый добрый stdio???

А>Именно так и пытаюсь сделать, но неясности с форматом string[255] , как он записан в файле?
Байт на длинну, а затем 255 Char-ов (даже если хвост не используется, и длина строки ментше 255). Для твоего случая все просто — длина строкив файле всегда будет 256. Первый байт — собсвенно длина осмысленой строки, сразу за ним — символы. Не используемый хвос строки может быть заполнен чем угодно.

С уважением Михаил Копачев
... << RSDN@Home 1.1.4 @@subversion >>
Re[3]: вопрос по типу string
От: Slava Antonov Россия http://deadbeef.narod.ru
Дата: 25.04.05 08:24
Оценка:
Hello , you wrote:

> Именно так и пытаюсь сделать, но неясности с форматом string[255] , как он записан в файле?


Сначала байт, в котором хранится длина строки, затем идут сами символы.

--
Всего хорошего, Слава
Posted via RSDN NNTP Server 1.9
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.