在使用VB编写后端程序处理文本文件的时候,常碰到的事情就是VB的默认文本处理方式问题。
在VB中,以UniCode方式处理字符串,Left,Right,Mid均为Unicode下的函数。举个例子:“中国上海延安西路990号53弄”。在这个字符串中,定义前4个字符为国别,接着4个为省市,如果我们使用Left(st ,4) ,取出的字符串将返回“中国上海”。由于绝大多数的大型系统,仍然按照ASCII方式处理问题,接口文件将在这类文本文件处理中毫无用处。
那难道不能处理这类文本文件了嘛?不是。 VB提供了转换程序。
StrConv(St, vbFromUnicode)
这条语句将返回采用ASCII方式存在的一个字符串。虽然这个字符串现在无法打印,无法明显的看出内容,但是他却给了我们莫大的好处,这个时候这个字符串的位数信息终于符合ASCII接口文件了。
LeftB ,RightB , MidB 这3个程序,就是字符串在ASCII方式下的处理程序。
NewSt = StrConv(St, vbFromUnicode)
NewSt =LeftB(NewSt ,2)
msgbox StrConv(St , vbUnicode)
这里再次提醒各位,VB的所有显示写入等操作,还是以Unicode为核心的处理方式,所以最后,如果你要显示这个信息的话,需要使用StrConv(St ,VBUnicode)再转换回去。