ufw119 发表于 2012-5-29 14:27:11

TXT文本匹配内容替换

本帖最后由 ufw119 于 2012-6-5 15:09 编辑

一个原始文本 原始.TXT;一个要替换内容的文本 替换.INI
原始.TXT 内容如下:
世界上最完美的乐观心态
XXXXXXXXXXXXXX
世界上最优良的心态——乐观开朗
XXXXXXXXXXXX(代表还有很多行)
交往不悲观的方法
XXXXXXX(代表还有很多行)
替换.INI内容如下:(替换的内容在原文中不同行段出现)
[要替换的内容]
世界上最完美的乐观心态
世界上最优良的心态——乐观开朗
交往不悲观的方法
[替换成]
第一节、世界上最完美的乐观心态
第二节、世界上最优良的心态——乐观开朗
第三节、交往不悲观的方法


修改后原文要最终实现这个样子.
第一节、世界上最完美的乐观心态
XXXXXXXXXXXXXX
第二节、世界上最优良的心态——乐观开朗
XXXXXXXXXXXX(代表还有很多行)
第三节、交往不悲观的方法
XXXXXXX(代表还有很多行)

shqf 发表于 2012-5-29 14:58:54

标准的ini格式文件不是这样的。
在ini格式正确的情况下,可用函数IniReadSection()及StringRegExpReplace()解决楼主的问题。

drunk 发表于 2012-5-29 16:03:03

#include <file.au3>
#include <array.au3>

;$fileText = fileread("")

$fileText = "世界上最完美的乐观心态"&@LF& _
        "世界上最优良的心态——乐观开朗"&@LF& _
        "交往不悲观的方法"
       
$array = StringSplit($filetext , @lf)

For $i = 1 To $array
        $array[$i - 1] = $i & "、" &$array[$i]
Next

ReDim $array[$i - 1]

$newText = _ArrayToString($array, @lf)

MsgBox(0,0,$newText)

;$file = fileopen("",25)
;filewrite($file, $newtext)
;fileclose($file)

ufw119 发表于 2012-5-29 16:23:10

4楼可以实现前面加序号了。但不能替换原文本里面的特定内容。

我要把一本小说里的某些内容,替换成另一些内容。

xms77 发表于 2012-5-29 21:45:07

回复 5# ufw119
楼主的意思是要把原文本中的特定行前面加上序号吗?我的理解。

netegg 发表于 2012-5-30 08:41:04

本帖最后由 netegg 于 2012-5-30 08:42 编辑

回复 5# ufw119
‘最终目的我是要在替换内容前加序号。’ ---- 这不是lz自己的要求吗?
如果表达不清楚,就把前后两种文本的样式,写出来,题目中的xxxx是什么

netegg 发表于 2012-5-30 08:56:19

本帖最后由 netegg 于 2012-5-30 09:00 编辑

#Include <File.au3>
for $i = 1 to _filecountlines($file) Step 2
   _FileWriteToLine($file, $i, ($i+1)/2 & '、' & filereadline($file, $i), 1)
next
这样?

多说一句,ini文件的格式:

Key=Value
页: [1]
查看完整版本: TXT文本匹配内容替换