線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3020
推到 Plurk!
推到 Facebook!

關於CSV讀取的問題,Strtok的用法

尚未結案
tim0214
一般會員


發表:4
回覆:2
積分:1
註冊:2005-10-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-11 18:39:36 IP:60.248.xxx.xxx 未訂閱
請問各位大大...(C語言的問題) 我現在有個CSV檔案內容如下 我現在想要將值一個個讀入,但是,我沒辦法讀的很準確 所以想要問一下各位好心的大大 怎麼讀阿,,,, 我想要將值一個個讀進變數中 最令我頭痛的是,每個欄位為都不是固定的,請各位大大指教囉 Document_ID,Document_Year,File_Name,File_Path,File_Date A00102A10002,2005,A00102A10002.pdf,C:\PDF\新資料夾 (2),2005/11/4 上午 11:39:50 A00102A10003,2005,A00102A10003.pdf,C:\PDF\新資料夾 (2),2005/11/4 上午 11:39:50 A00102B10001,2005,A00102B10001.pdf,C:\PDF\新資料夾 (2),2005/11/9 下午 07:18:22 A00102C10001,2005,A00102C10001.pdf,C:\PDF\新資料夾 (2),2005/11/9 下午 07:18:22 A00102C10002,2005,A00102C10002.pdf,C:\PDF\新資料夾 (2),2005/11/9 下午 07:18:22 A00102C20001,2005,A00102C20001.pdf,C:\PDF\新資料夾 (2),2005/11/9 下午 07:18:23
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-12 12:02:27 IP:211.22.xxx.xxx 未訂閱
既然是C語言問題,用C語言老方法吧!
//---------------------------------------------------------------------------
#include 
#include 
#include 
#pragma hdrstop
//---------------------------------------------------------------------------
#define MAXCOL     60
#define MAXLINE    256
#define SEPERATOR  ','
int main(void)
{
 FILE *fp;
 char Document_ID[MAXCOL],Document_Year[MAXCOL],File_Name[MAXFILE],File_Path[MAXPATH],File_Date[MAXCOL];
 char Line[MAXLINE];
 char *Pos;
 int Index;     fp = fopen(".\\test.csv","rt");
 fgets(Line,MAXLINE-1,fp); // Escape first title line
 while (! feof(fp) )
 {
  fgets(Line,MAXLINE-1,fp);
  Pos = Line;
  Index = 0;
  while(1)
  {
   if ( *Pos != SEPERATOR )
        Document_ID[Index  ] = *Pos  ;
   else
       break;
  }
  Document_ID[Index] ='\0';
    Pos;      Index = 0;
  while(1)
  {
   if ( *Pos != SEPERATOR )
        Document_Year[Index  ] = *Pos  ;
   else
       break;
  }
  Document_Year[Index] ='\0';
    Pos;      Index = 0;
  while(1)
  {
   if ( *Pos != SEPERATOR )
        File_Name[Index  ] = *Pos  ;
   else
       break;
  }
  File_Name[Index] ='\0';
    Pos;      Index = 0;
  while(1)
  {
   if ( *Pos != SEPERATOR )
        File_Path[Index  ] = *Pos  ;
   else
       break;
  }
  File_Path[Index] ='\0';
    Pos;      Index = 0;
  while(1)
  {
   if ( *Pos != '\r' && *Pos != '\n' && *Pos)
        File_Date[Index  ] = *Pos  ;
   else
       break;
  }
  File_Date[Index] ='\0';      printf("Document_ID=%s,Document_Year=%s,File_Name=%s,File_Path=%s,File_Date=%s\n",Document_ID,Document_Year,File_Name,File_Path,File_Date);
 }
 fclose(fp);
 getchar();
 return 0;
}
//--------------------------------------------------------------------------- 
----------------------- Practice makes perfect.
系統時間:2024-05-10 7:48:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!