Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2015, 01:47   #1
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию Проблема с записью-чтением типизированного файла.

Есть файл. В определенный момент необходимо сделать дозаписование данных (подозреваю, что ошибка именно здесь). Rewrite - полностью переписывает, поэтому не подходит, делал так:

Код:
AssignFile(Fishki2, put+'\Smart Start\regented.dat');
  Reset(Fishki2);
  Seek(Fishki2, filesize(fishki2));
  Recreg2.value19 := hased3;
  Write(Fishki2, Recreg2);
  CloseFile(Fishki2);
  FileSetAttr(put+'\1\1.dat', faHidden);
В таком случае, значение дописывается в файл, но с очень большим промежутком от других данных (если смотреть через блокнот).

Когда возникает потребность считать именно это значение, получается пустое значение. Считываю так:
Код:
AssignFile(Fishki2,put+'\1\1.dat');
  Reset(Fishki2);
  Seek(Fishki2, 0);
  read(Fishki2, Recreg2);            
  stroka := Recreg2.value19;
  CloseFile(Fishki2);
При чем, если переменную строка заменить на, к примеру, Recreg2.value18 или любое другое значение, которое было записано изначально (до момента дозаписывания), все считывается идеально.
Как можно исправить эту проблему?
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 20.01.2015, 02:23   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,885
По умолчанию

Цитата:
В таком случае, значение дописывается в файл, но с очень большим промежутком от других данных (если смотреть через блокнот).
Кто же смотрит бинарные файлы "через блокнот"? Только любители геморроя.
Цитата:
Когда возникает потребность считать именно это значение, получается пустое значение. Считываю так:
Вот интересно. "Именно это значение" сначала дописываешь в конец файла. А считывать пытаешься в начале файла.
northener вне форума Ответить с цитированием
Старый 20.01.2015, 07:54   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
необходимо сделать дозаписование данных
А файл точно не текстовый? Для текстового дозапись делается с открытием через Append() а не Reset().
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.01.2015, 08:10   #4
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Давно рекомендовано на TFileStream перейти...
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с записью и чтением из файла при шифровании dolphin705 Общие вопросы Delphi 8 25.10.2011 16:13
Проблема с чтением из типизированного файла BeCTHuK Паскаль, Turbo Pascal, PascalABC.NET 2 05.10.2011 20:57
Проблемы с записью/чтением типизированного файла khrenkov Общие вопросы Delphi 1 20.09.2010 15:09
Проблема с чтением типизированного файла. Вадим Буренков Общие вопросы Delphi 8 28.05.2009 13:31
проблема с чтением из файла Tesmont Общие вопросы C/C++ 0 20.05.2009 19:39