从.txt文件中提取数据:解决方案

从.txt文件中提取数据:
我的.txt文件中有下面一大堆的数据如下:


mydata.txt如下:
************************************************************************************************************************************  
 *RB-0060 BOC JIANG NING S TELLER DAILY REPORT DATE: 070901 PAGE: 1 *  
************************************************************************************************************************************  
  BANK:4447807 TELLER:00306  
  VCH SU TIME TX AC-NO DC CHR CUU TX-AMT PER DUE-DATE MEMO REF-NO NAME  
----------------------------------------------------------  
  000002 71 082555 0011 4447807010000000000071 C 00 01 250,000.00  
  TELLER TXN 1006 TOT: 000  
  BANK:4447807 TELLER:00309  
  VCH SU TIME TX AC-NO DC CHR CUU TX-AMT PER DUE-DATE MEMO REF-NO NAME  
----------------------------------------------------------  
  000001 71 082555 0011 4447807010000000000071 D 00 01 250,000.00  
  000003 00 083037 4447807010100084708900 D 00 01 3,590.00 11 3380678 刘敏     
  000004 00 083444 4450927010100004255800 C 00 01 500.00 #11 0539171 杨志坚    
  000005 71 083609 0087 4447807010000000000000 C 00 01 5.00  
  000006 71 083911 4447803011000900097031 D 00 01 118.33 24 20090519 73 0000006 凌晨宇    
  000007 71 083911 3590 4447803011000900097031 D 00 01 24 20090519 41 0000006 凌晨宇    


我想要把TX和TX-AMT下的两列数据提取出来,该用什么函数啊?

------解决方案--------------------
是空格还是tab键 ?你首先要弄清楚。
然后就简单了啊,就是字符串分割问题么

------解决方案--------------------
说起来很复杂,大体就是你一行一行读入数据,然后搜索空格,搜到第几个空格后面的数据是你需要的就记下来,然后再读入下一行
------解决方案--------------------
比较的麻烦,很乱。中间隔的应该是空格,只能根据这个来判断。
------解决方案--------------------
你可以参考下scanf的高级功能或者使用正则表达式,在网上找找,有很多资料
------解决方案--------------------
用fscanf试试看
------解决方案--------------------
中间的分隔符是空格吗?还是tab
如果是空格,那空格数一样吗?
如果一样的话,可以考虑导入到数据库
------解决方案--------------------

C/C++ code

void CTest0Dlg::OnButton7() 
{
    CFile file;
    if(file.Open(_T("D:\\2.txt"),CFile::modeRead ))
    {
        int rt = 0;
        TCHAR temp[50];
        TCHAR usefull[20];
        TCHAR h = '\0';
        TCHAR l0 = '\0';
        TCHAR l1 = '\0';
        TCHAR l2 = '\0';
        CString str, str1;
        str = " TX   TX-AMT  \r\n----------\r\n";
        str1.GetBufferSetLength(20);
        
        do{
            str1.GetBufferSetLength(4);
            
            rt = file.Read(&h,1);
            if(h == '0' && l0 == ' ' && l1 == ' ' && l2 == '\n')
            {
                file.Read(temp,19);
                file.Read(usefull, 4);
                strncpy(str1.GetBuffer(4), usefull, 4);
                str1.ReleaseBuffer();
                str += str1;
                str1.Empty();
                
                str1.GetBufferSetLength(14);
                file.Read(temp,41);
                file.Read(usefull, 14);
                strncpy(str1.GetBuffer(14), usefull, 14);
                str1.ReleaseBuffer();
                str += str1;
                str1.Empty();
                
                str += "\r\n";
                
            }
            
            l2=l1;
            l1=l0;
            l0=h;
            
        }while(rt);

        GetDlgItem(IDC_EDIT1)->SetWindowText(str);

    }
}