• ベストアンサー

csvファイル 二重引用符付き

現在、cビルダーの TStrings.CommaText を使用してcsvファイルを作成しています。文字列の前後に二重引用符を付けたいのですが、どなたか作成方法を教えて下さい。 現在 1 ,I ,2 ,1 となっているデータを"1","I","2","1"のように出力する方法をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.2

TStrings.CommaText を使った結果が 1 ,I ,2 ,1 ということですか? だとすると、TStrings.CommaText を使う前は 1 I 2 1 というデータを持っている、ということですか? とするならば、 sprintf(data, "\"%s\"", element); のようにして 1 から "1" を組み立てて(以下同様)、それらをTStrings.CommaText で カンマ区切りにすればよいのではないでしょうか。

a-tomioka
質問者

お礼

早速の回答ありがとうございます。 初心者なもので、 sprintf(data, """%s""", element); にしていました。 上記のように指定しても二重引用符が付かず困っていました。 根本的な二重引用符の使い方がわかっていませんでした。 おかげさまで、解決いたしまた。 ありがとうございました

その他の回答 (2)

回答No.3

TStringList *strlst = new TStringList; strlst->CommaText = "1,I,2,1";//元の文字列 String str = "\"" + strlst->Strings[0]; for (int i = 1;i < strlst->Count;i++) { str = str + "\",\"" + strlst->Strings[i]; } str = str + "\""; delete strlst; Application->MessageBox(str.c_str(),str.c_str(),MB_OK); てゆ~こと?

a-tomioka
質問者

お礼

早速の回答ありがとうございます。 初心者なもので、根本的な二重引用符の使い方がわかっていませんでした。 おかげさまで、解決いたしまた。 ありがとうございました

  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.1

>現在 1 ,I ,2 ,1 となっているデータを"1","I","2","1"のように出力する方法 strtok() あたりの関数を使って 1 I 2 1 の各トークンを切り出します。 切り出したトークンの前後に " ", を付けて出力すれば、所望のCSVファイルが完成します。 なお、この方法を使うと最後にカンマが付きますが、 "1","I","2","1" と "1","I","2","1", とは実質的に同じですので問題ありません。

a-tomioka
質問者

お礼

早速の回答ありがとうございます。 質問のしかたが悪かったのですが、現在 TStrings.CommaText を 使用していて、これに変わる関数が無いかと思い質問いたしました。  関数が無い場合は、回答を頂いたように一度出力したデータを変換しようと思います。 ありがとうございました。

関連するQ&A