2012-10-22 9 views
6

私は、別のアプリケーションによって構成ファイルとして使用されるテキストファイルを持っています。私はファイルの各行をString配列に読みました:テキストファイルの1行を置換する

string[] arrLine = File.ReadAllLines(pathToFile); 

私はそれが必要なのと正確に動作します。

ここでは、arrLine [x]の行全体を文字列で置き換えて、その行とその行だけを上書きします。私は、私が置き換える必要がある正確な行を知るためのコードを書いた、私はそれを置き換える方法を知る必要があります。

私はarrLine [x] .Replace(oldString、newString)を考えています - これが動作すれば、実際にテキストファイルに変更をコミットする方法はありますか?私は何とかファイル全体を書き直す必要がありますか? 1行だけ書き換えが必要なときに非効率的な面が少しあると思っていますか?

+1

割り当てられている文字列を上書きするだけです。交換する必要はありません。 –

答えて

7

あなたはただ、その要素を割り当てることができる必要があります:

arrLine[yourLineNumber] = "Foo"; 

私が実際にテキストファイルに変更をコミットするだろうか?

これを実行したら、File.WriteAllLines(pathToFile, arrLine);を使用してデータを元のファイルに書き戻すことができます。

+0

ありがとう - ちょうど私が必要なもの! – Aburley

+4

これは実際には、「ファイル全体を書き直す必要があるのですか、または変更された単一の行だけを置き換える方法はありますか?」と批判的な質問には答えません。 "sed for C#"のようなものは、本当にここで欲しいものです。 sed自体はStdlib.system( "sed -i s?etc blah blah")を使ってLinuxのmono c#プログラムから呼び出すことができますが、これは面倒なことがあります。 – mickeyf

+0

私はちょうどライン3を変えるために1.5GB PLYポイントクラウドを読みました。それは8GBのRAMを使いました。それはFile.WriteSingeLine()を持っている意味があります。 –

関連する問題