找回密码
 加入
搜索
查看: 4597|回复: 12

[AU3基础] 【已解决】如何在记事本指定位置加入一个符号。

 火.. [复制链接]
发表于 2010-12-23 13:39:28 | 显示全部楼层 |阅读模式
本帖最后由 .個朲綉√ 于 2010-12-26 16:00 编辑

一个记事本文件,全是手机号码,我想在每个号码后面加一个分号
手机号都是11位的,也就是要在每行第12个字符位置加个

13123456701
13123456702
13123456703
13123456704
13123456705

改为:
13123456701;
13123456702;
13123456703;
13123456704;
13123456705;
发表于 2010-12-23 13:43:08 | 显示全部楼层
Local $Str = _
                '13123456701' & @CRLF & _
                '13123456702' & @CRLF & _
                '13123456703' & @CRLF & _
                '13123456704' & @CRLF & _
                '13123456705' & @CRLF
;MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExpReplace($str, '(\r)', ';$1')
MsgBox(0, '结果', $Test)
 楼主| 发表于 2010-12-23 14:13:40 | 显示全部楼层

#include<file.au3>
#include<array.au3>
Dim $file = FileOpenDialog("选择Txt文件",@ScriptDir & "\","Txt文件 (*.txt)",1)
If @error Then
Exit
EndIf
dim $aArray
_filereadtoarray($file, $aArray)
Local $Test = StringRegExpReplace($aArray, '(\r)', ';$1')
MsgBox(0, '结果', $Test)

记事本中的号码怎么读不出来呢?   我加入数组了,为什么数组是空的。
发表于 2010-12-23 14:26:10 | 显示全部楼层
#include<file.au3>
#include<array.au3>
Dim $file = FileOpenDialog("选择Txt文件",@ScriptDir & "\","Txt文件 (*.txt)",1)
If @error Then
Exit
EndIf
dim $aArray
_filereadtoarray($file, $aArray)
For $x = 1 to $aArray[0]
Local $Test = StringRegExpReplace($aArray[$x]  & @CRLF, '(\r)', ';$1')
MsgBox(0, '结果', $Test)
Next
发表于 2010-12-23 14:30:32 | 显示全部楼层
$str = FileRead("1.txt")
;MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExpReplace($str, '(\r)', ';$1')
MsgBox(0, '结果', $Test)
发表于 2010-12-23 14:42:51 | 显示全部楼层
正则无法操作数组吧。
While 1
        Dim $file = FileOpenDialog("选择Txt文件", @ScriptDir & "\", "Txt文件 (*.txt)", 1)
        If Not @error Then
                Local $Test = StringRegExpReplace(FileRead($file), '\d{11}', '$1;')
                $hfile = FileOpen($file, 2)
                FileWrite($file, $Test)
                FileClose($file)
                If MsgBox(4, "完成", "文件转换完成还要继续转换吗?") = 7 Then ExitLoop
        Else
                ExitLoop
        EndIf
WEnd
Exit
 楼主| 发表于 2010-12-23 14:48:59 | 显示全部楼层
我还想把这个结果再写进一个记事本里,该怎么写进去呢?   我加了
_FileWriteFromArray

可是帮助文档里全英文的,写法可能不对,一直写不进记事本:

#include<file.au3>
#include<array.au3>
Dim $file = FileOpenDialog("选择Txt文件",@ScriptDir & "\","Txt文件 (*.txt)",1)
If @error Then
Exit
EndIf
dim $aArray
_filereadtoarray($file, $aArray)
For $x = 1 to $aArray[0]
Local $Test = StringRegExpReplace($aArray[$x]  & @CRLF, '(\r)', ';$1')
_FileWriteFromArray(@ScriptDir & $file & "back.txt",$Test,1)
MsgBox(0, '结果', 'OK')
Next
 楼主| 发表于 2010-12-23 14:51:43 | 显示全部楼层
回复 6# 3mile


   你的正则没写对吧,把号码全删了,只有分号了;
发表于 2010-12-23 15:04:03 | 显示全部楼层
第4行Local $Test = StringRegExpReplace(FileRead($file), '(\d{11})', '$1;')
发表于 2010-12-23 15:05:16 | 显示全部楼层
#include<file.au3>
#include<array.au3>
Dim $file = FileOpenDialog("选择Txt文件",@ScriptDir & "\","Txt文件 (*.txt)",1)
Dim $file1=@ScriptDir & "\back.txt"
If @error Then
Exit
EndIf
dim $aArray
_filereadtoarray($file, $aArray)
For $x = 1 to $aArray[0]
Local $Test = StringRegExpReplace($aArray[$x]  & @CRLF, '(\r)', ';$1')
FileWrite($file1, $Test)
Next
FileClose($file1)
Run("notepad.exe " & $file1)
发表于 2010-12-23 17:20:14 | 显示全部楼层
这么多源码,太爽了,研究一下
发表于 2010-12-25 13:28:10 | 显示全部楼层
我也学习学习
发表于 2011-3-31 12:20:46 | 显示全部楼层
正在为记事本郁闷呢,这里一部分,学习中
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-2 10:35 , Processed in 0.079572 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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