请教如何批量输出txt文件并且更改文件类型??
我想要批量输出一些文件,比如说:
写入txt文件 aaa1
bbb1
ccc 1
.......
ggg1
然后自动保存为文件1.txt,并且自动更改文件类型为.vcf
同理,第二个写入txt文件就是
aaa2
bbb2
ccc2
.......
ggg2
然后自动保存为文件2.txt,并且自动更改文件类型为.vcf
向大家求教应该怎样处理这个问题,谢谢! 回复 1# xavier880819 $Str = 'aaa' & @CRLF & 'bbb' & @CRLF & 'ccc' & @CRLF & '...' & @CRLF & 'ggg'
FileWrite('1.vcf', $Str) 回复 2# afan
但是我要批量输出很多个啊,比如说500个,这个怎么能够做到输出500个呢?? 本帖最后由 afan 于 2010-2-5 15:48 编辑
回复 3# xavier880819
不会吧,按你的需要循环不就行了For $i = 1 to 500
FileWrite($i & '.vcf', $i)
Next 回复 4# afan
恩,这样的确可以,但是这样一来文件1和2里面的东西不就是一样的了??
我是需要1和2里面的东西有点区别才行啊, 比如1里面是aaa1,bbb1,ccc1.那么2里面就是aaa2,bbb2,ccc2才对啊 回复 5# xavier880819
里面的东东现在不就不一样吗?用记事本打开看看
1.vcf = 1, 2.vcf = 2,.... 500.vcf = 500 回复 6# afan
恩,现在一样了,刚刚的确是我写得有点问题,谢谢你的帮忙:face (29): Global $StartChar="a" ;开始的字符
Global $EndChar="g" ;结束的字符
Global $StringLen=6 ;每个字符串的字符个数
Global $AllFileNum=500 ;总共要生成多少个文件
for $HouZhui=1 to $AllFileNum Step 1 ;总共生成多少个文件循环多少次
For $Char=Asc($StartChar) To Asc($EndChar) Step 1 ;按开始和结束字符ASC码差值循环。
Dim $String="" ;字符中间变量。存储生成的中间字符串
For $i=1 To $StringLen Step 1 ;按字符串长度循环
$String=$String&Chr($Char) ;将单个的字符组合成字符串
Next
$String=$String&$HouZhui ;字符串重组。
FileWriteLine($HouZhui&".vcf",$String&@CRLF); 写入文件
Next
Next
给你个代码。 自己测试了。 很好用。 2--3秒可生成500个文件。 完全按你的要求。呵呵
aaaaaa1
bbbbbb1
cccccc1
dddddd1
eeeeee1
ffffff1
gggggg1
aaaaaa500
bbbbbb500
cccccc500
dddddd500
eeeeee500
ffffff500
gggggg500 哦,原来for...next是这样用的 刚回复完, 突然想到了以前那谁说的。 频繁操作IO会影响程序运行时间。 所以。。 又优化了下代码。。
如下:
Global $StartChar="a" ;开始的字符
Global $EndChar="g" ;结束的字符
Global $StringLen=6 ;每个字符串的字符个数
Global $AllFileNum=500 ;总共要生成多少个文件
for $HouZhui=1 to $AllFileNum Step 1 ;总共生成多少个文件循环多少次
Dim $String="" ;字符中间变量。存储生成的中间字符串
For $Char=Asc($StartChar) To Asc($EndChar) Step 1 ;按开始和结束字符ASC码差值循环。
For $i=1 To $StringLen Step 1 ;按字符串长度循环
$String=$String&Chr($Char) ;将单个的字符组合成字符串
Next
$String=$String&$HouZhui&@CRLF ;字符串重组。
Next
FileWriteLine($HouZhui&".vcf",$String); 写入文件
Next
生成完一个文件需要的信息之后,才写入。 强悍学习收藏 备用 谢谢各位的帮助,真的很有用,但是我现在碰到另外一个问题#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <TreeViewConstants.au3>
#include <File.au3>
#NoTrayIcon
Opt('MustDeclareVars', 1)
GUICreate('vcfCard creator v1.00.01', 280, 150, -1, -1)
Dim $p, $Button, $Button2, $nMsg,$i,$Str
$p = GUICtrlCreateInput("0", 50, 35, 140, 20)
$Button = GUICtrlCreateButton("Generate Contacts", 50, 80, 140, 20)
$Button2 = HotKeySet("{ESC}","Terminate")
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button2
Terminate()
Case $Button
Create()
EndSwitch
WEnd
Func Terminate()
Exit 0
EndFunc ;==>Terminate
Func Create()
For $i = 1 to $p
$Str = 'a' & $i & @CRLF & 'b'& $i & @CRLF & 'c' & $i & @CRLF & '...' & @CRLF & 'ggg' & $i
FileWrite('Contact'& $i & '.txt', $Str)
Next
EndFunc为什么我定义的input不能起作用呢?? 无论我在input box输入数字多少,创建出来的都是3个文件 $p = GUICtrlCreateInput("0", 50, 35, 140, 20)
这句的意思你都没弄明白。。
这句的意思是创建一个INPUT框,返回的是一个控件ID. 你用控件ID来控制循环,,, 没搞错吧。。
应该是先读取INPUT框中的信息。然后才使用。。。
如:
$p = GUICtrlCreateInput("Input1", 72, 88, 353, 21)
…………………………
$InputNum=GUICtrlRead($p)
for $i=1 to $InputNum step 1
……
next
页:
[1]
2