读书人

还是文件读写有关问题请来指点指点啊

发布时间: 2012-02-05 12:07:15 作者: rapoo

还是文件读写问题,请高手进来指点指点啊~~~比较急啊~~在线等~~~~~
小弟现在对一个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 (-)
1212 = P - - - - - LOGIC (+)
1312 = *F - - - - - LCD odd pin (-)
1322 = *F - - - - - LCD even pin (-)


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

我现在想实现,在界面上输入101或者1332,就把所有101或者1332开头的那一些行全部输出到另外一个TXT中。请问怎么来实现?也就是说怎么来判断?请高手指点指点。


[解决办法]
第二个问题:我输入三位数101,但是为什么我写的myfile.txt文件中只保存了一行呢???
用在后添加的方式打开文件,不然每次调用函数的时候上一次的记录就被清掉了。
f.Open( (LPCTSTR)pFileName, CFile::modeCreate| CFile::modeWrite | CFile::typeText );

第一个问题:我这个只能判断输入三位数才有效,怎么才能保持其通用性呢?也就是说输入任意位的数就可以查找呢?
你这个连三位数有效都不能保证,如果输入101,实际数是1011,是不是也被你写到文件中去了?


[解决办法]
对第二个问题,要用追加方式
f.SeekToEnd();

[解决办法]
试试
if(f.Open((LPCTSTR)pFileName,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite))

读书人网 >C++

热点推荐