Показать сообщение отдельно

  #4  
Старый 08.09.2007, 19:59
Red_Red1
Участник форума
Регистрация: 12.01.2007
Сообщений: 262
С нами: 10172486

Репутация: 874
По умолчанию

Цитата:
Сообщение от Joker-jar  
Вот так правильней будет. Но сути проблемы не решает
Не будет правильней. Объявление переменой в процедуре не инициализирует ее! У нас идет обращение к переменой s в процедуре putfile('headers.txt'); в строке readln(f,s);. Но процедура putfile('headers.txt'); расположена в самом начале тела программы
begin
putfile('headers.txt');
writeln;
getmem(buffer, 256);
if GetEnvironmentVariable .....

и переменная s в этот момент еще не инициализирована, т.е. ни чему не равна. ЕЕ инициализация происходит уже НИЖЕ в строках
s := '';
for i := 1 to contlength do
begin
read(ch);
s := s + ch;
.....
А значит в начале програмы процедура putfile('headers.txt'); выполняется с неполными данными...
нету s. Она хоть и объявлена в процедуре но не инициализирована... Оттрасируй програмку и посмотри на значение s при выполнении putfile('headers.txt'); вначале...
 
Ответить с цитированием