2010-11-24 6 views
2

私は、テキストログファイルから変換された配列の読み込み順序に関する質問があります。C#foreachループを使って配列[0]の代わりに配列[1]を読み込むには?

最初の行[0]にあるプロセスで読み込む必要のないファイルヘッダーがあるため、[0]行をスキップして最初に行[1]を読み込む方法はありますか?

プログラムは、foreachループを使用して配列を読み込みます。そしてトークン化の方法があります。したがって、トークン化が配列の文字列形式を再調整するためにforeachループが必要です。

コードに関するアドバイスをお願いします。ありがとう!

プログラムコード:

Date,Size,Type,Mode,UID,GID,Meta,File Name // Lines[0] 
Sun Jul 22 2001 02:37:46,73882,...b,r/rrwxrwxrwx,0,0,516-128-3,C:/WINDOWS/Help/digiras.chm // Lines [1] 
Sun Jul 22 2001 02:44:18,10483,...b,r/rrwxrwxrwx,0,0,480-128-3,C:/WINDOWS/Help/cyycoins.chm 
Sun Jul 22 2001 02:45:32,10743,...b,r/rrwxrwxrwx,0,0,482-128-3,C:/WINDOWS/Help/cyzcoins.chm 
Sun Jul 22 2001 04:26:14,174020,...b,r/rrwxrwxrwx,0,0,798-128-3,C:/WINDOWS/system32/spool/drivers/color/kodak_dc.icm 

答えて

6

Skip拡張メソッドを使用します。

class Program 
{ 
    static void Main(string[] args) 
    { 
     System.Collections.Generic.IEnumerable<String> lines = File.ReadLines("C:\\syscrawl\\ntfs3.txt"); 

     foreach (String r in lines) //Start reading from lines[1] first instead? 
     { 
      String[] token = r.Split(','); 
     } 
    } 
} 

あなたはここで、ログのテキストファイルは例です必要がある場合には。例えば。あなたの代わりに、カウントに頼るの行を調べたい場合は

foreach (String r in lines.Skip(1)) //Start reading from lines[1] first instead 
{ 
    String[] token = r.Split(','); 
} 

、あなたはSkipWhileを使用することができます。例えば。

foreach (String r in lines.SkipWhile(l => l.StartsWith(HeaderInfo)) 
{ 
    String[] token = r.Split(','); 
} 
+0

すっごい素晴らしいです!ありがとう、相棒! – JavaNoob

3

使用.Skip

foreach (String r in lines.Skip(1)) 
関連する問題