我在庫存上傳的指定文件夾中收到excel文件。當這些上傳我的系統時拋出無效的InventoryId錯誤。最後一行數據帶有一個箭頭字符,當複製和粘貼時顯示一個空格。箭頭字符問題
有誰知道這個右箭頭是什麼? 它不是HTML,ASCII或Unicode。
我需要在該字符上創建一個驗證,如果存在的話不要帶上這一行。
我在庫存上傳的指定文件夾中收到excel文件。當這些上傳我的系統時拋出無效的InventoryId錯誤。最後一行數據帶有一個箭頭字符,當複製和粘貼時顯示一個空格。箭頭字符問題
有誰知道這個右箭頭是什麼? 它不是HTML,ASCII或Unicode。
我需要在該字符上創建一個驗證,如果存在的話不要帶上這一行。
解決了這個問題!
我所做的是找到角色是使用何種下面的代碼:
AscW(CurrentRecord(0).ToString) = Variable
一旦我找到了什麼角色是我使用的同一行中的if語句來解決這一問題。見下文。
If Not AscW(CurrentRecord(0).ToString) = "26" Then
If Not CurrentRecord(0).ToString = "InventoryId" Then
NewRow("InventoryId") = CurrentRecord(0)
NewRow("Quantity") = CurrentRecord(1)
NewRow("CostCentre") = CurrentRecord(2)
NewRow("UsageDate") = CurrentRecord(3)
InventoryLoad.Tables(0).Rows.Add(NewRow)
NewRow = InventoryLoad.Tables("Load").NewRow
End If
ElseIf AscW(CurrentRecord(0).ToString) = "26" Then
Else
CommonFunctions.ErrorEmail("ProductId " & CurrentRecord(0).ToString & " was not recognized", "LoadInventory - ProductId")
End If
你可以像下面這樣去除Unicode字符。
Dim Str As String = "My Stȟring of ChaǕracters"
Str = System.Text.RegularExpressions.Regex.Replace(Str, "[^\u0000-\u007F]", "")
,或者如果你想找出字符串,然後做一些事情
Dim Str As String = "My String of Characters"
Dim UniCodeCollection As System.Text.RegularExpressions.MatchCollection = System.Text.RegularExpressions.Regex.Matches(Str, "[^\u0000-\u007F]")
If UniCodeCollection.Count > 0 Then
'Add code to do somthing here
End If
由於右箭頭人物已經通過一個字符串被通過,它必須是 Unicode字符。
如果粘貼可疑字符的程序無法顯示,例如它使用的字體沒有可見的表示形式,那麼它可能會顯示爲空白。
您需要找出該字符的代碼。
字符將可能能夠在Visual Studio中顯示,因此複製和粘貼在下面的代碼來代替「焦糖布丁→」違規串並檢查輸出任何東西它脫穎而出:
Module Module1
Sub Main()
Dim s = "Crème brûlée →"
For i = 0 To s.Length - 1
Console.WriteLine(AscW(s(i)))
Next
Console.ReadLine()
End Sub
End Module
輸出:
67
114
232
109
101
32
98
114
251
108
233
101
32
8594
在上文中,8594(其爲& H2192)突出作爲是非常不同的。你現在只需要檢查是否s.IndexOf(ChrW(8594)) >= 0
,這表明該字符在字符串中。
如果庫存有象crèmebrûlée這樣的物品,那麼這將不會有用。 –
@AndrewMorton確定上面的代碼是刪除所有的Unicode字符。如果你需要保留重音字符,那麼你只需要修改正則表達式就可以了。一個包含大部分重音字符的例子就像'[^ \ u0000- \ u007F,^ \ u00E0- \ u017E]'。這可以讓你的奶油布... – jradich1234