Форум: "Начинающим";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
ВнизНужна помощь Найти похожие ветки
← →
Marat © (2006-11-08 08:29) [0]Здравствуйте, мастера.
Вопрос такой.
Считываю текстовый файл.
var
F: TextFile;
S: string;
i: integer;
begin
try
AssignFile(F, "C:\Projects\Bazis\T2_20061101.txt");
Reset(F);
SG.ColCount := 1;
SG.RowCount := 1;
while not EOF(F) do
begin
ReadLn(F, S);
OemToChar(@S[1],@S[1]);
SG.Col := 0;
while Pos(" ", S) > 0 do
begin
SG.Cells[SG.Col, SG.Row+1] := Copy(S, 1, Pos(" ", S)-1);
Delete(S, 1, Pos(" ", S));
if SG.ColCount - SG.Col = 1
then
begin
SG.ColCount := SG.ColCount + 1
end;
SG.Col := SG.Col + 1;
end;
SG.Cells[SG.Col, SG.Row+1] := S;
SG.RowCount := SG.RowCount + 1;
SG.Row := SG.Row + 1;
end;
SG.RowCount := SG.RowCount - 1;
finally
CloseFile(F);
end;
этот алгоритм верен для файла, в котором слова разделены пробелом.
А у меня файл, в котором между словами может быть 1-8 пробелов. Как быть?
← →
Орион © (2006-11-08 08:51) [1]есть такая функция
TrimLeft
← →
MBo © (2006-11-08 08:58) [2]
procedure TForm13.Button2Click(Sender: TObject);
var
List, TempList: TStringList;
s: string;
i: Integer;
begin
List := TStringList.Create;
TempList := TStringList.Create;
List.LoadFromfile("E:\a.txt");
SG.RowCount := List.Count;
for i := 0 to List.Count - 1 do begin
s := List[i];
OemToCharBuff(PChar(s), PChar(s), Length(s));
TempList.CommaText := s;
if SG.ColCount < TempList.Count then
SG.ColCount := TempList.Count;
SG.Rows[i].Assign(TempList);
end;
List.Free;
TempList.Free;
end;
← →
Marat © (2006-11-08 12:22) [3]Спасибо большое! Помогло!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.036 c