作者aluba1203 (aluba123)
看板C_Sharp
標題[問題] 關於txt 字串取代的問題
時間Tue Jan 10 04:18:18 2012
目前我再嘗試做txt 文件內容修改
由於某些古老系統,必須吃固定格式的txt檔案
所以當內文更動時,字串間空白不能少也不能多
目前我寫了一種方法,但總覺得不太保險,存在BUG
想問問看是否有更精確的方法可行
範例:
txt中某行有一段字串為 task :A fun:m 現在要修改成 task : B fun:m
下面是我的方法
先將 txt 全部讀進 string [] temp中
然後
foreach (string line in temp)
{
int scount = line.indexof("task :");
int ecount = line.indexof("fun:m")
if(count > 0)
{
line = line.replace(line.substring(scount+6,1),"B")
}
}
類似上面的方式,是能成功替換,但是卻會有bug 因為repleace會把整個字串有a
的都替換掉,會是個問題
麻煩各位了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.110.252.159
1F:推 winder611:line = line.Remove(scount, 1); 01/10 08:57
2F:→ winder611:line = line.Insert(scount, "B"); 01/10 08:58
3F:→ winder611:我想這樣應該就可以了吧 不過我想應該還有更快的做法 01/10 08:59
我有想過這個方法,但是Remove的第二個參數是動態的
因為更換的項目不一定,會不會沒算準而移除到空白處呢?
※ 編輯: aluba1203 來自: 123.110.252.159 (01/10 13:33)
4F:→ tfshnike:試試 regular expression 01/10 21:53
5F:→ chrisQQ:其實我很好奇,為什麼不直接 01/11 11:03
6F:→ chrisQQ:replace('task :A fun:m', 'task :B fun:m'); 01/11 11:03
因為不能動到後面的,格事並不一定固定
※ 編輯: aluba1203 來自: 123.110.252.159 (01/12 04:03)