2011-06-30 10 views
1

ファイルの内容全体を読み込み、配列に入れようとしています(要素は行で、配列[2]は3行目などとなります)。ファイルを読み込んで内容を配列に入れます

は、私が試した:私はこれについて見つかったすべてが行毎にファイルを読み込み、配列にそれをプッシュする大きなループだったので、私は信じてい

originalFileContentArray = new string[] { fileReader.ReadToEnd() }; 

は良いアイデアです...

私の考え方の問題は、行が自動的に区切られないように、配列内に内容全体を含む大きな要素が1つしか含まれていないことです。

コンテンツを正しく複数の要素に分割する方法については何か考えてください。

ありがとうございます!代わり

答えて

2

使用String.Split又はFile.ReadAllLines()

0
originalFileContentArray = fileReader.ReadToEnd().Split(new char[] {'\r'}); 
+0

最初の行を除いて、最初の文字として '\のN 'を持ってラインを与えるだろうと。ファイルの最後の行にはただ1つの '\ n'文字しか含まれません。あなたは '\ r \ n 'で分割することで潜在的にこれを行うことができますが、' File.ReadAllLines'を使うことはよりクリーンな解決策です。 –

-1

私はそうのようなテキストファイルから配列を作成し(各ラインが元素です) :

string[] lines = File.ReadAllLines(@"c:\users\" + Environment.UserName + @"\desktop\data.txt"); 

そして、そのようにそれをロール:

foreach (string line in lines) { // manipulate data here } 

が、これは

+0

@ BrokenGlassの答えと比較して、あなたが追加したのは、ファイルパスを作るための非常に悪い方法の例です。 –

+0

@Ben Voigt - あなたの洞察に感謝します。 –

1

を助けている場合、あなたが本当にあなたがそれらを操作できるように、メモリ内のすべての行を持っている必要がある場合は、私に教えてください、そしてFile.ReadAllLinesです行く道。しかし、あなたはちょうどそのFile.ReadLinesを使用して、ファイルのライン・バイ・ラインを処理する必要がある場合:

foreach (string line in File.ReadLines(filename)) 
{ 
    // process this line 
} 
関連する問題