Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Заполнение StringGrid из текстового файла


Автор: artanis 21.3.2012, 18:27
Доброго времени суток.
У меня такая проблема. Есть компонент StringGrid. его надо заполнить из текстового файла. Файл получен экспортом из Exel. Разделитель - символ табуляции.
В файле 2 строки с самыми разными символами. При загрузке его в StringGrid получается непонятно что. Помогите пожалуйста разобраться.
Вот код:
Код

procedure TForm1.Open_BitBtnClick(Sender: TObject);
var
  L:TStringList;
  i, j:Integer;
  SBuf, s:String;
begin
  if Sender=Open_BitBtn then
   begin
     if OpenDialog1.Execute=True then
      begin
       SBuf:=OpenDialog1.FileName;
      end
     else {If input file path has not been defined}
      exit;
   end
  else
   begin
    SBuf:=ExtractFilePath(Application.ExeName);
   end;
 L:=TStringList.Create;
 L.LoadFromFile(SBuf);
 Tab1.RowCount:=L.Count+1;
 Tab1.ColCount:=2;
  for i:=0 To L.Count-1 do
    Begin
       s:= L[i];
       Tab1.Cells[0,i+1]:=Copy(s,1,Pos(#9,s)-1);
       Delete(s, 1, Pos(#9,s));
       j:=1;
       while Length(s)>0 do
       begin
         if j>Tab1.ColCount-1 then
           Tab1.ColCount:= Tab1.ColCount+1;
         if Pos(#9,s) = 0 then
         begin
           Tab1.Cells[j,i+1]:=s;
           break;
         end
         else
         begin
           Tab1.Cells[j,i+1]:=Copy(s,1,Pos(#9,s)-1);
           Delete(s, 1, Pos(#9,s));
           Inc(j);
          end;
        end;
       end;
 L.Free;

end;


Автор: LegionnaireFH 21.3.2012, 19:26
Только что проверил, код исправно работает и загружает все содержимое из файла в StringGrid в виде таблицы. P.S.: Кстати, этот код создан именно для того, чтобы эти строки в файле воспроизвести в таблицу в StringGrid, подобно той, которая была в Excel файле.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)