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

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

[复制链接]
发表于 2009-6-23 23:06:59 | 显示全部楼层 |阅读模式
本帖最后由 faceyao 于 2009-6-24 21:18 编辑

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

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

情况是“会有随机的一段文字出现”,但这段随机的文字里面每次都会含有某一句话,现在就想要把这句话去掉。
 楼主| 发表于 2009-6-24 00:37:17 | 显示全部楼层
没人回答?凌晨了我自己顶起来
发表于 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类型的文件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-6-24 00:49:18 | 显示全部楼层
没人回答?凌晨了我自己顶起来
faceyao 发表于 2009-6-24 00:37

呵呵。不是没人答,偶想回答,可是偶也不知道,刚才在想用批处理来实现删除指定的字符
 楼主| 发表于 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
发表于 2009-6-24 10:55:31 | 显示全部楼层
StringRegExpReplace($text,"pattern","replacestring")
 楼主| 发表于 2009-6-24 12:38:40 | 显示全部楼层
谢谢楼上几位 我去实践试试,谢谢
 楼主| 发表于 2009-6-24 12:46:19 | 显示全部楼层
我要昏过去了

AspBelief 发表于 2009-6-24 12:39


??请问选的函数有什么不对吗
发表于 2009-6-24 12:53:27 | 显示全部楼层
我要昏过去了

AspBelief 发表于 2009-6-24 12:39

貌似这位兄弟在灌水的
刚才看他回了几个贴子,都是这一句话
发表于 2009-6-24 13:14:48 | 显示全部楼层
9# AspBelief


在线1小时,就混一个中级会员。我更要昏过去了!
发表于 2009-6-24 13:31:48 | 显示全部楼层
423多贴都是刚刷出来

说实在的,佩服他
发表于 2009-6-24 19:30:21 | 显示全部楼层
423多贴都是刚刷出来

说实在的,佩服他
kn007 发表于 2009-6-24 13:31

,说实话,我也非常佩服你。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-10 07:09 , Processed in 0.078218 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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