aardio 官方社区

用户名  找回密码
 注册会员

QQ登录

只需一步,快速开始

帖子
查看: 11080|回复: 9

编辑框取最后一行

[复制链接]

9

主题

27

回帖

239

积分

二级会员

积分
239
发表于 2018-3-7 14:00:43 | 显示全部楼层 |阅读模式
edit控件的问题。。。

问题很简单各位不要笑话,基础差,。

edit编辑框中 写入了多行内容,想取最后一行的内容 对比即将写入的文本 看是否需要修改   

求解

目前解决方法是 string.split(winform.edit.text,'\r\n')到数组 取数组最后元素对比要写入的文本 ,然后在把数组回到edit编辑框。

求个更好的方法。

9

主题

27

回帖

239

积分

二级会员

积分
239
 楼主| 发表于 2018-3-7 14:28:58 | 显示全部楼层
标题错了  应该是修改最后一行   lineText()能获取文本  修改该如何呢  

我理解的是要选着后修改  

12

主题

40

回帖

424

积分

二级会员

积分
424
发表于 2018-3-7 21:49:32 | 显示全部楼层
问题描述不 清,请重新整理语言,并附代码提问,这样才沟通

12

主题

645

回帖

3938

积分

荣誉会员

子非魚、安知魚之樂

积分
3938
发表于 2018-3-8 15:32:43 | 显示全部楼层
wyb391 发表于 2018-3-7 14:28
标题错了  应该是修改最后一行   lineText()能获取文本  修改该如何呢  

我理解的是要选着后修改

既然你的理解是
1.选区
2.修改

那么 该如何选择呢 winform.edit. 就会提示你所有的函数
在其中会发现有个 setsel() 函数是设置选区的 参数是 起始位置和 结束位置

示例代码:

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add(
button={cls=
"button";text="button";left=564;top=376;right=722;bottom=425;z=2};
edit={cls=
"edit";left=62;top=32;right=625;bottom=295;edge=1;multiline=1;z=1}
)
/*}}*/

winform.edit.text =
/*
1
2
3
hello
*/


winform.button.oncommand =
function(id, event) {
   
if(winform.edit.lineText(-1) != "world"){ // 判断最后一行文本
        winform.edit.setsel((# winform.edit.text - # winform.edit.lineText(-1) + 1), -1)// 1.设置选区
        winform.edit.selText = "world"// 2.修改选区文本
    }
}

winform.show();
win.loopMessage();

12

主题

645

回帖

3938

积分

荣誉会员

子非魚、安知魚之樂

积分
3938
发表于 2018-3-8 15:42:57 | 显示全部楼层
# winform.edit.text - # winform.edit.lineText(-1)
很好理解文本总长度减去最后一行文本长度 就是选区开始位置 至于为什么 +1
自己动手去掉+1试试就明白了!

12

主题

645

回帖

3938

积分

荣誉会员

子非魚、安知魚之樂

积分
3938
发表于 2018-3-8 16:25:27 | 显示全部楼层
edit.lineToChar(__/*指定行号*/) 可以获取指定行首字符位置
所以可以直接写
winform.edit.setsel(winform.edit.lineToChar(-1), -1)// 1.设置选区

9

主题

27

回帖

239

积分

二级会员

积分
239
 楼主| 发表于 2018-3-16 17:33:03 | 显示全部楼层
xauto 发表于 2018-3-8 16:25
edit.lineToChar(__/*指定行号*/) 可以获取指定行首字符位置
所以可以直接写
winform.edit.setsel(winfor ...

感谢回复             感谢回复  

选区的问题走了弯路,还好最好弄好了。

166

主题

2154

回帖

1万

积分

管理员

积分
13056
发表于 2018-3-16 19:12:47 | 显示全部楼层
wyb391 发表于 2018-3-16 17:33
感谢回复             感谢回复  

选区的问题走了弯路,还好最好弄好了。

我刚才增加了一个函数,可以一句代码解决你的问题
winform.edit.lineSel(-1,"要替换最后一行的文本");

9

主题

27

回帖

239

积分

二级会员

积分
239
 楼主| 发表于 2018-3-16 19:22:16 | 显示全部楼层
  有了这个函数方便多了。   再次感谢  aardio越来越好

9

主题

27

回帖

239

积分

二级会员

积分
239
 楼主| 发表于 2018-3-16 19:25:13 | 显示全部楼层
Jacen.He 发表于 2018-3-16 19:12
我刚才增加了一个函数,可以一句代码解决你的问题

感谢增加了函数,有了这个函数方便多了,,,aardio越来越好
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2025-6-13 04:30 , Processed in 0.069734 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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