我现在想把一个文本文件中的数据读到这样的数据结构中
文本文件的格式为
NO1:1234
NO2:4321
TIMESTART:02-12-23 24:15:32
TIMEOUT:02-12-23 24:16:20
TYPE:1NO1:1234
NO2:4321
TIMESTART:02-12-23 24:15:32
TIMEOUT:02-12-23 24:16:20
TYPE:2…………
有很多条
数据结构
{int no1
int n02
FTIME ftime_start
FTIME ftime_out
char type}
struct FTIME
{unsigned ft_sec;
unsigned ft_min; 
unsigned ft_hour;
unsigned ft_day;
unsigned ft_month;
unsigned ft_year;}
用c语言实现,应该怎么做?
最好能给出示范的源码:)

解决方案 »

  1.   

    我建议一个笨办法:
    putw(a.no1,f);
    putw(a.no2,f);
    putw(a.ftime_start.ft_sec,f);
    putw(a.ftime_start.ft_min,f);
    putw(a.ftime_start.ft_hour,f);
    putw(a.ftime_start.ft_day,f);
    putw(a.ftime_start.ft_month,f);
    putw(a.ftime_start.ft_year,f);
    putw(a.ftime_out.ft_sec,f);
    putw(a.ftime_out.ft_min,f);
    putw(a.ftime_out.ft_hour,f);
    putw(a.ftime_out.ft_day,f);
    putw(a.ftime_out.ft_month,f);
    putw(a.ftime_out.ft_year,f);
    putw(a.type,f);
    我想分想疯了.
      

  2.   

    FILE * fp = fopen("YourFile.txt","r");
    char szBuffer[200] = {0};
    struct YourStruct data;/*只读一个结构,其余的你再加*/
    /*读一行,放在szBuffer中,这个函数我就不实现了*/
    while (0 == strcmp(szBuffer,"") ReadLine(fp, szBuffer);
    fscanf(szBuffer, "NO1:%d",&data.no1);
    ReadLine(fp, szBuffer);
    fscanf(szBuffer, "NO2:%d",&data.no2);
    ReadLine(fp, szBuffer);
    fscanf(szBuffer, "TIMESTART:%d-%d-%d %d:%d:%d",
     &data.ftime_start.ft_year,&data.ftime_start.ft_month,&data.ftime_start.ft_days,&data.ftime_start.ft_hour,&data.ftime_start.ft_minute,&data.ftime_start.ft_second);ReadLine(fp, szBuffer);
    fscanf(szBuffer, "TIMEOUT:%d-%d-%d %d:%d:%d",
    &data.ftime_out.ft_year,&data.ftime_out.ft_month,&data.ftime_out.ft_days,&data.ftime_out.ft_hour,&data.ftime_out.ft_minute,&data.ftime_out.ft_second);ReadLine(fp,szBuffer);
    fscanf(szBuffer, "TYPE:%c",&data.type);
      

  3.   

    我这两天就给你写好,其实就是用link来读文件中的数据,因为你已经知道文件中数据的格式了,所以先读到你的struct中,然后连入link中,就可以了。其实这样的结构更好的办法是做成binary file,然后把没有个结构写入文件,方便。
      

  4.   

    用MFC支持吧,很方便的.
    CString 的Format
    然后用CFile 的Open,Read,Write很轻松就搞定了.