• 締切済み

CSVにデータを保存するフォームのフィールド内に「,(コンマ)」がある場合の処理

ウェブフォームから送られた情報をCSVに保存する、というページを作っています。基本的にほぼ出来上がったのですが、最後に大問題が・・・。 複数のフィールド内に「,(コンマ)」を含むデータが入力されるのです。これの処理をどうすればよいでしょうか? 現在は「$param{$_} =~ s/,/、/g;」として、日本語の読点に置き換えていますが、実はこのフォームは海外用のものなので、2バイト文字の使用は不可。検索してみると、「フィールドから得たデータを"(ダブルクォテーション)で括ればよい」と書かれていましたが、その方法が分かりません・・・。 いづれの解決方法でも良いのですが、どなたか対応策を教えていただけますか?よろしくお願いします。

  • CGI
  • 回答数1
  • ありがとう数0

みんなの回答

  • sisya
  • ベストアンサー率39% (97/245)
回答No.1

必ずしもcgi=perlではないので、 最低限使用言語位は記載してくださいね。 ご要望の機能は以下のコードで実装できると思います。 $param{$_} =~ s/(.*,.*)/"$1"/;

関連するQ&A

  • CSV形式ファイルにある、カンマについて

    こんにちは。 現在、VB2005で、CSV形式のファイルを読むプログラムを 作っているのですが、CSV形式の1フィールドの中に カンマが入っているデータがあります。 フィールドの区切りのカンマではなく、文字としての カンマとして取り扱う場合は、そのカンマはどのように 変換すればいいのでしょうか? エスケープシーケンスという方法があるというところまでは わかったのですが、具体的にどのようにすればいいのかが わかりません。 よろしくお願いいたします。

  • アクセスのテーブルデータをCSV出力し、Nullフィールドは""にしたい場合

    こんばんは。 お世話になっております。 アクセスのテーブルのデータをcsvに吐きだすと、 "あ","い","う","え",,,"お","か" 以下のようにnullフィールドは""なしで,(カンマ)だけで区切られてしまいます。 これを,"",の形にしたいのですが、出力方法の設定等あるのでしょうか? ↓こういう形を "あ","い","う","え",,,"お","か" ↓このようにnullフィールドに""を付与したい "あ","い","う","え","","","お","か" ご存じの方いらっしゃいましたら是非とも教えて頂きたいと思います。 宜しくお願い致します。

  • データにカンマが入ったCSVデータのread方法

    VBにてCSVデータを読み込むロジックを組んでいるのですが データの中にカンマが入ったものがたまにあります。 通常通り読むとデータのカンマを区切りのカンマと間違え正しく変数に読み込まれません。 たとえばCSVデータが下記の場合 123,de-ta,12,000,jjjj 実際のデータは 123 de-ta 12,000 jjjj ですが 12,000を2個のデータと認識して 123 de-ta 12 0000 jjjj のようになってしまいます。 どなたか12,000をちゃんと読める方法をご存知の方お力をお貸しください。 よろしくお願い致します。

  • CSVカンマ区切りって知ってますか?

    WEB上で会員登録をしてもらった場合、会員データをHPで入力しますよね。そのデータを直接エクセルのデータ管理に飛ばしたいのですが・・その場合、データ形式をCSVカンマ区切りにしてFDで保存をしたいのです。 知りたい部分は、HPからダイレクトにエクセルにデータを飛ばす方法です。ご存知の方っ教えて下さい!困ってます・・・・

  • ACCESSで、コンマを付けてCSVをエクスポートしたい

    ACCESSで、数字のデータに、コンマを付けてCSVをエクスポートしたいのですが・・・ 表示ではコンマが付いていても、エクスポートするとコンマが付きません。 何か方法はないでしょうか?

  • カンマ区切りCSVファイルをVBAで読み込みたい

    こんにちは。EXCELのVBAに詳しい方、どうか教えてください! カンマ区切りCSVファイルをEXCELに読み込みたいのですが、 CSVファイルのデータが金額のため、データ自体にもカンマが含まれていて、 金額のカンマでも分割されてEXCELのセルに収まってしまいます。 データの区切りのカンマと、金額のカンマを区別して読み込む良い方法はないでしょうか。 とても困っているので、お解りになる方どうかご回答をお願いいたします。 ・CSVファイルのデータ   1,000 , 2,000 , 1,500 , 3,000 , 1,000 , 2,500 , 2,000  ↑金額のカンマでデータが分割されないように読み込みたいのですが・・・

  • CSVファイルの処理

    TextData = New Microsoft.VisualBasic.FileIO.TextFieldParser(FileName, System.Text.Encoding.Default) TextData.TextFieldType = FileIO.FieldType.Delimited TextData.SetDelimiters(",") TextData.TrimWhiteSpace = False While Not TextData.EndOfData Dim row() As String = TextData.ReadFields() For Each field In row       ・       ・       ・   Next End While こんな形でCSVファイルを読み出しているのですが、 カンマで区切られていても値の入っていないデータ(セル)は forループ内を通らず読み飛ばされ、次のデータの処理をしてしまいます。 ※例えば下記のようなCSVだったとすると、 野球 ,, サッカー , バスケ 処理は4回行ってほしいのに、2つ目の何もない箇所はとばされて 処理は3回しか行われません。 カンマで区切られていれば値が入っていなくとも処理を行うにはどうすればよいでしょうか?

  • csvファイルでの,(カンマ)の取扱について

    csvファイルをperlで取扱っています。 ,(カンマ)が含まれるデータは""で括ってやれば行がずれることなく入るのは分かっているのですが、今度は取り出すときどのようにしていいのか分かりません。 各行毎に一連のデータが羅列されていますが、それの分割方法を教えてください。 たとえば、 $bに,(カンマ)入りの文字列が入っていた場合、 ($a, $b, $c) = split(/,/, $query); とすると本来$bに入って欲しいデータの,(カンマ)から後の部分が$cに格納されてしまいます。(そこから先が1つずれます) これをずれずに分割させるにはどのようにしたらいいでしょうか? ちなみに ($a, "$b", $c) = split(/,/, $query); と試しにやってみましたが、エラーになってしまいました。 実は長年の悩みで、データを格納する際に,(カンマ)を別のあり得ないような文字列に置き換えて、取り出したあと,(カンマ)に戻すというやり方でやっていたのですが、1つのデータファイルを複数のperlで取扱うようになり、対応が難しくなってきたので、これを機にきちんとした方法でデータを取扱いたいと思っています。

    • ベストアンサー
    • Perl
  • Excelでcsvのフィールドが減る

    csvファイルをExcel2000のテキストファイルウィザードで開き、 再びcsvで保存した場合に、フィールド数(カンマの数)が減る という現象が起こりました。 再保存する際、空白セルが無視されるのかと考えましたが、 同ファイル内に、空白であってもフィールドが保存されている レコードもあります。 OSはWin2000 csvはテキストファイルウィザードで開けない為、 拡張子を一旦 txt に変えてから開いています。 原因、解決方法、何かヒントになりそうな事なら何でもよいので アドバイスよろしくお願いします。

  • カンマ区切りのCSVについて

    ブログの引越しの依頼を受け、元データ(CSV)をもとに 出力ページを作成しているのですが、 003,あああ,一昨日は晴れていました。,そうでしたね,2009/06/03 002,bbbbbb,昨日は晴れです。,そうですか,2009/06/02 001,aaaaaa,今日は晴れです。,そうですね,2009/06/01    ・    ・    ・ という内容のカンマ区切りのhoge.csvがあります。 (id,title,text,coment,day) これを $array=file(hoge.csv); for($i=0;$i<count($array);$i++){ $data=expolde(",",$array[$i]); ehco $data[2]; } としてカンマで分割し、それぞれのデータを整形したいのですが、 所々text部分($data[2])の内容が 「今日は,晴れです。<br />とても,気持ちが良いです。」 など「,」を使用していて、当然ですが   $data[2]を出力したら⇒「今日は」   $data[3]を出力したら⇒「晴れです。<br />とても」 となってしまいます。  ●元のCSVはいじれない。(データ量が多いため編集不可能)  ●前後($data[1]=title/$data[3]=coment)も決まった形ではない。(正規表現で抜き出せない)  ●SQLは使えない。 こういう場合どのような解決策があるでしょうか?

    • 締切済み
    • PHP