当前位置:编程学习 > VB >>

字符串的语法错误,请高手们指教!!!!很多帖子都没解决了!!!

原代码如下:问题出现提前节点名称是出现乱码,eg:“节点名称        =  枣庄-EPON-中兴- 咝率兰透呖平ㄐ?  ”这时就会提示“字符串语法错误”。 请高手指教如何避免出现乱码或者出现乱码也行,直接将有乱码的选项导入ACCESS中也行,太感谢了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Dim ac_Tmp1    As New ADODB.Connection
    With ac_Tmp1
        If .State = adStateOpen Then .Close
        .ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\zte.mdb;Mode=ReadWrite;Persist Security Info=False"
        .Open
    End With
    ac_Tmp1.Execute "delete * from [IP]"
    
Dim v() As String

Dim i As Long
Dim S

S = Split(RichTextBox2.Text, vbCrLf)

ReDim Preserve v(UBound(S)) As String


For i = 0 To UBound(v)
 v(i) = S(i)
If Left(v(i), 3) = "节点号" Then
    strdian = Replace(v(i), " ", "")
    strdian = Replace(strdian, "节点号=", "")
    
   
ElseIf Left(v(i), 7) = "设备IP地址1" Then
    strIPAddr = Replace(v(i), " ", "")
    strIPAddr = Replace(strIPAddr, "设备IP地址1=", "")
    
    
    
ElseIf Left(v(i), 4) = "节点名称" Then
   strNodeName = Replace(v(i), " ", "")
   strNodeName = Replace(strNodeName, "节点名称=", "")
    
  
    ac_Tmp1.Execute " insert into [IP](IP,mingcheng,jiedianhao) values('" & strIPAddr & "', '" & strNodeName & "','" & strdian & "')"

End If

Next i
  
ac_Tmp1.Close


Winsock2.Close

--------------------编程问答-------------------- 对字符做一个base64编码。 --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
对字符做一个base64编码。


请高手们说的详细一点,谢谢!!!!! --------------------编程问答-------------------- http://download.csdn.net/source/1498324 --------------------编程问答-------------------- 试试:

Dim S() As String

S = Split(strConv(RichTextBox2.Text, vbUnicode), vbCrLf) --------------------编程问答-------------------- 节点名称 = 枣庄-EPON-中兴-新世纪高科建
--------------------编程问答--------------------
引用 5 楼 zhao4zhong1 的回复:
节点名称 = 枣庄-EPON-中兴-新世纪高科建


你怎么翻译出来的?????? --------------------编程问答--------------------
引用 4 楼 of123 的回复:
试试:

Dim S() As String

S = Split(strConv(RichTextBox2.Text, vbUnicode), vbCrLf)


现在不是转换成VBUNICODE的问题,转换后全成乱码了!!!!!!!!!!!1 --------------------编程问答--------------------
引用 6 楼 liangjingyuan6 的回复:
引用 5 楼 zhao4zhong1 的回复:
节点名称 = 枣庄-EPON-中兴-新世纪高科建


你怎么翻译出来的??????

删除-后面遗留的半个汉字 --------------------编程问答--------------------
引用 8 楼 zhao4zhong1 的回复:
引用 6 楼 liangjingyuan6 的回复:
引用 5 楼 zhao4zhong1 的回复:
节点名称 = 枣庄-EPON-中兴-新世纪高科建


你怎么翻译出来的??????

删除-后面遗留的半个汉字


怎么翻译的呢?高手可否详细说明一下,对于我的原代码怎么更改才能输出正确的内容呢??? --------------------编程问答--------------------
Private Sub Command1_Click()
Dim s As String
Dim d As String
Dim t As String
s = "枣庄-EPON-中兴- 咝率兰透呖平ㄐ? "
t = StrConv(Mid(s, 13), vbFromUnicode)
d = Left(s, 12) + StrConv(MidB(t, 2, LenB(t) - 3), vbUnicode)
Debug.Print d '枣庄-EPON-中兴- 新世纪高科建
End Sub
--------------------编程问答--------------------
引用 10 楼 zhao4zhong1 的回复:
VB code
Private Sub Command1_Click()
Dim s As String
Dim d As String
Dim t As String
s = "枣庄-EPON-中兴- 咝率兰透呖平ㄐ? "
t = StrConv(Mid(s, 13), vbFromUnicode)
d = Left(s, 12) + StrConv(MidB(t, 2, LenB……


你这个只是针对这个乱码,对于我的原代码怎么修改呢???? --------------------编程问答-------------------- 试试:

Dim S() As String

S = Split(RichTextBox2.Text, vbCrLf)

还有乱码吗? --------------------编程问答--------------------
引用 12 楼 of123 的回复:
试试:

Dim S() As String

S = Split(RichTextBox2.Text, vbCrLf)

还有乱码吗?


有 这个和我原代码没有什么区别啊? --------------------编程问答--------------------
引用 11 楼 liangjingyuan6 的回复:
引用 10 楼 zhao4zhong1 的回复:
VB code
Private Sub Command1_Click()
Dim s As String
Dim d As String
Dim t As String
s = "枣庄-EPON-中兴- 咝率兰透呖平ㄐ? "
t = StrConv(Mid(s, 13), vbFromUnicode)
d = Left(s, 12)……
你这个只是针对这个乱码,对于我的原代码怎么修改呢????

你不会举一反三?
提示你一下,调用Word里面“ctrl+右箭头”对应的功能。
VBA代码
    Selection.MoveRight Unit:=wdWord, Count:=1
帮助你判断乱码从什么位置开始。 --------------------编程问答-------------------- 我的目的是不让它出现乱码,它是不定时,不定点的出现乱码,而且判断又的多一步。如何才能不让它出乱码呢??????????????????高手们 快帮帮我,非常感谢!!!!!!!!!!!!!!!!! --------------------编程问答-------------------- 应该是你一开始写入 RichTextBox 的内容就有问题,要从源头上避免错误。 --------------------编程问答--------------------
引用 16 楼 tiger_zhao 的回复:
应该是你一开始写入 RichTextBox 的内容就有问题,要从源头上避免错误。


在导入ACCESS数据库时不能将所有的数据都导入吗? 为什么乱码就不能导入?  --------------------编程问答-------------------- 如果你是通过TCP/IP Socket传输的这个字符串,那么原因就是你不能直接SendData String类型的变量,应用StrConv函数转为Byte()类型再发送。因为_DataArrival中GetData可能最后一个字节刚好是一个汉字的前半字节,下次_DataArrival中GetData才收到那个汉字的后半字节,如果你用String类型,很难实现把前后两次收到的strData重新连接为完整的字符串,而你用Byte(),则可以利用ReDim Preserve语句将前后两次收到的byteData放在一个Byte()中,然后再利用StrConv函数还原成String类型。 --------------------编程问答-------------------- 不懂,但好象又知道了多一点了 --------------------编程问答--------------------
引用 18 楼 zhao4zhong1 的回复:
如果你是通过TCP/IP Socket传输的这个字符串,那么原因就是你不能直接SendData String类型的变量,应用StrConv函数转为Byte()类型再发送。因为_DataArrival中GetData可能最后一个字节刚好是一个汉字的前半字节,下次_DataArrival中GetData才收到那个汉字的后半字节,如果你用String类型,很难实现把前后两次收到的strData重新连接为……


太深奥了,能否结合我的程序说明一下呢??谢谢!! --------------------编程问答-------------------- 还有什么好方法没? --------------------编程问答-------------------- ???????????????
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,