![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день, уважаемые форумчане.
Возникла проблема при чтении одного из полей записи, которая была предварительно слита в файл через TFileStream. Суть: Была record, полям которой присваивались значения некоторых переменных, а потом эта запись заливалась в файл. В другом методе из этого файла считывались данные и заливались в эту же record. Все работало отлично и без нареканий, пока я не решил добавить в запись новое поле. Проблема возникла при чтении данных из файла - в это новое поле не пишется ничего, хотя все остальные поля прогружаются исправно. Привожу кусок кода. Может быть замыленный взгляд пропустил какую-то мелочь. Заранее спасибо за помощь. Код:
var Count: integer; protocol: string= '0.04.02.00'; ... type RTempField= record //для справки в ней так же есть и массивы. ... count: integer; protocol: string; //вот проблемное поле. пробовал менять тип на integer (с изменением типа переменной разумеется) - результата не принесло. ... end; procedure TMasField.SaveToFile(FileName: string); var TempField: RTempField; FileData: TFileStream; begin ... TempField.count:= Count; TempField.protocol:= protocol; //прогонял дебаггером - в поле записи значение стоит ... FileData:= TFileStream.Create(FileName, fmCreate); FileData.Write(TempField, sizeof(TempField)); FileData.Free; end; procedure TMasField.LoadFromFile(FileName: string); var FileData: TFileStream; TempField: RTempField; begin FileData:= TFileStream.Create(FileName, fmOpenRead); FileData.Read(TempField, sizeof(TempField)); FileData.Free; if (TempField.protocol) < (protocol) then //А вот здесь в поле записи уже стоит "", хотя должно быть загружено из файла. begin ... end; Count:= TempField.count; //Тут все работает нормально. ... end; |