現在

2016-11-03 5 views
-1

をreadlineの出力をフォーマットするためにどのようにC#の、私はリッチテキストボックスにテキストファイルから行を出力ラインを読みましたが、私はその行をフォーマットしたい現在

if (UsernameCheckers.Text != "Username") 
      { 
       string line; 

       StringBuilder sb = new StringBuilder(); 

       using (System.IO.StreamReader file = new System.IO.StreamReader(@"\\studprint2\PCOUNTER\DATA\REJECT.LOG")) 
       { 
        while ((line = file.ReadLine()) != null) 
        { 
         if (line.IndexOf(UsernameCheckers.Text, StringComparison.OrdinalIgnoreCase) >= 0) 
         { 
          sb.AppendLine(line.ToString() + "\n"); 
         } 
        } 
       } 
       DisplayBox.Text = sb.ToString(); 
      } 

の例では、

BCROSS11になりますDocumentname.doc、\ STUDPRINT2の\コンピュータ名、15/05/2010,14:48、\ 1234566788、残高不足,,,/TS = 4BEEA622,107502,10 ,,

と私はそれが

を言いたいです
Username: BCROSS11 

File name: Documentname.doc 

Error: Insufficient balance 

Date: 15/05/2010,14:48 

Computer name: \STUDPRINT2\computername 

私は何をしますか?

+1

'string.Split'。 – aevitas

+1

ファイルを1つの文字列にする必要がありますか?ファイルの内容はどのように見えますか?それをより良いフォーマットにするために配列や構造体に解析できますか? – Poody

+0

あなたが持っているように見えるのはcsvファイルです。文字列を他のものと分けることができます。または、https://joshclose.github.io/CsvHelper/ – ElectricRouge

答えて

0

文字列が同じ順番で各行に残っている場合は、 String.Splitメソッドを使用して、必要な部分にスライスします。ここで

あなたのケースでの使用を説明するための小さなコンソールアプリケーションです:

static void Main(string[] args) 
{ 
    string test = @"BCROSS11,Documentname.doc,\STUDPRINT2\computername,15/05/2010,14:48,\1234566788,Insufficient balance,,,/Ts=4BEEA622,107502,10,,"; 

    // Split the string and it will return an array of strings 
    string[] split_array = test.Split(','); 

    // Test output to the console 
    Console.WriteLine(String.Join("\n", split_array)); 
    Console.WriteLine("END"); 

    Console.ReadKey(); 
} 

出力は次のようになります。

BCROSS11 
Documentname.doc 
\STUDPRINT2\computername 
15/05/2010 
14:48 
\1234566788 
Insufficient balance 


/Ts=4BEEA622 
107502 
10 


END 

今、あなたは、行をカウントすることができますし、で知っているだろうあなたは情報を引き出す必要があります。インデックスが0で始まり、1で始まらないことを忘れないでください! 文字列:",,,"は3つの空の文字列に分割されます。これは、出力に空の行がある理由です。