如何尋找關鍵字並將那些行刪除?
本帖最后由 wongfung 于 2009-4-28 10:13 编辑1.例如一個文件裏有:
------------------------
abc
4561632
758416
abcd
2343
7586765
78564756
4564
abcde
132424
abcdef
------------------------
我想尋找"abc"這字符串 並將該行刪去, 即變成
------------------------
4561632
758416
2343
7586765
78564756
4564
132424
------------------------
假設文件為$file
請問如何能實現呢?
2.我想尋找一個符號, 然後如果後要有數據的話就不管, 如果沒數據的話則刪除該行
例如(關鍵字為":"):
------------------------
123:87654646
456:
789:4521342
------------------------
會變成
------------------------
456:
------------------------
假設文件為$file
請問又如何實現呢? 读取整个文件,然后字符串分多维数组,一行一行搜索字符串。 首先讀入文件
_FileReadToArray($file, $Line)
然後要怎樣分維數組呢???
之後不知道甚樣用stringreplace寫... _FileReadToArray($sFile, $aLine),这个函数是将文件读入一个数组,文件的每一行作为数组一个元素。所以现在$aLine就是已经分行的文件内容,$aLine等于文件总行数。
1.用For $i循环处理数组,从1至$aLine。用StringInStr检查$aLine[$i],如果包含你要找的字符串,则将$aLine[$i]置空。
2.你的问题跟例子似乎相反?删除行不要用For循环,用我下面的示例。
都处理完成后,你要用_FileWriteFromArray将数组内容写回文件。
$i = 1
While $i < UBound($aLine)
If StringRight($aLine[$i], 1) = ":" Then ; 检查本行最后一个字符是否为 ":"
_ArrayDelete($FileList, $i) ; 是,说明无数据,删除此元素
Else
$i += 1 ; 否,$i自加,即不处理本行
EndIf
WEnd 十分感謝, 已經解決那兩條問題了
現在對數組的理解又深了一步:)
页:
[1]