.個朲綉√ 发表于 2010-12-23 13:39:28

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

本帖最后由 .個朲綉√ 于 2010-12-26 16:00 编辑

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

13123456701
13123456702
13123456703
13123456704
13123456705

改为:
13123456701;
13123456702;
13123456703;
13123456704;
13123456705;

afan 发表于 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)

记事本中的号码怎么读不出来呢?   我加入数组了,为什么数组是空的。

menfan1 发表于 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
Local $Test = StringRegExpReplace($aArray[$x]& @CRLF, '(\r)', ';$1')
MsgBox(0, '结果', $Test)
Next

tryhi 发表于 2010-12-23 14:30:32

$str = FileRead("1.txt")
;MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExpReplace($str, '(\r)', ';$1')
MsgBox(0, '结果', $Test)

3mile 发表于 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
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


   你的正则没写对吧,把号码全删了,只有分号了;

3mile 发表于 2010-12-23 15:04:03

第4行Local $Test = StringRegExpReplace(FileRead($file), '(\d{11})', '$1;')

menfan1 发表于 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
Local $Test = StringRegExpReplace($aArray[$x]& @CRLF, '(\r)', ';$1')
FileWrite($file1, $Test)
Next
FileClose($file1)
Run("notepad.exe " & $file1)

xowen 发表于 2010-12-23 17:20:14

这么多源码,太爽了,研究一下

syhw222 发表于 2010-12-25 13:28:10

我也学习学习

731106 发表于 2011-3-31 12:20:46

正在为记事本郁闷呢,这里一部分,学习中
页: [1]
查看完整版本: 【已解决】如何在记事本指定位置加入一个符号。