Показать сообщение отдельно
  #22  
Старый 25.09.2012, 10:18
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

более правильный вариант

Код:
I := Length(St);  
BlockWrite(F, I, SizeOf(I)); 
BlockWrite(F, St[1], Length(St)*SizeOf(St[1]));
И соответственно
Код:
BlockRead(F,I,SizeOf(I));
UniqueString(S);
SetLength(S,I);
BlockRead(F,S[1], Length(St)*SizeOf(St[1]));

Вариант с BlockRead(F,S, Length(St)) работал, потому что запись и чтение делалось в одной процедуре, а на самом деле писалось не то и читалось не туда(посмотрите что на самом деле записано в файл). Но поскольку писалось и читалось по одному и тому же адресу, то ошибка была не видна.
Ответить с цитированием