掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
空白のあるcsvファイルをStringGridに取り込むには? (ID:15794)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
お世話になっています。初めての投稿です、宜しくお願い致します。 空白項目のある、CSVファイルを取り込もうとしていますが うまくいきません。 空白がある部分を強制的にダブルクォーテーションで 囲もうとしていますが、やはり思い通りに取り込めません。 どなたかご教授して頂きますと助かります。 例) 品目 , 品目名称、オーダ 1TT1111,TEST 11 1111,D5ABCD111 2TT3333,TEST 33 4444,D5ABCD333 ↓ "1TT1111","TEST 11 1111","D5ABCD111" に強制変換後、CommaTextを使って StringGridに取り込めれば良いのですが 下記のソースだと "1TT1111","TEST" "11" " 1111","D5ABCD111" になります。 var i,j:integer; f:TextFile; x:string; theList:TStringList; InputFile: TextFile; TmpStringList: TStringList; TxtLineData: String; begin if OpenDialog1.Execute then begin I := 0; StringGrid1.RowCount := 1; StringGrid1.ColCount := 1; TmpStringList := TStringList.Create; AssignFile(InputFile, OpenDialog1.FileName); Reset(InputFile); try while not SeekEof(InputFile) do begin ReadLn(InputFile, TxtLineData); // 空白があるデータをダブルクオーテーションで囲む for j := 0 to TmpStringList.Count -1 do begin //','を'","'に置換(a","b","","c) TmpStringList[j]:= StringReplace(TmpStringList[j],',' , '","' ,[rfReplaceAll]); //最初と最後に'"'を付ける("a","b"," ","c") TmpStringList[j] := '"'+TmpStringList[j]+'"'; //'""'を'" "'に置換(a","b"," ","c) TmpStringList[j]:= StringReplace(TmpStringList[j], '""','" "', [rfReplaceAll]); end ; TmpStringList.CommaText := TxtLineData; if TmpStringList.Count > StringGrid1.ColCount then begin StringGrid1.ColCount := TmpStringList.Count; end; TmpStringList.Insert(0,' '); StringGrid1.RowCount := I + 1; StringGrid1.Rows[I].Clear; StringGrid1.Rows[I].Assign(TmpStringList); Inc(I); end; StringGrid1.FixedCols := 1; StringGrid1.FixedRows := 1; finally TmpStringList.Free; CloseFile(InputFile); end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.