Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.21;
Скачать: CL | DM;

Вниз

Помогите новечку разобратся с глючным циклом for.to.do   Найти похожие ветки 

 
Ace   (2003-04-09 22:38) [0]

Пишу:

procedure TForm1.Button1Click(Sender: TObject);
var
SOLFile: file of Char;
BufferBytes1: array [1..25] of Char;
i : Integer;
begin
AssignFile(SOLFile, "C:\test1.txt");
Reset(SOLFile);
for i := 1 to 4 do {наблюдайте за значением i}
begin
BufferBytes1[i] := "a";
Write(SOLFile, BufferBytes1[i]);
end;
Truncate(SOLFile);
CloseFile(SOLFile);
end;

нажимаю F7, смотрю. Этот "жук" сначала присваивает i значение 4,
потом 3, потом 2, а потом 1, после чего заканчивает цикл, и идет глючить дальше.
Если написать:
for i := -4 to 4 do…
то он сначала присваивает i значение 9(!), потом 8, … потом 1,
потом заканчивает цикл.
Дальнейшие эксперименты ввели меня в полное замешательство.
От смены компьютера и версий дельфи глюк не исчезает.
Кто знает в чем дело, помогите please!


 
Anatoly Podgoretsky ©   (2003-04-09 22:43) [1]

Надеюсь ты догадался посмотреть содержимое файла?


 
NA ©   (2003-04-09 22:50) [2]

Компилятор и не обязан следовать твоему коду, имхо. Он следует своей тропой.


 
Palladin ©   (2003-04-09 23:03) [3]

здесь содержимое не причем... компилятор оптимизирует твой код на скорость...

при исполнении этого все будет нормально

procedure TForm1.Button1Click(Sender: TObject);
var
SOLFile: file of Char;
BufferBytes1: array [1..25] of Char;
i : Integer;
begin
AssignFile(SOLFile, "C:\test1.txt");
Reset(SOLFile);
for i := 1 to 4 do {наблюдайте за значением i}
begin
BufferBytes1[i] := chr(ord("a")+i);
Write(SOLFile, BufferBytes1[i]);
end;
Truncate(SOLFile);
CloseFile(SOLFile);
end;


 
Palladin ©   (2003-04-09 23:06) [4]

и пожалуйста!!!
не надо гнать на делфи... толпа народу использует цикл for и ты тут такой одинокий взираешь на его глючность...


 
Юрий Зотов ©   (2003-04-09 23:33) [5]

> Ace

Это не глюк, а нормальная работа оптимизирующего компилятора. Если мешает, отключите оптимизацию в опциях проекта.



Страницы: 1 вся ветка

Текущий архив: 2003.04.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
3-67185
Наташа
2003-03-22 08:42
2003.04.21
Транзакции. откат не работает.


1-67388
a$modeu$
2003-04-10 14:10
2003.04.21
Пожалуйста разесните мне


1-67235
Гость
2003-04-09 09:01
2003.04.21
Как программно создать *.txt файл


14-67474
Феликс
2003-04-03 02:54
2003.04.21
Жалко, конечно, но похоже Ираку кирдык....


4-67616
dnn
2002-12-15 23:15
2003.04.21
перехват нажатий клавиатуры