您的位置:程序门 -> vb -> 基础类



又一个字符分割的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


又一个字符分割的问题[已结贴,结贴人:imtiger]
发表于:2007-07-18 15:21:33 楼主
从文本中读数据,格式如下
101           财务部         002         40000
103           生产部         012             500
109           it部             011           6000
999           其它                               900

要从中分解出第一列和第4列数据。请问有什么好办法吗?
发表于:2007-07-18 15:31:201楼 得分:0
split函数
           

描述

返回一个下标从零开始的一维数组,它包含指定数目的子字符串。

语法

split(expression[,   delimiter[,   count[,   compare]]])

split函数语法有如下几部分:

部分   描述  
expression   必需的。包含子字符串和分隔符的字符串表达式   。如果expression是一个长度为零的字符串( " "),split则返回一个空数组,即没有元素和数据的数组。  
delimiter   可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符( "   ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的   expression字符串。  
count   可选的。要返回的子字符串数,–1表示返回所有的子字符串。  
compare   可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。  


设置值

compare参数的设置值如下:

常数   值   描述  
vbusecompareoption   –1   用option   compare语句中的设置值执行比较。  
vbbinarycompare   0   执行二进制比较。  
vbtextcompare   1   执行文字比较。  
vbdatabasecompare   2   仅用于microsoft   access。基于您的数据库的信息执行比较。  
发表于:2007-07-18 15:43:552楼 得分:0
http://community.csdn.net/expert/topic/5655/5655789.xml?temp=.819317
看上去类似
发表于:2007-07-18 15:44:343楼 得分:0
不行啊,用split前三行得到4个子串,但第4行只有3个子串。
发表于:2007-07-18 16:00:494楼 得分:0
呵呵,没注意到第四行不同
想想先
发表于:2007-07-18 16:12:385楼 得分:0
每一列的宽度是固定的,如果有方法能够读取固定宽度的列应该也能解决这个问题。但是我不会,只好一行一行的读出来,再在字符串里用mid函数截,但是中文的长度在文件里占两位,而字符串里只算1位。
发表于:2007-07-18 16:18:076楼 得分:50
字符宽度好解决
private   sub   command1_click()
        dim   s   as   string,   t   as   string
        s   =   "123我们abc "
        t   =   strconv(s,   vbfromunicode)
        s   =   midb(t,   2,   5)
        s   =   strconv(s,   vbunicode)
        print   s
end   sub
发表于:2007-07-18 16:21:017楼 得分:0
strconv配合midb,就可以实现中文在字符串操作里面也占两位了
发表于:2007-07-18 16:34:068楼 得分:0
还是看看逻辑吧,你的数据有什么规律什么的
发表于:2007-07-18 16:45:019楼 得分:0
写入的时候就是按照固定宽度写的,中文算两位
发表于:2007-07-18 16:56:3010楼 得分:0
用strconv配合midb解决了。


快速检索

最新资讯
热门点击