C# で区切られた .txt ファイルをフォーマットするのに助けが必要です。ディレクトリ リストを含むテキスト ファイルがあり、メモ帳またはウルトラ エディットで開くと次のようになります。最初の列は日付と時刻、次の列はファイルのサイズ (バイト単位)、3 番目の列はユーザー名、4 番目の列はファイルの名前です。各列は 1 つ以上のスペースで区切られており、最後のファイル名列にはファイル名にスペースを含めることができます。それらはより多くのディレクトリで構成され、ファイル内の総行数は約 200,000 です。
V:\word の
ディレクトリ 01/10/2013 12:30 PM 23,000 BUILTIN/ADMINISTRATOR FILE NAME.XLS 10/25/2013
10:39 AM 1,332,432 AMERICAS/DOEJ FILENAME2.CSV
11/31/2000 09:54 PM 21,999,999 AMERICAS /DOEF F_I_L_E_N_A_M_E_4.PDF
Directory of V:\word\administrators
01/10/2013 12:30 PM 23,000 BUILTIN/ADMINISTRATOR FILENAME.XLS
10/25/2013 10:39 AM 1,332,432 AMERICAS/DOEJ FILENAME2.CSV
11/31/200 09:54 PM 21,999,999 南北アメリカ/DOEF F_I_L_E_N_A_M_E_4.PDF
私の目標は、ディレクトリのパス (例: V:\Word またはその他のディレクトリ) をファイル名の末尾に固定形式で追加することです。したがって、「Directory V:\word」が表示されたら、新しいディレクトリまでのすべての行で、ファイル名の末尾にそのパスが表示されるはずです。これは 5 番目の列と見なされます。
ここにいくつかのコードがありますが、まだ助けが必要です。ファイルの最後に V:\word を取得できますが、新しいディレクトリを読み取って、それを後続のすべての行の行末に追加するにはどうすればよいですか?
private void button1_Click(object sender, EventArgs e)
{
var sbText = new StringBuilder(10000);
string currLine = " Directory of V:\\word ";
try
{
using (StreamReader Reader = new StreamReader(@"C:\V.txt"))
{
while (!Reader.EndOfStream)
{
if (currLine != " Directory of V:\\word ")
{
MessageBox.Show("No Directory");
}
else
{
sbText.AppendLine(Reader.ReadLine() + "V:\\word");
}
}
// When all of the data has been loaded, write it to the text box in one fell swoop
richTextBox1.Text = sbText.ToString();
using (StreamWriter Writer = new StreamWriter(@"C:\NEWFILE.txt"))
{
Writer.WriteLine(sbText);
}
}
}
catch (Exception ex)
{
MessageBox.Show("An error has occured. " + ex.Message);
}