• ベストアンサー

csv.ファイルをCで読み込みたいんですが?

実績データのCSVファイルでフィールドが15でレコードが1000000あるデータをC言語で読み込みたいんですが。なかなかうまくいきません。 どうしたらいいか、教えてください。

noname#96510
noname#96510

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

  • ベストアンサー
回答No.1

「教えて!goo > [技術者向] コンピューター > プログラミング > C&C++ 」で聞いた方が確実だと思います。 また、どこまで出来たのか記載すべきです。

noname#96510
質問者

お礼

有難う御座います。参考にしてみます。

関連するQ&A

  • csvファイルの実績データをC言語で解析するのですが...

    C言語を学び始めたばかりなのに、csvファイルの実績データでフィールドが15あり、レコード数が1000000近くあるファイルの15番目のフィールドを足し合わせて、出力するということをやっているのですが、まだまだわからないことだらけです。 1レコード目がカラム名なので2レコード目から足し合わせるんですがそこのところもよくわからずじまいで... 一応、書いたプログラムが #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { FILE *fp; char buffer[50],*p; int cnt, num, sum; fp = fopen("j0.csv","r"); if(fp == NULL){ printf("ファイルが開けませんでした。\n"); exit(-1); } while(fgets(buffer,fp) != NULL){ p = strtok(buffer,","); cnt = 1; while(p!=NULL){ num = atoi(p); printf("%d:%d,",cnt,num); p = strtok(NULL,","); cnt++; if(cnt==15) sum=sum+num } printf("\b\b \n"); } printf(%d \n",num); fclose(fp); return(0); } と書いたんですが、ぜんぜんな状態です。誰かご教授願えませんか?

  • csvファイルでの出力について

    C言語初心者です。 プログラミングにおいて質問なのですが、csvファイルを読み込み、 そのデータを用いて計算し、csvファイルで出力するという問題なのですが、C言語においてcsvファイル形式で出力するにはどのような方法がありますか? 補足:ラベル行に全角文字を入力しないといけません。

  • csvファイルのデータをCで読み込みたいのですが

    大学の研究でC言語を利用しています。 csvファイルの値を読み込んで計算したいのですが、読み込む方法(プログラム)が分かりません。 現在、csvファイルの値をテキストファイルにコピーアンドペーストし、それからCで読み込んでいます。 何かいい方法は無いでしょうか?

  • CSVファイル作成

     まだC,C++始めたばかりなので、よくわかりません。 以下のようなことを行いたい場合のプログラムをどなたか教えてください。 1)CSVファイルのファイル名は、日付(YYMMDD.CSV)。   ファイルが存在しない場合は、新規作成。   存在する場合は、データ追加。 2)データ要素は4項目(入力はキーボードから)。   この4項目+現在時刻(1項目)を1レコード   (1列)とする。

  • csv.ファイルをCで読み込みたいですが...

    csvファイルを読み込みたいんですが、レコードの1行目はカラム名なので読み飛ばしたいんですが、方法がわかりません。 だれか教えてもらえませんか?

  • CSVファイル読み込みでズレがおきる

    お世話になります。 Windows XP SP3、Access2003 で CSVファイルをインポートする処理をつくっています。 読み込むCSVファイルが大きく、必要ないフィールドが多いのですが、 下記のようにLine Input で全部読み込んで Splitでカンマ区切りでバラしてvarData(Variant型)にいれて レコードセット(インポート先の既存テーブル)に入れる時に、 必要に応じてデータ型を変更して フィールド指定ししていれるようにしています。 ところが、CSVファイルの中のデータで数件ほど ちゃんと読み込めないものがあり、 レコードセットにいれるときにエラーでとまってしまいます。 調べてみると、フィールドで取得した値がずれており、 前の方の複数のフィールドでNull値があった場合?に ずれ込むことがあるようです。 どうしたらこの現象はなおせるのか教えてください。 それとも・・・ このようにフィールド指定してレコードセットに入れ込むよりも 一度CSVファイルの全レコードを他のテーブルにインポートして、 そこからインポート先の既存の本テーブルにいれたほうがいいのでしょうか? よろしくお願いいたします。 Open ---- For Input As---- Line Input #lngFileNum, strData インポート先のテーブルをレコードセットで開く DAO、トランザクション使用 Do Until EOF(lngFileNum) Line Input #lngFileNum, strData 'データを配列へ varData = Split(strData, ",") With rs .AddNew !番号 = CLng(varData(0)) !名称 = varData(1) !受付日 = DateValue(varData(8)) !種別 = varData(10), "" !登録番号 = CLng(varData(11))           (以下略)

  • 1000000レコードもあるcsvファイルの実績データをC言語で計算しているのですが...

    C言語を学び始めたばかりなのに、csvファイルの実績データでフィールドが15あり、レコード数が1000000近くあるファイルの15番目のフィールドを足し合わせて、出力するということをやっているのですが、まだまだわからないことだらけです。 一応、書いたプログラムが #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { FILE *fp; char buffer[50],*p; int cnt, num, sum; fp = fopen("j0.csv","r"); if(fp == NULL){ printf("ファイルが開けませんでした。\n"); exit(-1); } while(fgets(buffer,fp) != NULL){ p = strtok(buffer,","); cnt = 1; while(p!=NULL){ num = atoi(p); printf("%d:%d,",cnt,num); p = strtok(NULL,","); cnt++; if(cnt==15) sum=sum+num } printf("\b\b \n"); } printf(%d \n",num); fclose(fp); return(0); } と書いたんですが、ぜんぜんな状態です。誰かご教授願えませんか?

  • csvファイルで実績データを読み込んで計算したいのですが...

    実績データでフィールドが15項目あって、2番目に日付が書かれていて、15番目に金額が書いてあるcsvファイルで、日付ごとの金額合計を出すというものなんですが、日付ごとの合計を出す方法が思いつかなくて困っています。誰かいい方法を教えてくれませんか?

  • C言語でcsvファイル入出力に関する質問です。

    data.csvオープン、data.csvのデータを読み込んで、a>b>cの優先順位で昇順にソートし、result.csvに書き込み、result.csvクローズです。 手順自体はわかっていますが、なにせC言語の初心者なので、ネットでソースコード見てもちんぷんかんぷんです。ソートも一次配列だけなら自力でできるが、優先順にソートするプログラムはどう書いたらよいでしょうか? ご教授お願いします。 C言語の初心者です、助けてください。 以下が例です:

  • Visual C++によるcsvファイルの読み込みについて

    Visual C++を使い始めたばかりの初心者です。 恐縮ながら、Visual C++でのcsvファイルの処理方法についておたずねさせていただければと存じます。 通常のスクリプト言語では、1行読んできて、"," で split をしてやることで、csvファイルを処理できるのですが、Visual C++ではどのようにするのが効率がいいのでしょうか? csvファイルを簡単に取り扱うことができるようなクラスライブラリが提供されているものなのでしょうか?それとも、1文字1文字、コンマを判定していくのが普通なのでしょうか? よろしくお願いいたします。