以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  什么原因保存无效,请教大师?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99505)

--  作者:hbhb
--  发布时间:2017/4/20 12:56:00
--  什么原因保存无效,请教大师?
大师:代码修改标点符号,保存不了。见实例。劳驾指导。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目23.rar


--  作者:有点色
--  发布时间:2017/4/20 14:47:00
--  

这样写,多加一个字符,最后再把多加的字符移除掉。

 

\'\'\'
For Each tr As DataRow In DataTables("表A").dataRows
    For Each cl As DataCol In DataTables("表A").dataCols
        If cl.IsString Then
            tr(cl.name) = tr(cl.name).replace(chr(32),"").replace(chr(-23640),chr(40)).replace(chr(-23622),chr(58)).replace(chr(-24639),chr(41)) & chr(11)
        End If
    Next
Next
MessageBox.Show("明明更改了")
DataTables("表A").Load
MessageBox.Show("保存无效?什么原因不改变?鬼在哪?")


--  作者:hbhb
--  发布时间:2017/4/20 15:16:00
--  
why??????解释一下原因?
--  作者:有点色
--  发布时间:2017/4/20 15:18:00
--  
以下是引用hbhb在2017/4/20 15:16:00的发言:
why??????解释一下原因?

 

如果单纯的把全角替换成半角,是不会认为你修改了单元格内容的,进而没有保存都后台数据库。所以要加入一个另外的字符,去告诉数据库修改了值。

 

再有,转全角的字符,可以用此函数 http://www.foxtable.com/webhelp/scr/1621.htm

 


--  作者:hbhb
--  发布时间:2017/4/20 16:03:00
--  
如果用函数,“、”,一转变为?,怎么办?
--  作者:有点色
--  发布时间:2017/4/20 16:10:00
--  

 1、你这个、可以替换成其余的字符,如替换成逗号

 

\'\'\'
Dim str As String = "kjoiu、oiudi:333"
Output.show(StrToNarrow(str.replace("、", ",")))

 

 2、如果你要个别替换,就只能用replace了。


--  作者:hbhb
--  发布时间:2017/4/20 16:21:00
--  
‘’‘’
中文的的双引号ASC是多少?
--  作者:有点色
--  发布时间:2017/4/20 16:30:00
--  

-24144
-24143

你在表格里面输入字符,然后执行代码即可得到

 

Dim str As String = CurrentTable.Value
Output.show(asc(str))


--  作者:hbhb
--  发布时间:2017/4/20 16:41:00
--  
用函数全部转为半角,再见双引号转回全角,左右怎么转。这些鸟人输入的一比吊扫不规范。怎么办?
--  作者:有点色
--  发布时间:2017/4/20 16:49:00
--  

 不要用函数了吧,用多个replace,或者用自己的方法

 

 \'\'\'
Dim ary1() As String = {",", ":", "!"}
Dim ary2() As String = {",", ":", "!"}
Dim str As String = "123,我们:234!"
Dim nstr As String = ""
For Each s As String In str
    Dim idx As Integer = array.Indexof(ary1, s)
    If idx >= 0 Then
        nstr &= ary2(idx)
    Else
        nstr &= s
    End If
Next
msgbox(nstr)