作者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)