我有个用access写的程序,是在繁体系统用繁体写的,现在想在简体系统上使用它但老是出错。

我有个用access写的程序,是在繁体系统用繁体写的,现在想在简体系统上使用它但老是出错。,第1张

用SQL语句将数据插入到access数据库中,数据就可以全变成繁体字了

---------------------------------------------------------------------------------------------------------------------

Private Sub Command2_Click()

Dim tTable() As Integer

Dim tString As String

tString = TextGetByFile( "简易版本FormMainfrm ") '源文件

tTable() = GBToBig5TableGetByFile( "GBToBig3TAB ") '读转换表

tString = ReplaceTextGBToBig5(tString, tTable(), Text1)

TextPutToFile "简易版本BG5txt ", tString '写目的文件

End Sub

Function TextPutToFile(ByVal pFileName As String, pText As String)

'写文本到文件

Dim tFileNumber As Integer

Dim tBytes() As Byte

tFileNumber = FreeFile

Open pFileName For Output As #tFileNumber

Close #tFileNumber

Open pFileName For Binary As #tFileNumber

If Not pText = " " Then

tBytes() = StrConv(pText, vbFromUnicode)

Put tFileNumber, 1, tBytes()

End If

Close #tFileNumber

End Function

Function TextGetByFile(ByVal pFileName As String) As String

'从文件获得多行文本。

Dim tOutText As String

Dim tFileNumber As Integer

Dim tBytes() As Byte

tFileNumber = FreeFile

Open pFileName For Binary As #tFileNumber

If CBool(LOF(tFileNumber)) Then

ReDim tBytes(LOF(tFileNumber) - 1)

Get tFileNumber, 1, tBytes()

tOutText = StrConv(tBytes, vbUnicode)

Else

MsgBox "警告:文件 " & pFileName & "是空的! ", vbOKOnly, "文件无内容 "

End If

Close #tFileNumber

TextGetByFile = tOutText

End Function

Function ReplaceTextGBToBig5(ByVal pString As String, ByRef pTable() As Integer, Optional ByRef pViewText As TextBox = Nothing) As String

'转换GBK文本为Big5码。

Dim tOutString As String

Dim tIndex As Long

Dim tIndexOver As Long

Dim tAscii As Integer

Dim tCacheStr As String

Dim tCacheSize As Long

tIndexOver = Len(pString)

tCacheSize = Sqr(tIndexOver) + 1

For tIndex = 1 To tIndexOver

tAscii = Asc(Mid(pString, tIndex, 1))

tCacheStr = tCacheStr & Chr(pTable(tAscii))

If Not CBool(tIndex Mod tCacheSize) Then

tOutString = tOutString & tCacheStr

tCacheStr = " "

If Not pViewText Is Nothing Then

pViewTextText = (tIndex 100) \ tIndexOver

End If

End If

Next

If Not tCacheStr = " " Then

tOutString = tOutString & tCacheStr

tCacheStr = " "

End If

ReplaceTextGBToBig5 = tOutString

End Function

Function GBToBig5TableGetByFile(ByVal pFileName As String) As Integer()

'读GBK转Big5转换表文件

Dim tOutTable(-32768 To 32767) As Integer

Dim tFileNumber As Integer

tFileNumber = FreeFile

Open pFileName For Binary As #tFileNumber

Get #1, 1, tOutTable()

Close #tFileNumber

GBToBig5TableGetByFile = tOutTable()

End Function

-------------------------------------------------------------------------------------------------------------------

以上代码其实功能很单一:将GBK文本转换为BIG5。之所以能满足你的繁体需要是因为VB工程文件是文本格式的,仅仅可以保证你的工程代码成为繁体。

系统控件以及其他编译后的控件是二进制格式的,很难准确转换。我猜想:系统控件的语言和你安装的系统有关。究竟是不是这样,你自己试验一下就知道了。

根据我平时观察的现象:一些繁体软件在我的系统上用到的系统控件都是简体中文的,因此出现繁体/简体混杂现象,搞得我不得不用南极星“Auto”方式来自动识别。

根据这种现象,可能你的程序做成繁体后会出现如下现象:

1、在简体系统工作:系统控件是简体,程序本身的文字是繁体。

2、在繁体系统工作:系统控件是繁体,程序本身的文字是繁体。

如果打包工具携带有简体控件,并且安装到对方繁体系统下,则现象可能和(1)是相同。不妨先将代码转换之后编译为一个测试品,交给台方繁体系统测试一下就知道了。

寻求彻底的解决办法可以看看MSDN上的“多语言”部分相关内容,我对这部分并不熟悉。

另外,如果你将代码拷贝到繁体系统下以繁体VB编译,我想可以解决问题。因为转换为BIG5码后的代码和在繁体下编写出来的代码性质是一样的。这个办法比较保险一些。

微软专门制作了一款免费的语言设置工具。这个语言设置工具没有随 WindowsXP/Vista 发行,需要自行去网上下载。这个小工具的名字叫做“Microsoft AppLocale”(微软的免费下载地址:>

以上就是关于我有个用access写的程序,是在繁体系统用繁体写的,现在想在简体系统上使用它但老是出错。全部的内容,包括:我有个用access写的程序,是在繁体系统用繁体写的,现在想在简体系统上使用它但老是出错。、怎么在一个电脑上设置一个程序为繁体,而其他的程序简体、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9735718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存