大家快来帮帮我!

时间:2022-07-25 14:10:43
小生最近编程时遇到了一个非常棘手的问题,希望大家能帮我解决。我在程序里
添加了一个模块,定义了一个全局的字符型(String)数组(A)并写了一个打开文件的过程。在打开文件的过程里,我将文件中的十个字符读入字符数组的一个元素A(1)中。我使用了VB里的Get函数: 

Dim temp As String
Open filename For Birnary As #1
temp=Space$(10)  
'从当前位置读取
Get #1,,temp 
A(1)=temp
.....
(假设A(1)现在为"123   ")可当小生要将A(1)中字符串的空格去除时,却发现
Rtrim$()函数都不再管用了,即经过函数Rtrim$(A(1))之后其结果仍为"123   "。
而且还有另外一个现象,就是我用Right$()函数去取A(1)的最右边的一个字符,
将其赋给一个变量str,在调试时可以看到str是一个空格,但如果用Asc()函数
去计算str的值,结果却是0(即Asc(str)=0)。
小生百思不得其解,只记得在出现这种奇怪的现象之前,我使用过一次StrConv
函数(StrConv(A(1),VbFromUnicode)),但后来便去除掉了。还装过一次MDAC2.0,
我怀疑是不是程序使用的内码有问题?我将程序拿到别人的电脑上去试,结果也
是一样的,Rtrim$()函数还是失效我已经没有办法再想了,希望大家帮忙!
多谢了!

6 个解决方案

#1


那是因为你所取到的字符串是Windows里的以ACII值0(\0), C语言里边就是这样;但VB里边的字符串是不同的,结尾并没有\0,因此必须使用StrConv来进行转换。

#2


用trim()

#3


或有chr(10) or  chr(13)!!!!!!!
就是回车或换行符

#4


他们都说了。我说啥?也不留一点给我!

#5


楼上的你乱嚷什么,我那次不都在你后面,我还没有叫呢,咩咩

#6


脚下的哥们:

这个问题给你们:
http://www.csdn.net/expert/TopicView.asp?id=49611

#1


那是因为你所取到的字符串是Windows里的以ACII值0(\0), C语言里边就是这样;但VB里边的字符串是不同的,结尾并没有\0,因此必须使用StrConv来进行转换。

#2


用trim()

#3


或有chr(10) or  chr(13)!!!!!!!
就是回车或换行符

#4


他们都说了。我说啥?也不留一点给我!

#5


楼上的你乱嚷什么,我那次不都在你后面,我还没有叫呢,咩咩

#6


脚下的哥们:

这个问题给你们:
http://www.csdn.net/expert/TopicView.asp?id=49611