删除VB中下载的文本文件中的空格

时间:2013-08-19 14:30:21

标签: vb.net newline trim

我正在编写一个下载程序,基本上它是如何工作的,我在文本文件中放了几个链接,如下所示:

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

我收到了最后一个消息框确认它既不是。现在我很困惑。

EDIT2:根据我的要求,我试图删除空格/换行符。

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

1 个答案:

答案 0 :(得分:0)

您可以尝试使用正则表达式删除每个字符串中不属于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/