これは、テキスト ファイルの最後の 3 行を削除するためにこれまで見てきたコードですが、string[] lines = File.ReadAllLines(); を特定するために必要です。私がそうする必要はありません。
string[] lines = File.ReadAllLines(@"C:\\Users.txt");
StringBuilder sb = new StringBuilder();
int count = lines.Length - 3; // except last 3 lines
for (int s = 0; s < count; s++)
{
sb.AppendLine(lines[s]);
}
コードはうまく機能しますが、上記のストリームリーダーについて述べたように、ファイルを再読み込みしたくありません。
using (StreamReader r = new StreamReader(@"C:\\Users.txt"))
streamreaderを使用した後、私が知る限り、C#は初めてです。行を変更したい場合は、これを使用する必要があります:
while ((line = r.ReadLine()) != null)
{
#sample codes inside the bracket
line = line.Replace("|", "");
line = line.Replace("MY30", "");
line = line.Replace("E", "");
}
では、「while ((line = r.ReadLine()) != null)」内のファイルの最後の 3 行を削除する方法はありますか??
行を削除し、行を置き換え、さらにいくつかの変更を一度に行う必要があるため、同じテキストファイルを何度も開いたり読んだりして行を変更することはできません。私が尋ねる方法があなたたちにとって理解できることを願っています >.<
助けてください。質問が単純に聞こえることは知っていますが、解決する方法をたくさん検索しましたが、失敗しました =(
これまでのところ、私のコードは次のとおりです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication11
{
public class Read
{
static void Main(string[] args)
{
string tempFile = Path.GetTempFileName();
using (StreamReader r = new StreamReader(@"C:\\Users\SAP Report.txt"))
{
using (StreamWriter sw = new StreamWrite (@"C:\\Users\output2.txt"))
{
string line;
while ((line = r.ReadLine()) != null)
{
line = line.Replace("|", "");
line = line.Replace("MY30", "");
line = line.Replace("E", "");
line = System.Text.RegularExpressions.Regex.Replace(line, @"\s{2,}", " ");
sw.WriteLine(line);
}
}
}
}
}
}
次のタスクは、ファイル内のこれらのコードの後の最後の 3 行を削除することです。これについては助けが必要です。
ありがとうございました。