C#如何简单地读取CSV文件中的数据到数组?

C#如何简单地读取CSV文件中的数据到数组?,第1张

使用StreamReader打开文件,利用ReadLine方法运世可以一行一行旁备肢的读取CSV文件内容,使用ReadToEnd方法可以一次读取全部CSV文件内容,你可以一行一行的读取出字符串,然后使用Split方法把内容根据“,”分割成数组,代码如下:\x0d\x0aStreamReader reader = new StreamReader("文件完整滚此路径或相对路径,包含文件名")\x0d\x0astring line = ""\x0d\x0aList listStrArr = new List()//数组List,相当于可以无限扩大的二维数组。\x0d\x0aline = reader.ReadLine()//读取一行数据\x0d\x0awhile(line != null)\x0d\x0a{\x0d\x0alistStrArr.Add(line.Split(","))//将文件内容分割成数组\x0d\x0a\x0d\x0aline = reader.ReadLine()\x0d\x0a\x0d\x0a}

//随便写了一个,只能取到抛砖引玉的效果,时间有限。如果有不明白的地方再和我联系吧

#define MAXCHAR 100

int main()

{

FILE *pb

int i,num = 0,j = 0

char pchar[MAXCHAR]

char **ppstr

char *pstr,*ppchar

memset(pchar, 0, 100)

pb = fopen("D:\\pb.csv","r"核让)

if (pb == NULL)

{

printf("error!")

return

}

ppstr = (char **)malloc(5*sizeof(char *))//这个最多可以存5条数据

pstr = (char *)malloc(5*20)//最多5条数据,每个数据不超过20-1=19

for (i = 0i <5i++)

{

ppstr[i] = pstr + i*20

}

memset(pstr, 0 ,100)

fseek(pb, 0, SEEK_SET)

fread(pchar, 1, 100, pb)

ppchar = pchar

i = 0

while (*ppchar)

{

if (*ppchar == 0x2c)//csv文件中一条数氏氏前据和另外一条数据之歼清间分隔符0x2c

{

memcpy(ppstr[j], pchar+num,i - num)

j++

num = i+1

}

if (*ppchar == 0x0a)//CSV文件中的换行符

{

memcpy(ppstr[j], pchar+num,i - num)

j++

num = i+1

}

i++

ppchar++

}

for (i = 0i <ji++)

{

printf("%s\n", ppstr[i])

}

free(pstr)

free(ppstr)

return

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12279255.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存