テキストファイルに文字列が何行も入っていて、特定の文字列を指定した文字列で置き換えたい場合、C#で書く方法は何通りもあると思いますが、私は以下のコードを使ってます。
サンプルのテキストファイルをプロジェクト内に配置します。sample.txtの中身:
1行目:シーシャープって知ってる?おいしいの?
2行目:どこに行ったら食べれるの?食べても安心?
3行目:本当においしいのかな?安全じゃなかったら食べたくないな。
4行目:でも興味があるから今日食べてみる。
目的はテキストファイルにある「おいしい」という文字を「美味しい」に変換することです。 ではコードは以下の通り:
using System.Configuration;
using System.IO;
using System.Text;
string dirpath = @"C:\temp\";
string filename = "sample.txt";
string oldtext = "おいしい";
string newtext = "美味しい";
StringBuilder strread = new StringBuilder();
string[] strarray = File.ReadAllLines(dirpath + filename, Encoding.UTF8);
for (int i = 0; i < strarray.GetLength(0); i++)
{
if (strarray[i].Contains(oldtext) == true)
{
strread.AppendLine(strarray[i].Replace(oldtext,newtext));
}
else
{
strread.AppendLine(strarray[i]);
}
}
File.WriteAllText(dirpath + filename, strread.ToString());
結果、「おいしい」という文字列が「美味しい」に置き換わってるはずです。
このコードではFile.ReadAllLinesでファイルの中身を読み込んで、1つ1つの行で置き換えたい文字列がないか確認して、File.WriteAllTextで元のテキストファイル書き込んでます。 それだけです。
前提条件としてテキストファイルはUTF-8で保存してないと、File.ReadAllLinesでファイルを読み込む際に文字化けします。 勿論、Encodingは変更できます。
📂外資系企業へ転職・働き方:外資系企業の転職,英語,面接,働き方
📂国内旅行150ヵ所を紹介:北海道,屋久島
📂海外出張10カ国,50ヵ所以上観光:スペイン,インド,台湾.飛行機対策
📂健康:胃痛,風邪予防,食,メンタル
📂子育て:英語,育て方,旅行
📂PC関連:エンジニアの苦悩,効率化,Windowsのトラブル対応
📂海外ドラマ:海外ドラマ・映画のレビューと感想
📂車関連:海外のレンタカー,試乗レポート,軽自動車,等々
📂物件:新築一戸建て 申し込みから購入・引渡しまで色々あったこと