Да, спасибо! Но что делать если не изменять лог файл?
При записи

arrStr:= SplitString(sl[i], '; ');

пропускаются значения.. может быть через обозначение пробела #32?

Получается, что во время формирования массива им нельзя пользоваться?..

Может конечно и туплю, но не пойму почему не работает IF:

///заполнение таблицы логов
procedure Form1_BSearchLog_OnClick (Sender: string; var Cancel: boolean);
var
    NxTextColumn: TNxTextColumn;
    i, i1, j, c: integer;
    SL: TStringList;
    arrStr: array of string;
    SerNum, SerNumArr, InvNum, f: string;
begin
    SerNum := Form1.SerNum.Text;
    InvNum := Form1.InvNum.Text;
    //showMessage (SerNum+' '+InvNum);
    // create columns
    SL := TStringList.Create; //создаем список строк
    F := ExtractFilePath( Application.ExeName ) + 'log.txt';
    SL.LoadFromFile(f);

    c := SL.count - 1;
    frmLogEquip.TabLogEq.Columns.Clear;
    frmLogEquip.TabLogEq.AddRow(c);

    for i:=0 to 9 do   //добавляем колонки и заголовки
    begin
        try
            frmLogEquip.TabLogEq.Columns.Add(TNxTextColumn);
            //frmLogEquip.TabLogEq.Columns[i].Color := clWhite;
            except
        end;
    end;

    frmLogEquip.TabLogEq.Columns[0].Header.Caption := 'Дата';
    frmLogEquip.TabLogEq.Columns[1].Header.Caption := 'Время ' ;
    frmLogEquip.TabLogEq.Columns[2].Header.Caption := 'Статус';
    frmLogEquip.TabLogEq.Columns[3].Header.Caption := 'Тип';
    frmLogEquip.TabLogEq.Columns[4].Header.Caption := 'Модель';
    frmLogEquip.TabLogEq.Columns[5].Header.Caption := 'Сер. номер';
    frmLogEquip.TabLogEq.Columns[6].Header.Caption := 'Инв. номер';
    frmLogEquip.TabLogEq.Columns[7].Header.Caption := 'Место';
    frmLogEquip.TabLogEq.Columns[8].Header.Caption := 'Комментарий';
    frmLogEquip.TabLogEq.Columns[9].Header.Caption := 'Пользователь';

    i1 := 1; //индекс выборочных строк

    for i := 0 to c do   //заполнение таблицы из файла
    begin
        arrStr:= SplitString(sl[i], ';');

        ShowMessage (arrStr[5] + ' ' + SerNum + #13#10 + arrStr[6] + ' ' + InvNum ); //проверка

        if (SerNum = arrStr[5]) AND (InvNum = arrStr[6]) then    //в цикл не заходит!??
            begin
                for j := 0 to 9 do
                begin
        frmLogEquip.TabLogEq.Cells[j,i1] := VarToStr(arrStr[j]);
        i1 := i1+1;
        //showMessage (frmLogEquip.TabLogEq.Cells[j,i]);
                end;
            end;
    end;
//frmLogEquip.TabLogEq.LoadFromTextFile(f, ';');
frmLogEquip.TabLogEq.BestFitColumns(bfBoth); //автоподбор ширины по содержимому ячеек и названию колонок
end;

begin

end.

В строках таблицы 1 находятся признаки оборудования (серийный номер, цвет, место и т.д). Далее конкатенируем строку в ячейку и помещаем ее в таблицу 2, где столбцы это местонахождение оборудования.

Добрый вечер!
Никак не могу решить такую задачку: есть таблица с оборудованием (Equipment), у оборудования есть набор признаков (Серийный номер (text), модель (combobox), место расположения (combobox) и т.д.) Нужно создать динамическую таблицу в колонках которой будут появляться места расположения оборудования, а в соответствующей ячейке название оборудования. И при нажатии на ячейку хорошо бы получить все признаки (сер. номер, модель и т.д.). Пробовал делать через массивы и рекорды.. но почему то не получается ((