读取TXT文件,每50行生成一个新的TXT文件问题
小生菜菜,近来整理文件实在头痛,想偷懒做个AU3或VBS来完成,看了相关文章,可惜才疏学浅,怎么都不大明白,实无办法上来求救!望能有点现成!读取TXT文件,无分割标示的情况下,每50行生成一个新的TXT文件,其文件名最好以该文件的第一行的里面的字命名。
例如文件a.txt内容如下
11111111 aaaaaaa
22222222 bbbbb
..........
50000000 aaaaaaa1
.......
10000000 1112222
........
运行批处理后得到文件名为11111111.txt50000000.txt 10000000.txt..... Global $Line_Counter = 0
Global $File_Name = ""
Global $File_Read_Handler = FileOpen("filename", 0) ; read mode
Global $File_Write_Handler
If $File_Read_Handler = -1 Then
MsgBox(0, "Error", "不能打开文件")
Exit
EndIf
While 1
$File_Read_Line = FileReadLine($File_Read_Handler)
If @error = -1 Then ExitLoop
If $Line_Counter = 0 Then
$File_Name = $File_Read_Line ; 如果当前读第一行,将其保存为文件名
$File_Write_Handler = FileOpen($File_Name & ".txt", 2)
If $File_Write_Handler = -1 Then
MsgBox(0, "Error", "不能打开文件")
Exit
EndIf
FileWriteLine($File_Write_Handler, $File_Name)
Else
FileWriteLine($File_Write_Handler, $File_Name)
$Line_Counter += 1
If $Line_Counter = 50 Then
$Line_Counter = 0 ; reset counter for every 50 lines
FileClose($File_Write_Handler) ; close file wrinting handler
EndIf
EndIf
Wend
FileClose($File_Read_Line)
[ 本帖最后由 xinlu8439 于 2009-2-14 04:46 编辑 ] 回复 2# xinlu8439
受用,很有帮助。 本帖最后由 netegg 于 2010-7-21 09:22 编辑
#include<file.au3>
#include<array.au3>
dim $aArray
_filereadtoarray($file, $aArray)
for $i = 1 to Ceiling($aArray/50)
_FileWriteFromArray($aArray & '.txt', $aArray , 50 *($i-1)+1 , 50*$i)
next 这个用正则是很容易的
页:
[1]