首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于文件读写有关问题,求帮!

2012-02-27 
关于文件读写问题,求帮!!!小弟现在对一个TXT文件进行读写,其格式如下:$#DATE#$Test-Start-Date2006/11/13_

关于文件读写问题,求帮!!!
小弟现在对一个TXT文件进行读写,其格式如下:
$#DATE#$
Test-Start-Date     2006/11/13_19:17:44
Test-End-Date         2006/11/13_19:17:46
$#TESTDATA#$
Dut#           IC#       Waf#     IC(Waf)#       P/F         Bin           Cat         Xadr     Yadr
      1               1             1                   1       FAIL           2               2           140       135
$#DUT1TEST#$
Test#     Pin     PF         Value     L-Limit     U-Limit   Unit           DataName   Comment/PinName
    101         +     *U                 -                 -                 -   -                 -                 VDD(-)
    101     101       P       -0.387       -1.500       -0.200   V                 -                 VDDC                        
    101     102       P       -0.384       -1.500       -0.200   V                 -                 VDDA                        
    101     103     *U       -0.005       -1.500       -0.200   V                 -                 VDDD                        
    101     104       P       -0.389       -1.500       -0.200   V                 -                 VDDIO                      
    110         +     *U                 -                 -                 -   -                 -                 ANALOG   (-)
    110     201       P       -0.617       -1.500       -0.200   V                 -                 VPP                          
    110     202       P       -0.516       -1.500       -0.200   V                 -                 VOUT                        


    110     203     *U       -0.008       -1.500       -0.200   V                 -                 VCLX4                      
    110     204       P       -0.580       -1.500       -0.200   V                 -                 VLCD                        
    110     205       P       -0.523       -1.500       -0.200   V                 -                 VL5                          
    110     206       P       -0.600       -1.500       -0.200   V                 -                 VL4                          
    110     207       P       -0.555       -1.500       -0.200   V                 -                 VL3                          
    110     208       P       -0.581       -1.500       -0.200   V                 -                 VL2                          
    110     209       P       -0.635       -1.500       -0.200   V                 -                 ANALOG_TEST          
    120         =       P                 -   -                               -   -                 -                 LOGIC   (-)
    121         =       P                 -   -                               -   -                 -                 LOGIC   (+)
    131         =     *F                 -   -                               -   -                 -                 LCD   odd     pin   (-)
    132         =     *F                 -   -                               -   -                 -                 LCD   even   pin   (-)


    133         =     *F                 -   -                               -   -                 -                 LCD   odd   pin   (+)

我现在想实现,在界面上输入101,就把所有101开头的那一些行全部输出到另外一个TXT中。请问怎么来实现?也就是说怎么来判断?请高手指点指点。谢谢拉~~
我用CreateFile()这个函数打开文件,属性选择read。我用GetFileSize()得到文件的大小,请问我接下来怎么来实现一行一行读呢?用什么函数???请高手给点代码吧~~谢谢拉~~

[解决办法]
char str[256]; //假设你要读的文件每行字符数不超过256

fp = fopen(...); //你要读入的文本
fpDest = fopen(...); //你要写入的文本

//先读掉前8行
for(i=0; i <8; i++)
fgets(str, 256, fp);
//开始取数据
while(!feof(fp))
{
fgets(str, 256, fp);
//假设文本的每行在101前面是两个空格
if(0==strncmp(str[2], "101 ", 3))
{
fputs(str, fpDest);
}
}
//结束
fflush(fp);
fclose(fp);
fflush(fpDest);
fclose(fpDest);
[解决办法]
对文件做个调查,看每行的数据量有多大,256改成其他数也是可以的.
m_str关联到查询所用的编辑框,则可以:
int nLength = m_str.GetLength();
char *strQuery = m_str.GetBuffer(nLength);
.....
if(0==strncmp(str[2], strQuery, nLength))
......
[解决办法]
ifstream openf(...);
ofstream outfile(...);

string line;
while(!openf.fail())
{
getline(openf, line);
istringstream str(line);

int index;
str> > index;
if(index == 101) coutfile < <line; //如果首索引为 101, 输出到指定文件
}
......
[解决办法]
int _tmain(int argc, _TCHAR* argv[])
{
ifstream ifs( "c:\\1.txt ");

while(!ifs.eof())
{
string str;
getline(ifs,str);

int i = 0;
while(str[i] == ' ')
{
str.erase(0,1);
}

if (str.substr(0,3)== "101 ")
{
cout < <str < < "\n ";
}
}
system( "pause ");
return 0;
}

热点排行