Тема: Ошибка
Показать сообщение отдельно
  #2  
Старый 20.04.2008, 23:51
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,100
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

посчтиай сам, к элементу с каким индексом ты обращаешься при последнем проходе цикла

Если у тебя в файле 16 строк и ты помещаешь в одну строку сразу 4 шт из них, то выглядеть это должно примерно так:

Код:
procedure TForm1.Load(AFileName: String);
var
  I : Integer;
  SL : TStringList;
begin
  SL := TStringList.Create;
  Try
    SL.LoadFromFile(AFileName);
    If (SL.Count Mod 4) <> 0 Then
      Raise Exception.Create('Кол-во данных не соответсвует. Должно быть целое число по 4.');
    I := 0;
    While I < SL.Count Do
      With frm_ofice.nlist.Items.Add Do
        Begin
          Caption:=f.Strings[i];
          SubItems.Add(f.Strings[I+1]);
          SubItems.Add(f.Strings[I+2]);
          SubItems.Add(f.Strings[I+3]);
          Inc(I,4);
        End;
  Finally
    SL.Free;
  End;
end;
Ответить с цитированием