定长字符串你没有理解。一个定长字符串,比如dim str as string * 256,这个str变量里面就包含了256个空字符,而不是空格。
首先你要理解字符和字符串的区别,字符是一个一个的,字符串是一组字符组成的。
其次,空字符的Ascii码是0,而空格是32,在VB里表示为 Chr(0) 和 Chr(32)
在VB里,空字符也可以用常量 vbNullChar 来表示。而你提到的几个Trim的函数,去除的只是 Chr(32) 这样的空格符,而不是空字符,所以你不成功。
下面我给你写个函数示例:
Function CutNullChar(Optional ByVal SourceString As String = vbNullString) As String
Dim NullCharPostion As Long
NullCharPostion = InStr(SourceString, vbNullChar)
If NullCharPostion = 0 Then
CutNullChar = SourceString
Else
CutNullChar = Left(SourceString, NullCharPostion - 1)
End If
End Functiond Function
这样改:
'自定义结构类型
Private Type FILEITEM
PN As String * 20 '图片的名字
End Type
Dim s As FILEITEM '定义一个结构变量
Dim f As String
'获取字符串
Private Sub Command1_Click()
'打开文件
Open App.Path & "\1.MP3" For Binary As #1
Get #1, , s.PN '获取名字
Close #1
'显示
f = "你好" & Replace(s.PN, Chr(32), "") & ".bmp" '如何去掉中间的空格?
Cls
Print f
End Sub
比如说
dim a as string*20
读取前先用空格填满
a=space(20)
'读取
b=trim(a)
Trim(str)即可.
有的是换行符号.看上去同空格