2017-11-29 3 views
-1

私は現在、コード行を作成するアプリケーションを持っていますが、現時点ではFile.AppendAllText(newPathName, sptData); File.AppendAllText(newPathName, string.Format("{0}{1}", " ", Environment.NewLine));を使ってドキュメントの最後に新しい行を追加しています。C#特定の単語の前にテキスト行を挿入する

下記の「PROC」の行の前にデータを挿入するにはどうすればよいですか?ファイルには必ずしも同じデータが入っているわけではありませんが、常にPROCという単語が付いているため、その前にする必要があります。

!#-------------------------------------------- --- !#------ WOBJ DATA !#--------------------------------- -------------- PERS wobjdata w_td97200:= [False、True、 ""、[[ - 854.99,1926.58,592.01]、[0.737197,0,0,0.675677]]、 [0,0,0]、[1,0,0,0]]]; PERS wobjdata w_tc97200:= [False、True、 ""、[[ - 463.99,1486.54,229.27]、[0.298836,0.640862,0.298836、-0.640852]、[[0,0,0]、[1,0、 0,0]]];

INSERT NEWのTEXT HERE

PROC P13_a_rsw01_200_l538com() !======== ! PROG_INFO:L538 STN200

+0

何foreachループについてはどうですか? –

答えて

1

フム...

var lines = File.ReadAllLines(@"C:\1.txt").ToList(); 
for (int i = 0; i < lines.Count; i++) 
{ 
    if (lines[i].StartsWith("PROC")) 
    { 
     lines.Insert(i, "NEW TEXT"); 
     i++; 
    } 
} 
+1

PROC行の前に新しい行を配置するには、 'lines.Insert(i、" NEW TEXT ");'にする必要があります。 – Gusman

+0

@Gusman、そうですね。 –

+0

いいえ、insertは要素1を置き換えます。インデックス2に行がある場合は、新しい行をインデックス2に、古い行をインデックス3にします。そうでなければ、負のインデックスを使用しません。インデックス0より前に追加する場合は不可能です。 – Gusman

関連する問題