我正在编写一个下载程序,基本上它是如何工作的,我在文本文件中放了几个链接,如下所示:
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")
一切都很好但唯一的问题是当它下载文件时它会在每个数字之前放置一些空间,我相信这个空间可能只是一个正常空间,或者可能是由于新行,我不知道因为当我没有做任何事情时,我能够修剪它。所以它看起来像这样:
但第一行很好,没有空间。
我尝试过很多不同的策略来删除它但是我没有成功。
编辑:好吧,我试着确定它是新线还是空格但似乎不是?我使用了这段代码:
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
答案 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/