Последний столбец в TStringGrid

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Iv_
новенький
Сообщения: 36
Зарегистрирован: 08.01.2011 21:52:44

Последний столбец в TStringGrid

Сообщение Iv_ »

Добрый день.
Вопрос, скорее всего, не совсем по Lazarus.
У меня есть файл .txt. Я разбиваю его на слова, загоняю их в строковый массив и вывожу в StringGrid.
Файл имеет 5 строк и 6 столбцов. При выводе в таблицу шестой столбец остается пустым.
Вот код:

Код: Выделить всё

procedure TForm1.BitBtn4Click(Sender: TObject);
var f1: TextFile;
    w,s: string;
    i,j,n,m: integer;
    a: array [0..4,0..5] of string;

begin
  AssignFile(f1, 'srv\Exp.txt');
  Reset(f1);
  StringGrid1.RowCount:=5;
  StringGrid1.ColCount:=6;
  for i:=0 to 4 do
    begin
      ReadLn(f1,s);
      for j:=0 to 5 do
        begin
          if s[Length(s)] <> #9 then w:=w+#9;
          w:=Copy(s,1,Pos(#9,s)-1);
          Delete(s,1,Length(w)+1);
          a[i,j]:=w;
          StringGrid1.Cells[j,i]:=a[i,j];
        end;
    end;
  CloseFile(f1);
end;

Не подскажете, что я делаю не так?
Последний раз редактировалось Iv_ 19.01.2011 21:50:31, всего редактировалось 1 раз.
Аватара пользователя
Nik
энтузиаст
Сообщения: 573
Зарегистрирован: 03.02.2006 23:08:09
Откуда: Киров
Контактная информация:

Сообщение Nik »

Строки и столбцы, случаем, не перепутаны?
Iv_
новенький
Сообщения: 36
Зарегистрирован: 08.01.2011 21:52:44

Сообщение Iv_ »

Нет, не перепутаны.
Все, нашел ошибку. Ночью то ее и не заметил.
извините за глупый вопрос. Тему можно удалить.
Ошибка тут:
if s[Length(s)] <> #9 then w:=w+#9;
надо так:
if s[Length(s)] <> #9 then s:=s+#9;
Ответить