vb如何取有中文字符的txt文件
txt文件如下:是的文件,但有中文字符後,每行的LEN度不一
1 7EIACOA6E05Z0 集成 Coach 6E IC DSC & MP4 PC 34.3200 100.00
2 7EIU78F9A14N3 集成 IC MCU 8Bit SSOP20"NEC" PC 3.8600 100.00
3 7EMC1800001G3 加工件Lens Module For180 PC 50.4500 100.00
4 7EMLTD015THT6 Module 1.5"TFT Toppoly w/built PC 51.4800 100.00
在vb中文,然後通循取出第一行後值附txt,txt(1)文本框
txt(1)=Trim(Mid$(txt,4, 16))
txt(2)=Trim(Mid$(txt,20, 28))
txt(3)=Trim(Mid$(txt,48, 7))
行後始行有,但第三行就掉了,後是文中的第二列有不同的中文,用len,度不同
len("集成 Coach 6E IC DSC & MP4 ")
len("加工件Lens Module For180 PC ")
我怎取呢?
[解决办法]
很简单的:
dim v as variant
v=split(txt," ")
n=ubound(v)
然后 v(0),v(1), ... v(n) 就是分离出来的每个项。
[解决办法]
从两边按空格进行切割
- VB code
Option ExplicitSub Main() Parse " 1 7EIACOA6E05Z0 集成 Coach 6E IC DSC & MP4 PC 34.3200 100.00 " Parse " 2 7EIU78F9A14N3 集成 IC MCU 8Bit SSOP20""NEC"" PC 3.8600 100.00 " Parse " 3 7EMC1800001G3 加工件Lens Module For180 PC 50.4500 100.00 " Parse " 4 7EMLTD015THT6 Module 1.5""TFT Toppoly w/built PC 51.4800 100.00 "End SubSub Parse(ByVal s As String) Dim txt(4) As String txt(0) = CutLeft(s) txt(1) = CutLeft(s) txt(4) = CutRight(s) txt(3) = CutRight(s) txt(2) = Trim$(s) Debug.Print Join(txt, " | ")End SubFunction CutLeft(ByRef s As String) As String Dim i As Long s = Trim$(s) i = InStr(1, s, " ") If i <> 0 Then CutLeft = Left(s, i - 1) s = Mid$(s, i + 1) Else CutLeft = s s = vbNullString End IfEnd FunctionFunction CutRight(ByRef s As String) As String Dim i As Long s = Trim$(s) i = InStrRev(s, " ") If i <> 0 Then CutRight = Mid$(s, i + 1) s = Left$(s, i - 1) Else CutRight = s s = vbNullString End IfEnd Function
[解决办法]
每一行最多四项(代号,品名,总价和单价)?最后两项之间确定只有一个空格?
dim wrkstr() as string
dim txtstr as string
dim tmpstr as string
dim i as integer
wrkstr()=split(txtstr," ")
for i=1 to ubound(wrkstr)-2
tmpstr=tmpstr & space(1) & wrkstr(i)
next i
tmpstr=trim(tmpstr)
txt(0).text=wrkstr(0)
txt(1).text=tmpstr
txt(2).text=wrkstr(ubound(wrkstr)-1)
txt(3).text=wrkstr(ubound(wrkstr))