2017-08-26 177 views
0

仍然在我的項目上工作,並希望有更多的幫助。這是我的問題:我有一個字符串在CompanyID可能充滿「」空間(從ASCII十六進制文本派生)。我嘗試過的一些代碼不會檢測到空格(可能是因爲有許多十六進制字符會返回空格,而且它們的值不同),代碼(圖B)返回所有空格的值。我想要做的是搜索任何字母/數字的字符串「CompanyID」。如果是的話,我需要textBox10.Text = CompanyID;如果沒有,我需要輸出到文本框,如圖A所示。如果ASCII字符串包含字母或數字,然後返回文本

圖。 - 答:

else textBox10.Text = "No Value!"; 
if (val.Contains("No Value!")) textBox10.ForeColor = Color.Orange; 

圖。 B:

// COMPANY ID 
{ 
BinaryReader br3 = new BinaryReader(File.OpenRead(OpenFileDialog1.FileName)); 
       br3.BaseStream.Position = 0x110; 
       Char[] charArray = br3.ReadChars(16); 
       string CompanyID = new string(charArray); 
       textBox10.ForeColor = Color.Black; 
       textBox10.Text = CompanyID; 
       br3.Close(); 
       { 
        // CODE REPLACEMENT 
        string val = CompanyID; 
        textBox10.ForeColor = Color.Black; 
        foreach (char c in CompanyID) 
        { 
         if (Char.IsDigit(c)) textBox10.Text = CompanyID; 
         else textBox10.Text = "No Value!"; 
         if (val.Contains("No Value!")) textBox10.ForeColor = Color.Orange; 
        } 
       } 

任何幫助,將不勝感激。感謝您的時間!

+0

「返回不同值的空格」 - 應該告訴你,你沒有使用ASCII。那麼,「ASCII十六進制文本」也不是ASCII?你處理得當嗎?十六進制字符用於表示字節。字節表示編碼文本。沒有文字,但編碼文字。您默認使用['new BinaryReader(...)'](https://msdn.microsoft.com/en-us/library/2k01zeat(v = vs.110)]中Unicode字符集的UTF-8編碼。 ASPX)。 (這很可能是正確的,特別是因爲在過去的三十年裏,ASCII通常不被用於文本文件。)[我看不到十六進制涉及到哪些內容。] –

回答

0

我用下面的代碼來解決我的問題。有人建議使用IsWhiteSapce來檢測字符串中是否有任何內容(即使該內容已被刪除),它一直在爲我工作。感謝那些回答誰的人。

// DESCRIPTION 
      { 
       BinaryReader br7 = new BinaryReader(File.OpenRead(OpenFileDialog1.FileName)); 
       br7.BaseStream.Position = 0x1c8; 
       Char[] charArray = br7.ReadChars(40); 
       string Desc = new string(charArray); 
       textBox11.Text = Desc; 
       if (textBox11.Text.All(c => char.IsWhiteSpace(c))) 
       { 
        textBox11.ForeColor = Color.Orange; 
        textBox11.Text = "No Value!"; 
       } 
       else textBox11.ForeColor = Color.Black; 

       br7.Close(); 
相關問題