• 締切済み

Rubyを使用してcsvファイルを処理しているのですが、どうしてもでき

ayudaiaの回答

  • ayudaia
  • ベストアンサー率0% (0/0)
回答No.2

1.8系のFastrCSV , 1.9系のcsv が前提で話します。 すべての項目にダブルクォーテーションがついてもよければ、 書き込み時に :force_quotes => true オプションをつけると "abc","111","bbb","xxx","321" こうなります。 具体的な解決策でなくて恐縮ですが、 CSVの1行目にヘッダーをつけます。  "NAME","AGE,"ADDRESS","ZIP","PHONE" #=>ヘッダ "abc",111,bbb,"ccc","123" 読み込み時に :headers=>true オプションをつけます。 csv = CSV.read( "filename.csv" , :headers=>true ) すると、単なる配列ではなくて CSV::Table オブジェクトで読み込まれます。 csv['NAME'] で1列取り出せたりするので、 あとは、methodをひたすら駆使することで何とかなりそうですが。。。

関連するQ&A

  • CSVファイルの「”」について

    VB6でCSVファイルを読み込みたいのですが、 以下のような項目だと、1項目として読み込むことができません。 例) AAA,"BBB,CCC,"" """,DDD "BBB,CCC,"" """ を1項目として読み込みたいのですが ダブルコーテーションの括りの中に、更にダブルコーテーションがあると うまくいかないみたいです。 何か方法がありますでしょうか? Open DownLoadFile For Input As #1 Len = 32000 Input #1, rec Do Until EOF(1) 処理1 Loop close #1

  • 【Microsoft Excel】 .csv 以外のCSVファイルをExcelで開きたい!

    .csv 以外のCSVファイルをExcelで開きたいのですがどうしたらよいでしょうか? abcd.csvというExcelで問題なく開けるCSVファイルがあるとします。 これの拡張子を.xxx(又はその他、独自設定の拡張子)に変更して、Excelで開けるようにしようと思ったのです。 フォルダオプション>ファイルタイプ>新規(ボタン)」で「新しい拡張子の作成」ダイアログが開き、そこで ・ファイルの拡張子=.xxx ・関連付けられているファイル タイプ=Microsoft Excel CSV ファイル と設定して、abcd.xxxをダブルクリックでExcelが起動&ファイルオープンするまではいったのです。(アイコンも.csvファイルといっしょになりました。) しかし、 aaa,bbb ccc,ddd という内容のファイルが セルA1=aaa,bbb セルA2=ccc,ddd となり、csvファイルとして認識してくれていないみたいなのです。 ちなみに、元の.csvの場合にはちゃんと セルA1=aaa セルB1=bbb セルA2=ccc セルB2=ddd とExcelは表示してくれます。 どうにか上手い方法は無いものでしょうか! よろしくお願いいたします。

  • EXCEL→CSV保存時のダブルクォーテーションについて

    下記のようにEXCELマクロにてEXCELファイルをCSVファイルに保存しようとしています。 NewBook.SaveAs Filename:="test.csv", FileFormat:=xlCSV, CreateBackup:=False このとき、セル値にダブルクォーテーションが含まれていると、出力CSVファイルの値がダブルクォーテーションで囲まれてしまいます。 ●ダブルクォーテーションが含まれていない場合 セル値→A列:ABC     B列:DEF CSVファイル→ABC,DEF ●ダブルクォーテーションが含まれている場合 セル値→A列:A"C     B列:DEF CSVファイル→"A"C",DEF 後者の場合もダブルクォーテーションで囲まれないようにするにはどうすればよいでしょうか。

  • バッチ処理でCSVファイルコピーした後の記号削除方法

    こんにちは。バッチ処理作成初心者です。 Windows XP、エクセル2000 を使用しています。 複数のcsvファイルをバッチ処理(下記)でコピーしました。 copy /y aaa.csv+bbb.csv ccc.csv (結合させるcsvファイルは最大6つありますが、 上記コマンドでは2つのcsvファイルを結合させてます。) コピーしたcsvファイル「ccc」を開くと、必ず最終行A列に "・"という記号が現れます。 この記号を、「ccc」を開かずに削除する方法 もしくは、csvファイルをコピーしても記号が現れない方法を 教えてください。 (「ccc」は行数が最大で18万行を超えるため、いつも ファイルを開いて記号を削除することができません。)

  • rubyの文法について質問です。

    rubyの文法について質問です。 aaa = `diff -q bbb ccc` のような形でdiffコマンドの実行結果をaaaに格納したいのですが bbb及びcccを任意に入力したく、一度getsメソッドでbbb,cccそれぞれに文字列を代入したのですが、それをバッククォーテーション内で使用できず困っています。 なにか解決策がありましたらご教授いただけるとありがたいです。 よろしくお願いします。

    • ベストアンサー
    • Ruby
  • RubyでCSVファイルから検索するには??

    ruby初心者です。 よろしくお願いします。 以下のようなcsvファイルからユーザーの入力内容をキーに 該当する行を検索して表示させるというような処理を実行したいです。 name,email,tel andy,andy@yahoo.co.jp,090xxxxxxxx bob,bob@yahoo.co.jp,090xxxxxxxx amy,amy@yahoo.co.jp,090xxxxxxxx 入力例:amy 出力:amy,amy@yahoo.co.jp,090xxxxxxxx (該当する行を全て出力させたい) ご教授よろしくお願い致します。 環境:Win7、ruby2.0

  • phpのCSVの保存について教えてください

    下記のようにinputタグから値をphpにおくり、csvファイルに保存しようとしています。 値1に12345 値2に67890 値3にあいうえお というように値を送って保存し、csvファイルを開くと、 12345," 67890",あいうえお というように、値2として送ったものの先頭にダブルコーテーションとスペース、最後にダブルコーテーションが勝手に入ってしまいます。なぜ何でしょうか?対処法も含め教えていただければありがたいです。よろしくお願いします。 --------------------html---------------------------------- <form action="send.php" method="post"> 値1:<input type="text" name="aaa" > 値2:<input type="text" name="bbb" > 値3:<input type="text" name="ccc" > <input type="submit" value="送信する"> </form> --------------------php---------------------------------- <?php $val[0] = $_POST['aaa']; $val[1] = $_POST['bbb']; $val[2] = $_POST['ccc']; $fp = fopen("valdata.csv", "a"); fputcsv($fp, $val); fclose($fp); ?>

    • ベストアンサー
    • PHP
  • CSVファイルをperlプログラムで処理する場合

    すみません、度々perl初心者のものです。 CSVファイルを1行ずつ読み込んで処理をしたい場合、 1項目内のデータの中に改行がある場合、 どのような方法で対処出来るでしょうか? 例えば "aaa,bbb,ccc ddd,eee,fff" 上記のようにcccとdddの間に改行が入ってるため 本当は1レコードのはずなのに2レコードとして 処理を行ってしまう。 perlで何かやり方はあるのでしょうか? csvを加工するのもよいのですが、データが多量に あるため、プログラム上でなんとかしたいと思うのですが。。。 すみません、宜しくお願い致します。

    • ベストアンサー
    • Perl
  • VBAでCSVファイルのインポートについて

    ACCESS2003でCSVファイルのインポートを行うVBAをご教授下さい。 ただし、CSVファイルは各項目がダブルコーテーションではさまれており、カンマはありません。 1行目にヘッダーがあります。 DoCmd.TransferText acImportDelim, , FileName, ImportPath, True ↑ これだと、うまくインポートされませんでした。 大変困っております。 どうぞよろしくお願い致します。

  • CSVファイルからダブルクォーテーションを削除したい。VBS使用で。

    CSVファイルからダブルクォーテーションを削除したい。VBS使用で。 CSVファイルのダブルクォーテーションを外す方法が Wendy02さん回答の http://oshiete1.goo.ne.jp/qa3016163.html (タブ区切りデータからダブルコーテーションを外したい) を使用してみました。 〔使用前〕 "1","00030123","00000000000000000000","00000000000000000019","4220120","42201","","1" 〔使用後〕 1,00030123,00000000000000000000,00000000000000000019,4220120,42101,",1" 使用後、ダブルクォーテーションで囲まれていない項目があると、 ダブルクォーテーションが残ってしまいます。 .Pattern ="""([^""]+)""" の部分を変更すれば、良いと思うのですが教えていただけないでしょうか?