2013-08-19 87 views
0

我编码一个下载器,基本上它是如何工作的,我把一个文本文件中的几个环节,看起来像这样:去掉空格

1 http://127.0.0.1:8080/patch/patches/test1.rar 
2 http://127.0.0.1:8080/patch/patches/test2.rar 
3 http://127.0.0.1:8080/patch/patches/test3.rar 

所以我下载这个文本文件通过在vb.net Web客户端与此下面的代码:

Dim PatchList = wc.DownloadString("http://127.0.0.1:8080/patch/PatchList.txt").Trim 
    Dim tLines As String() = PatchList.Split(Environment.NewLine) 

    For Each NewLine As String In tLines 
     Dim tVersionAndUrl As String() = NewLine.Split(vbTab) 
     Dim encText As New System.Text.UTF8Encoding() 
     Dim btText() As Byte 
     btText = encText.GetBytes(tVersionAndUrl(0)) 

     If tVersionAndUrl.Length < 2 Then 
      Exit For 
     End If 

     If Integer.Parse(tVersionAndUrl(0)) < Integer.Parse(CVersion.Text) Then 
      Dim TempPath As String = "\launcher\temp.rar" 
      My.Computer.Network.DownloadFile(tVersionAndUrl(1), Me.GetFileName(tVersionAndUrl(1))) 
      CVersion.Text = tVersionAndUrl(0) 
     End If 

    Next 
    MsgBox("Client is up to date") 

一切都很正常,但唯一的问题是,当它下载文件,它把一个某种形式的空间,每个号码之前,我相信这个空间可能只是一个正常的空间,或者可能是由于新的线路,我无法修剪它,因为当我什么事都没有发生时使用。所以它看起来像这样:

http://puu.sh/45B9j.png

但第一行是好的,它有没有空间。

我已经尝试了很多不同的策略来删除它,但我没有成功。

编辑:所以好吧,我试图确定它是一个新的行或空间,但它似乎不是?

我用这个代码:

If tLines.Contains(Environment.NewLine) Then 
     MsgBox("It's a freaking new line!") 
    ElseIf tLines.Contains(" ") Then 
     MsgBox("It's a freaking space!") 
    Else 
     MsgBox("There's no new lines or spaces. Huh?") 
    End If 

,我拿到了最后的消息框,确认这是两者都不是。现在我很困惑。

编辑2:按照要求这里是我试图删除空格/换行符。

Dim newString As String = tLines.ToString.Remove(Environment.NewLine) 

也试过:

Dim newString As String = tLines.ToString.Replace(vbCr, "").Replace(vbLf, "") 

而且我想:

Dim NoSpace = Replace(tLines.ToString, Chr(13), vbNullString) 

这:

Dim TrimmedLines As String = tLines.ToString.Trim 
+0

安置自己在消除空间的尝试,并且证明它不工作所产生的输出或错误。 –

+0

@KarlAnderson我编辑了我的主帖。 –

+0

尝试弄清楚这些空格到底是什么,也许它们是\ 0x0或\ t(制表符)等控制字符。然后正确更换。 你可以发布一个示例文件,以便我们弄清楚它吗? – natenho

回答

0

你可以尝试删除从每个字符串中的所有字符,唐” t落在ascii字符范围内(十六进制0x20 -0x7E)使用正则表达式:

Dim PatchList = wc.DownloadString("http://127.0.0.1:8080/patch/PatchList.txt").Trim 
Dim tLines As String() = PatchList.Split(Environment.NewLine) 

For i As Integer = 0 To tLines.Length - 1 

    tLines(i) = Regex.Replace(tLines(i), "[^\u0020-\u007E]", String.Empty) 

Next 

ASCII表:http://www.asciitable.com/

+0

哦,这部分工作。它确实删除了空间,但它也删除了标签,是否有可能阻止它删除标签? –

+0

在选项卡之前和之后重复上面的正则表达式? – rheitzman

+0

解决了它。我用过吗?删除所有的空格,然后,而不是在标签分裂我只是分裂在“#”。 –