StringGridを利用してCSVファイルを読み込時内容に半角スペースが、入っていると取り込まれる列が、ずれてしまいます。スペースを,と同じように処理されているようです。同じくスペースが空いている場合でも半角スペースの場合のみずれてしまいます。半角スペースが、あいていても列がずれずに表示する方法を教えていただきたいのですがお願いいたします。
//-------------------------------------CSVファイル読み込み
var
f:textfile;
str,c1,c2,c3:string;
rowcnt :integer;
begin
AssignFile(f,'C:\TEST\test.CSV');
reset(F);
rowcnt:=2;
while not eof(F) do
begin
s:=0;
Readln(F,str);
StringGrid1.rows[rowcnt].CommaText:=str;
c1:=StringGrid1.cells[0,rowcnt];
c2:=StringGrid1.cells1,rowcnt];
c3:=StringGrid1.cells[2,rowcnt];
inc(rowcnt);
end;
こんにちは.Mr.XRAYです.
Delphiのバージョンにもよりますが.
StrictDelimiter
http://docwiki.embarcadero.com/VCL/ja/Classes.TStrings.StrictDelimiter
または,以下のページのList9を利用するというのはどうですか.
http://mrxray.on.coocan.jp/Halbow/Notes/N021.html
StrictDelimiter を使いましょう。
StringGrid1.rows[rowcnt].Delimiter := ',';
StringGrid1.rows[rowcnt].StrictDelimiter := True;
StringGrid1.rows[rowcnt].DelimitedText := str;
AssignFile ではなく、StringList で処理すると簡単になりますよ。
See Also:
http://homepage1.nifty.com/ht_deko/tech036.html
Mr.XRA様 DEKO様非常に迅速で的確なアドバイスありがとうございました。
無事解決しました。 ありがとうございます。
>無事解決しました。 ありがとうございます。
解決してよかったですね.
やっぱりStrictDelimiterを使用したのですか?
http://khe00221.image.coocan.jp/unit/index.html
の
CSVStringList.pas とか CSVUtilsUnit.pas とか
ツイート | ![]() |