C/C++の宿題を片付けます 94代目
■ このスレッドは過去ログ倉庫に格納されています
0523デフォルトの名無しさん
2007/08/03(金) 22:08:28後ろのほうのデータを取り出す時に遅くなるけどよければどうぞ
/*----- csv ファイルからデータを取り出す関数 -----*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define VALUE_LEN_MAX 256
#define VALUE_SCAN_FMT "%256[^,\n]"
int get_value(FILE *fp, int column, int row, void *buf, int buf_size){
char temp[VALUE_LEN_MAX+1]="";
size_t cur_pos;
int i, j, ret=1;
if(fp==NULL || column<=0 || row<=0 || buf==NULL) return 0;
cur_pos=ftell(fp);
fseek(fp, 0L, SEEK_SET);
for(i=1;i<column;i++) fscanf(fp, "%*[^\n]\n");
for(j=0;j<row && ret==1;j++) ret=fscanf(fp, VALUE_SCAN_FMT, temp);
fseek(fp, cur_pos, SEEK_SET);
if(ret==1) strncpy(buf, temp, buf_size);
return (ret==1);
}
/*----- "A3" の値が欲しい時の例 -----*/
FILE *fp;
char buf[100];
fp=fopen("test.csv", "r");
get_value(fp, 3, 1, buf, sizeof(buf));
■ このスレッドは過去ログ倉庫に格納されています