2015-08-18 67 views
-1

我在庫存上傳的指定文件夾中收到excel文件。當這些上傳我的系統時拋出無效的InventoryId錯誤。最後一行數據帶有一個箭頭字符,當複製和粘貼時顯示一個空格。箭頭字符問題

有誰知道這個右箭頭是什麼? 它不是HTML,ASCII或Unicode。

我需要在該字符上創建一個驗證,如果存在的話不要帶上這一行。

回答

0

解決了這個問題!

我所做的是找到角色是使用何種下面的代碼:

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 
0

你可以像下面這樣去除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 
+0

如果庫存有象crèmebrûlée這樣的物品,那麼這將不會有用。 –

+0

@AndrewMorton確定上面的代碼是刪除所有的Unicode字符。如果你需要保留重音字符,那麼你只需要修改正則表達式就可以了。一個包含大部分重音字符的例子就像'[^ \ u0000- \ u007F,^ \ u00E0- \ u017E]'。這可以讓你的奶油布... – jradich1234

0

由於右箭頭人物已經通過一個字符串被通過,它必須 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,這表明該字符在字符串中。