掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
テキストファイルを読み込むには? (ID:16186)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
行の途中にはレコードの区切りがないのですね。そして、各フィールドは半角文字だけで出来ていると。 その場合は、TStringList でファイルを読み込んで処理するのは簡単です。 ここでは、TStringList で読み込むかわりに Memo1 に上のデータをコピペしました。 Memo1.Lines と TStringList は同型ですから同じように処理できます。 あらかじめ StringGrid1 を Form1 に貼り付けて置いてください。 procedure TForm1.FormCreate(Sender: TObject); begin with StringGrid1 do begin FixedCols := 0; FixedRows := 0; RowCount := 1; ColCount := 20; end; end; procedure ExtractData(const str: string; sl:TStringList); const Delim: set of Char = [' ', #9]; var i, start: integer; state: Boolean; begin state := false; for i := 1 to length(str) do begin if (str[i] in Delim) then begin if state then begin sl.Add(Copy(str,start,i-start)); state := false; end; end else begin if not state then begin start := i; state := true; end; end; end; if state then sl.Add(Copy(str,start,Length(str))); end; procedure TForm1.Button1Click(Sender: TObject); var sl: TStringList; i: integer; begin sl := TStringList.Create; try for i := 0 to Memo1.Lines.Count-1 do begin ExtractData(Memo1.Lines[i], sl); if sl.Count = 20 then begin StringGrid1.RowCount := StringGrid1.RowCount +1; StringGrid1.Rows[StringGrid1.RowCount-1].Assign(sl); sl.Clear; end; end; finally sl.Free; end; end; こんな感じでうまくいきました。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.