VB中如何实现字符串与字符串的转换

有两个Textbox控件,其中一个输入字符串,另一个输出结果。凡是含数字的都减1,英文的上一位,含文字“一二三四……”的都转成“壹贰叁肆……”,如“三z5”转成“叁a4”... 有两个Textbox控件,其中一个输入字符串,另一个输出结果。
凡是含数字的都减1,英文的上一位,含文字“一二三四……”的都转成“壹贰叁肆……”,如“三z5”转成“叁a4”等等。

进一步推广请高手编个通用函数,实现某字符串中 特定字符 向 特定字符 的转换(转换是一对一的、明确的,不一定有数学规则的)。

谢谢!
展开
 我来答
匿名用户
2013-11-30
展开全部
我是菜鸟,在vb中用winsock控件编写一个代理程序遇到二进制数据包与字符串转换的问题,我的目的是要将二进制数据包转换成字符串以便查看并且修改数据包内容,然后又将修改了的数据包内容转换成二进制数据包转发给客户端程序。问题过程如下:

Private Sub Server_DataArrival(ByVal bytesTotal As Long)
Dim ServerToClient As String ‘这里我将数据包定义为String数据类型,想直接查看修改数据包内容
Server.GetData ServerToClient
Client.SendData ServerToClient
End Sub

运行以上过程客户端程序不响应,不与我的代理程序中的Client通讯,于是我将ServerToClient定义为Byte数据类型

Private Sub Server_DataArrival(ByVal bytesTotal As Long)
Dim ServerToClient() As Byte ‘这里我将数据包定义为Byte数据类型
Server.GetData ServerToClient
Client.SendData ServerToClient
End Sub

这样客户端程序就响应了,能与我的代理程序中的Client通讯了,这说明客户端程序与远程服务器通讯是不支持String数据类型的。那么我就必须要将定义为Byte数据类型的数据包转换成string数据类型以便查看并且修改数据包内容,我用如下代码转换成string数据类型:

s$ = StrConv(ServerToClient(), vbUnicode)

的确我看到了数据包的内容,然后我将数据包的内容修改后用ServerToClient() = StrConv(s$, vbFromUnicode)转换成Byte数据类型转发给客户端程序,问题就在这儿:客户端程序不响应了,不与我的代理程序通讯了!?

我做了这样的尝试,不修改数据包的内容用ServerToClient() = StrConv(s$, vbFromUnicode)转换成Byte数据类型转发给客户端程序,客户端程序还是不响应?!

各位大虾,我的问题出在哪儿?用什么方法能将string数据类型转换成Byte数据类型的数据包与客户端程序通讯?望不吝赐教!
1997排长
高粉答主

2016-01-22 · 说的都是干货,快来关注
知道大有可为答主
回答量:1.1万
采纳率:0%
帮助的人:783万
展开全部
可以自定义个函数,如Cobj( string str) ,

function Cobj( str as String) as CString '返回字符串对象
dim cstr as new CString
cstr=str
set Cobj=cstr
end if

CString 自己定义的类
成员只一条:
Public Value as String ‘从工具\过程属性菜单中 把value设置为默认属性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-30
展开全部
直接写了,没有调试,大概就这样子
str1=text1.text
str2=""
for i=1 to len(str1)
str=mid(str1,i,1)
select case str
case "一"
str2 = str2 & "壹"
...二到九省略
default
str2 = str2 & str
end select
if str >"0" and str < "9" then
if str="0" then
str2 = str2 & 9
else
str2=str2 & chr(asc(str)-1)
end if
end if
英文跟数字一样。
text2.text=str2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-30
展开全部
写思想:
1.读取输入的字符串
2.用FOR循环遍历字符串
3.是数字的直接减1,是英文的用CHR()转换为ASCII码后减1,是"一,二..."用selete..case语句
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aping331
2015-12-19 · 知道合伙人教育行家
aping331
知道合伙人教育行家
采纳数:13018 获赞数:73826
暂时没有

向TA提问 私信TA
展开全部
这是简易的加密解密的算法了,全部转换成ASCII码用加减法算好再还原吧。如有限几个字符,可以用直接赋值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式