2017-05-25 70 views
0

我嘗試檢測加載的文本文件中的引號,但它不起作用。我用'''和'\''嘗試沒有成功。任何建議?感謝C#檢測文本文件中的引號

void read() 
{ 
    txt = File.ReadAllText("txt/txttst"); 

    for(int i=0;i<txt.Length;i++) 
    { 
     if(txt[i]=='"') 
     { 
      Debug.Log("Quotes at "+i); 
     } 
    } 
} 
+0

什麼是異常或? –

+1

' 」TXT/txttst「'是一個* odd *文件名...類似於'@「c:\ mydata.txt」'預計有 –

+0

沒有例外,它只是不輸出任何內容。 而不是txt = File.ReadAllText(「txt/txttst」);那麼它的工作。 在Unity3d中,任何非完整路徑都與Asset文件夾相關。我可以讀取文件沒有問題,但我無法檢測報價。 – cubecube

回答

0

這個怎麼樣

string[] lines = File.ReadAllLines(@"txt/txttst"); 

     for (int i=0;i<lines.Length;i++) 
     { 
      string line = lines[i]; 

      // ASCII Code of Quotes is 34 

      var bytes = Encoding.UTF8.GetBytes(line.ToCharArray()).ToList(); 

      if(bytes.Count(b=> b.ToString()=="34")>0) 
       Console.WriteLine("\"" + "at line " + (i + 1)); 

     } 
+0

控制檯仍然沒有顯示這種方式 – cubecube

+0

我在mac上,也許這是一個mac問題?任何人都可以嘗試使用Unity代碼行,並讓我知道它是否可以在您的系統上運行?歡呼 – cubecube

+0

- 當我在控制檯上讀取文件中的文本時,出現引號 - 我的一位朋友在他的Mac上試過了這段代碼,它工作正常。 - 也許它與文件加密有關,然後我會嘗試 想出解決辦法。 – cubecube

0

這是你如何能做到呢,請看代碼和下面的截圖。希望能幫助到你。

namespace TestConsoleApp 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string txt = File.ReadAllText(@"C:\Users\Public\TestFolder\test.txt"); 

      string[] lines = File.ReadAllLines(@"C:\Users\Public\TestFolder\test.txt"); 
      var reg = new Regex("\""); 

      Console.WriteLine("Contents of test.txt are; "); 

      foreach (string line in lines) 
      { 
       Console.WriteLine(line); 


       var matches = reg.Matches(line); 
       foreach (var item in matches) 
       { 
        Console.WriteLine("Quotes at "+ ((System.Text.RegularExpressions.Capture)item).Index); 
       } 
      } 
     } 

    } 
} 

enter image description here

0

好吧,我發現這個問題,我的文本編輯器做了細微的自動修正,從「到「乾杯。