Добрый день.
после кропотливого изучения мною написанного, обнаружился совершенно не логичный и не понятный глюк.
Есть функция:
function SaveContactListToFile(CL: PRRECEIVE_CONTACT_LIST): Boolean;
var
k: Integer;
DBF: file of CONTACT_LIST;
begin
AssignFile(DBF, UInf.Folder + CF_ContactLst);
ReWrite(DBF);
for k := 1 to 255 do begin
CL.CONTACT_LIST[k].STATUS := STATE_OFFLINE;
if (CL.CONTACT_LIST[k].ID > 0) and (CL.CONTACT_LIST[k].ID < $FFFF) then begin
Write(DBF, CL.CONTACT_LIST[k]);
end;
end;
CloseFile(DBF);
end;
но почему-то переменная
k идет в цикле от 255 до 1 (т.е. в обратку, как например при
downto), а так же игнорируется условие
if (CL.CONTACT_LIST[k].ID > 0) and (CL.CONTACT_LIST[k].ID < $FFFF) thenНО! если вставить строку,
ShowMessage(IntToStr(k)) после
for k := 1 to 255 do begin, то тогда все нормально!
Не пойму как исправить?!