回 帖 发 新 帖 刷新版面

主题:如何去除由excel转出来的txt文件中的“大空格”?

现有一个由excel转出来的txt文件,内部所有的空格都是“大空格”,估计是tab,我已可以读出其中所需要的一行,但是想去除其中的“大空格”,也就是说只需要字符串,但是我用了S = Replace(S, vbTab, "")语句,发现不管用,在text1.text中还是显示“大空格”,请问这是什么原因?
现将我的程序贴出,请帮我看看哪里错了,谢谢。
 Private Sub Command1_Click()
Open "c:\11.txt" For Input As #1
Dim S As String
S = Replace(S, vbTab, " ")
Do While Not EOF(1)
Line Input #1, S
If InStr(S, Label1.Caption) <> 0 Then
Label3.Caption = Right(S, 315)
Text1.Text = S
Exit Do
End If
Loop
Close
End Sub

Private Sub Form_Load()
Label1.Caption = "Bin1"
End Sub


附件为需要读的11.txt文件和我编写的程序。

回复列表 (共3个回复)

沙发

首先把11.txt移动到主程序所在的文件夹,并设置文本框的两个属性:

Text1.MultiLine = True
Text1.ScrollBars = 3

然后修改代码:

Private Sub Command1_Click()
Dim S1 As String, S2 As String
Open App.Path & "\11.txt" For Input As #1
Do Until EOF(1)
  Line Input #1, S1
  If InStr(S1, Label1) Then
    S1 = Left(Replace(S1, vbTab, " "), 20) '只要前面20个字符
    S2 = S2 & S1 & vbCrLf
  End If
Loop
Close
Text1 = S2
End Sub

Private Sub Form_Load()
Label1 = "Bin"
End Sub

板凳

1.chr(9)叫做TAB制表符,不需要估计,用asc( )或二进制编辑器可以得知.
2.楼主的错误,是在于,文件里的字符还没有读取,就对变量进行替换了,这个时候替换的字符串只是空串,替换毫无意义.而读取文件内容之后,却没有进行替换,所以事实上,并没有替换动作.希望你能听得明白.

3 楼

用asc函数将每一个字符输出看看。

我来回复

您尚未登录,请登录后再回复。点此登录或注册