この質問は、過去の議論の続きです。HEREです。だから今私は自分のテキストファイルのすべての行を読み込み、特定の列の正確な文字列も読み込むことができました。今私の問題は、別の文字列値を持つタブベースファイルのColumn(4)のテキスト値を変更したいということです。 はたとえば、元のファイルは、このようなものです:Cのタブベースのテキストファイルのテキストの変更/置換
ID1 25 800 Low
ID2 25 700 Low
ID3 25 600 Low
は、私が変更したい:
ID1 25 800 High
ID2 25 700 High
ID3 25 600 High
...ここに私の完全なコードです。私はあなたの助けに感謝します。
string route = @"C:\MyFile.txt";
FileStream fileStream2 = new FileStream(route, FileMode.Open);
var m_readFile2 = new StreamReader(fileStream2);
var m_writeFile2 = new StreamWriter(fileStream2);
string[] colArr1 = new string[100];
string[] colArr2 = new string[100];
string[] colArr3 = new string[100];
string[] colArr4 = new string[100];
int arrcount = 1;
while ((line = m_readFile2.ReadLine()) != null)
{
string col1 = "";
string col2 = "";
string col3 = "";
string col4 = "";
col1 = line.Split('\t')[0];
col2 = line.Split('\t')[1];
col3 = line.Split('\t')[2];
col4 = line.Split('\t')[3];
colArr1[arrcount] = col1;
colArr2[arrcount] = col2;
colArr3[arrcount] = col3;
colArr4[arrcount] = col4;
m_writeFile2.WriteLine("Serv" + arrcount + "\t" + "25" + "\t" + "400" + "\t" + "High");
arrcount = arrcount + 1;
'stringbuilder'が文字列 – Eldho
Iを追加するための最良の選択肢であります配列文字列に完全な新しい行を作成しました。これは単純なテキストファイルです。しかし、私はWriteLineメソッドを使用する場合、テキストファイルは、次のようになり、変更されますが、余分な行を追加していない: ServID1 25 800低 ServID2 25 700低 ServID3 25 600 LowServID1 25 800ハイ ServID2 25 700ハイ しかし、私はしたいですテキストを変更して余分な行を追加することはありません:-( – zakim
あなたは同じファイルに書き戻しています。新しいファイルにすべてのnewLinesを書き込む必要があります。完了したら、両方のファイルを閉じて古いものを削除し、新しい名前を古い名前に変更してください –