faceyao 发表于 2009-6-23 23:06:59

如何删控件文本中的一小段文?

本帖最后由 faceyao 于 2009-6-24 21:18 编辑

研究论坛的以往帖子,有说到controlsettext()可以,又看了帮助文档,可是帮助里面的controlsettext只能更新为新文本,并不能扣掉某一段文字,

有版友的帖子里面写到“_FileWriteToLine”好像可以,但我在“中文帮助”里面找不到这个函数的使用说明。

情况是“会有随机的一段文字出现”,但这段随机的文字里面每次都会含有某一句话,现在就想要把这句话去掉。

faceyao 发表于 2009-6-24 00:37:17

没人回答?凌晨了我自己顶起来

都市浪子666 发表于 2009-6-24 00:46:00

本帖最后由 都市浪子666 于 2009-6-24 00:47 编辑

本人也是非常的菜,用AU3我不知道怎么做。
但我偶知道用批处理如何删除,
你可以先读取 控件的字符,然后输出到一个文件里。
然后运行我的这个批处理,接着读取批处理删除指定字符的文件,最后把读取的字符写入到控件里
(不知道这样行不行,楼主你就试看吧)@echo off
:: 这个批处理的作用就是读取[原文.txt] 的内容,把[中国广州]的字符删除后。然后输出到 [删除字符后的文件.txt]里
:: 如果是要删除别的字符,就把第5行的( 中国广州 )修改成删除的字符
setlocal EnableDelayedExpansion
set string=中国广州
del 删除字符后的文件.txt 2>nul
for /f " tokens=*" %%a in ('type 原文.txt') do (
set str_1=%%a
set str_2=!str_1:%string%=!

if not "!str_2!"=="" (echo !str_2!&echo !str_2! >>删除字符后的文件.txt)
)
goto :eof

:: 这个是批处理代码,粘贴到记事本里,然后保存为.bat类型的文件

都市浪子666 发表于 2009-6-24 00:49:18

没人回答?凌晨了我自己顶起来
faceyao 发表于 2009-6-24 00:37 http://www.autoitx.com/images/common/back.gif
呵呵。不是没人答,偶想回答,可是偶也不知道,刚才在想用批处理来实现删除指定的字符

faceyao 发表于 2009-6-24 10:39:37

谢谢楼上朋友,不知道用StringInStr 行不行

即即 发表于 2009-6-24 10:51:01

本帖最后由 即即 于 2009-6-24 15:25 编辑

5# faceyao
首先读取控件内容到变量,然后将需要删除的字符串用StringReplace函数替换为空,再更新控件数据。应该可以达到楼主的意图。#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 348, 298, 189, 121)
$Edit1 = GUICtrlCreateEdit("", 8, 16, 329, 193, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN,$WS_HSCROLL,$WS_VSCROLL))
GUICtrlSetData(-1, "这是月季花开实验的文件" & @CRLF & @CRLF & "月季花开")
$Button1 = GUICtrlCreateButton("删除控件部分文本", 208, 240, 123, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1
                _UDF($Edit1, "月季花开")       
        EndSwitch
WEnd


Func _UDF($control, $delete_string)
      ;$control=控件ID$delete_string=需要删除的字符串
      Local $Read_control = GUICtrlRead($control)
      $Read_control = StringReplace($Read_control, $delete_string, "")
                GUICtrlSetData($control, "")
      GUICtrlSetData($control, $Read_control)
        EndFunc   ;==>_UDF

passkalilo 发表于 2009-6-24 10:55:31

StringRegExpReplace($text,"pattern","replacestring")

faceyao 发表于 2009-6-24 12:38:40

谢谢楼上几位 我去实践试试,谢谢

faceyao 发表于 2009-6-24 12:46:19

我要昏过去了
:face (3):
AspBelief 发表于 2009-6-24 12:39 http://www.autoitx.com/images/common/back.gif

??请问选的函数有什么不对吗

都市浪子666 发表于 2009-6-24 12:53:27

我要昏过去了
:face (3):
AspBelief 发表于 2009-6-24 12:39 http://www.autoitx.com/images/common/back.gif
貌似这位兄弟在灌水的
刚才看他回了几个贴子,都是这一句话

即即 发表于 2009-6-24 13:14:48

9# AspBelief


在线1小时,就混一个中级会员。我更要昏过去了!

kn007 发表于 2009-6-24 13:31:48

423多贴都是刚刷出来

说实在的,佩服他

即即 发表于 2009-6-24 19:30:21

423多贴都是刚刷出来

说实在的,佩服他
kn007 发表于 2009-6-24 13:31 http://www.autoitx.com/images/common/back.gif
,说实话,我也非常佩服你。
页: [1]
查看完整版本: 如何删控件文本中的一小段文?