![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Баг при работе с областью памяти
S-C-L © (2012-01-02 17:48:00)Есть структура:
TVal = record
case byte of
0 : (u08_0, u08_1, u08_2, u08_3 : byte;);
1 : (u16_0, u16_1 : word;);
2 : (u32 : Cardinal;);
3 : (i32 : Integer;);
4 : (f32 : single;);
5 : (data : Pointer;);
end;
и чтение из файла в эту структуру:
blockRead(fFile,len32,4,Res);
if len32 < 0 then
begin
Result := false;
exit;
end;
TempStr := '';
GetMem(val.fVal.data,len32);
for len8 := 0 to len32 - 1 do
begin
BlockRead(fFile,TempByte,1,Res);
TempStr := TempStr + chr(tempByte);
end;
copyMemory(val.fVal.data,@TempStr,len32);
когда я читаю из файла 1ну переменную(текст) - все нормально
но когда я пытаюсь читать вторую переменную - 1ая пропадает
подскажите где у меня ошибка
RWolf (2012-01-02 21:18:00) [1]изучай TReader/TWriter.
S-C-L (2012-01-02 19:02:00) [2]теперь мучает другой вопрос:
нужно сделать эффект присутствия структурных типов данных
чтобы описание, а также поля, методы, операторы загружались из внешнего файла, а не хранились внутри приложения
S-C-L (2012-01-02 19:00:00) [3]решил проблему другим способом
созданием дополнительной переменной с типом string в структуре
MBo (2012-01-02 18:07:00) [4]Не описаны переменные, однако последняя строка наверняка неверная (указатель на строку)
S-C-L (2012-01-02 18:03:00) [5]мне нужно чтобы в переменной можно было хранить любой тип данных:
строку, структуру, объект, класс, и т.д.