找回密码
 加入
搜索
查看: 2382|回复: 4

读取TXT文件,每50行生成一个新的TXT文件问题

[复制链接]
发表于 2009-2-14 03:26:00 | 显示全部楼层 |阅读模式
小生菜菜,近来整理文件实在头痛,想偷懒做个AU3或VBS来完成,看了相关文章,可惜才疏学浅,怎么都不大明白,实无办法上来求救!望能有点现成!

读取TXT文件,无分割标示的情况下,每50行生成一个新的TXT文件,其文件名最好以该文件的第一行的里面的字命名。
例如文件a.txt内容如下
11111111    aaaaaaa
22222222    bbbbb
..........
50000000     aaaaaaa1
.......
10000000    1112222
........
运行批处理后得到文件名为11111111.txt  50000000.txt   10000000.txt  .....
发表于 2009-2-14 04:44:07 | 显示全部楼层
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 编辑 ]
发表于 2010-7-21 01:06:35 | 显示全部楼层
回复 2# xinlu8439
受用,很有帮助。
发表于 2010-7-21 06:34:40 | 显示全部楼层
本帖最后由 netegg 于 2010-7-21 09:22 编辑

#include<file.au3>
#include<array.au3>
dim $aArray
_filereadtoarray($file, $aArray)
for $i = 1 to Ceiling($aArray[0]/50)
   _FileWriteFromArray($aArray[50 *($i-1)+1] & '.txt', $aArray , 50 *($i-1)+1 , 50*$i)
next
发表于 2010-7-21 15:41:28 | 显示全部楼层
这个用正则是很容易的
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 15:05 , Processed in 0.164243 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表