Показать сообщение отдельно
  #4  
Старый 28.10.2015, 14:16
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Так это не табуляция, это мусор в первой строковой переменной s1, поскольку она не заполняется ничем, просто невнимательность, вот так вроде сетка наполняется правильно
Код:
procedure TForm1.FormActivate(Sender: TObject);
var
fv1:TextFile;
s,s1,s2,s3,s4:string[255];
s5:string[2];
i,k:integer;
  begin
  StringGrid1.Cells[0,0]:='Цех';
  StringGrid1.Cells[1,0]:='Наименование изделия';
  StringGrid1.Cells[2,0]:='Наименование детали';
  StringGrid1.Cells[3,0]:='Количество деталей, шт.';

  AssignFile(fv1,'Изделия.txt');
  if not(FileExists('Изделия.txt'))
  then
  ShowMessage('Файла с указанным именем не сущетсвует')
  else
    begin
  Reset(fv1);
  Readln(fv1,s);
  i:=0;
  while not(SeekEof(fv1)) do
     begin
  inc(i);
  Readln(fv1,s);
  k:=Pos(#9,s);
  if k=0
then
ShowMessage('Строка №'+s5+' содержит ошибку')
else
        begin
s1:=Copy(s,1,k-1);
Delete(s,1,k);
k:=Pos(#9,s);
if (k=0) or (s1='')
then
ShowMessage('Строка №'+s5+'содержит ошибку')
else
          begin
s2:=Copy(s,1,k-1);
Delete(s,1,k);
k:=Pos(#9,s);
if (k=0) or (s2='')
then
ShowMessage('Строка №'+s5+'содержит ошибку')
else
            begin
s3:=Copy(s,1,k-1);
Delete(s,1,k);
k:=Pos(#9,s);
if (s3='')
then
ShowMessage('Строка №'+s5+'содержит ошибку')
else
              begin
ceh[i]:=s1;
StringGrid1.Cells[0,i]:=s1;
naim[i]:=s2;
StringGrid1.Cells[1,i]:=s2;
det[i]:=s3;
StringGrid1.Cells[2,i]:=s3;
kolich[i]:=StrToFloat(s4);
StringGrid1.Cells[4,i]:=s4;
end;
end;
end;
end;
end;
end;

n:=i;
CloseFile(fv1);
W1:=True;
end;
можно код и упростить, много повторений, пересмотрите немного логику
Ответить с цитированием