シャープ現像を使用しています。C# を使用して Win アプリを作成しています。プログラムでドライブ c: の test という名前のテキスト ファイルをチェックし、「=」を含む行を見つけて、この行をドライブ c: に新しく作成された他のテキスト ファイルに書き込みます。
質問する
199 次
6 に答える
2
File.ReadLines
、Linq Where
、およびを使用した別の簡単な方法を次に示します。File.AppendAllLines
var path1 = @"C:\test.txt";
var path2 = @"C:\test_out.txt";
var equalLines = File.ReadLines(path1)
.Where(l => l.Contains("="));
File.AppendAllLines(path2, equalLines.Take(1));
于 2012-09-28T05:26:03.153 に答える
2
このワンライナーを試してください:
File.WriteAllLines(destinationFileName,
File.ReadAllLines(sourceFileName)
.Where(x => x.Contains("=")));
于 2012-09-28T05:22:38.260 に答える
1
using(StreamWriter sw = new StreamWriter(@"C:\destinationFile.txt"))
{
StreamReader sr = new StreamReader(@"C:\sourceFile.txt");
string line = String.Empty;
while ((line = sr.ReadLine()) != null)
{
if (line.Contains("=")) { sw.WriteLine(line)); }
}
sr.Close();
}
于 2012-09-28T05:20:05.057 に答える
0
if (File.Exists(txtBaseAddress.Text))
{
StreamReader sr = new StreamReader(txtBaseAddress.Text);
string line;
string fileText = "";
while ((line = sr.ReadLine()) != null)
{
if (line.Contains("="))
{
fileText += line;
}
}
sr.Close();
if (fileText != "")
{
try
{
StreamWriter sw = new StreamWriter(txtDestAddress.Text);
sw.Write(fileText);
sw.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
于 2012-09-28T05:26:19.323 に答える
0
何か試しましたか?
ファイルを読み取るには、次の 2 つの方法があります。
File クラスで利用可能な静的メソッドを使用します。具体的には ReadAllLines です。小さなファイルを扱う場合は、これで十分です。次に、配列を取得したら、LINQ を使用するか、その他の反復メソッドを使用して、"=" を含むアイテムを見つけます。行を取得したら、再び File クラスを使用してデータを作成し、ファイルに書き込みます。
大きなファイルを扱う場合は、Stream を使用してください。残りはほぼ同じままです。
于 2012-09-28T05:19:50.147 に答える
0
少し編集されたFurqanの答え
using (StreamReader sr = new StreamReader(@"C:\Users\Username\Documents\a.txt"))
using (StreamWriter sw = new StreamWriter(@"C:\Users\Username\Documents\b.txt"))
{
int counter = 0;
string line = String.Empty;
while ((line = sr.ReadLine()) != null)
{
if (line.Contains("="))
{
sw.WriteLine(line);
if (++counter == 4)
{
sw.WriteLine();
counter = 0;
}
}
}
}
于 2012-09-28T05:33:45.723 に答える