【已解决】怎么把一个记事本,分割成若干份?
本帖最后由 .個朲綉√ 于 2010-9-8 10:51 编辑打个比方,我记事本中有100万行内容。
我想5万行分成一个记事本,分成20个记事本。
请问这个该怎么操作?我现在没有一点头绪,不知道用到什么代码。
先谢过各位了。
下面是我做的一个代码,不知道哪里出错了,老是搞不定,我要把一个记事本,里面有1万行,我要分成10个记事本文件。每份1000行。
各位帮我想想办法,谢谢。#include <file.au3>
Dim $aRecords
$sResultFile = 'Result.txt'
If Not _FileReadToArray("a.txt",$aRecords) Then
MsgBox(4096,"Error", " error:" & @error)
Exit
EndIf
$i = $aRecords
$r = 1
While $i <= $js
$i = $i / $js
For $x = $r to $i
Next
$r = $i
FileWrite($sResultFile,$aRecords[$x] & @CRLF)
WEnd 用由1循环到5万用用:FileReadLine ( "文件句柄/文件名" [, 行号] )读,然后用:FileWriteLine ( "文件句柄/文件名", "数据" )写入到另一个记事本。。。
应很好弄吧? 本帖最后由 .個朲綉√ 于 2010-9-7 14:03 编辑
这种方法我也想过,会不会很慢哦。。。
而且我是一直要写下去,比如把1~5万写进一个文件中,5万01~10万写进另一个文件中。 回复 1# .個朲綉√
看看这段代码,应该对你有用!#include<file.au3>
#include<array.au3>
Dim $file="D:\zgk_2010\autoit\excises\计算机精髓.txt"
;读取文本文件的没50行生成1个新文件
dim $aArray
_filereadtoarray($file, $aArray)
for $i = 1 to Ceiling($aArray/50)
_FileWriteFromArray($aArray & '.txt', $aArray , 50 *($i-1)+1 , 50*$i)
next 回复 4# newuser
太牛了,能解释一下_FileWriteFromArray,帮助里看不懂。 收藏一下。 本帖最后由 .個朲綉√ 于 2010-9-8 10:52 编辑
自己修改后的源码也共享上来吧,方便后人。。。
吃水不忘挖井人啊。。。#NoTrayIcon
#include<file.au3>
#include<array.au3>
Dim $file = FileOpenDialog("选择Txt文件",@ScriptDir & "\","Txt文件 (*.txt)",1)
If @error Then
Exit
EndIf
dim $aArray
$No = InputBox("提示","请问一个文件要多少行号码?" & @CRLF & @CRLF & "例如:每份5万,输入50000" & @CRLF & @CRLF & "注意:" & @CRLF & "输入的数字不能大于被分割文件的行数。",30000)
If @error Then
Exit
EndIf
_filereadtoarray($file, $aArray)
for $i = 1 to Ceiling($aArray/$No)
_FileWriteFromArray($aArray[$No *($i-1)+1] & '.txt', $aArray , $No *($i-1)+1 , $No*$i)
next 比如说我一个文件有37M,约有90万行,我分的时候写50万行,结果只分手一个文件出来.
我要达到的效果是生成多个文件,如每一个文件50万行,每二个文件不足50万行,就以剩下的行数做为一个文件.
怎么弄?
页:
[1]