作者godfat (godfat 真常)
看板Programming
标题Re: [问题] 这样的需求得要自己写程式吗?
时间Wed Sep 26 18:40:11 2007
※ 引述《buniro (期待2008!)》之铭言:
: 有一个2MB多的Unicode纯文字档,当中有很多重覆的字串"1"、"2"、"3"..."200",
: 如果想将"85"之後的字串其数值都+1,也就是处理後"1"~"84"不变,"85"变"86"、
: "86"变"87"...."200"变"201",那麽这有什麽现成的Editor可以使用吗?还是非得
: 自己写个程式来处理?
对 programmer 来说这很简单,写程式不见得会比用 editor 慢
: 如果只能自己写的话,各位板友建议用哪一种语言写,对初学者来说比较容易?
建议用 Ruby XD
欢迎到 ptt Ruby 板参观 XD
: 处理速度又以哪一种语言最快呢?还是速度都差不多?
C/C++ 和 Objective-Caml 都很快,不过你的问题应该不用考虑这个。
如果你的档案是 2GB 的话可以再来考虑看看。
假设你的文字档是 utf-8, 数字用 \n 隔开:
*
$KCODE = 'u' # 设定使用 utf-8, 不过纯数字的话是不是 utf-8 根本没差
File.open("你的档案", "r"){ |input|
File.open("目标档案", "w"){ |output|
output << input.read.split("\n").map{ |line|
# 将文字读入记忆体,用 \n 分开存成 array, 并使每一行变成...
line.to_i >= 85 ? (line.to_i+1).to_s : line
# 如果转成数字的字串大於等於 85, 则加一後转回字串,否则不动
}.join("\n")
# 把 \n 断行存回去
}
}
--
#!/usr/bin/ruby [露比] /Programming (Kn|N)ight/ 看板《Ruby》
# if a
dog nailed
extra legs that
http://webptt.com/cn.aspx?n=bbs/Ruby/index.html
#
walks like an octopus, and Welcome ~
Ruby@ptt~
#
talks like an octopus, then
◢█◣ http://www.ruby-lang.org/
# we are happy to treat it as
█ http://www.ruby-doc.org/
# if it were
an octopus.
◥ ◤ http://www.rubyforge.org/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.59.20
1F:推 StubbornLin:惊! Ruby..=.= Python啦... XDD 125.231.215.68 09/26 18:51
2F:→ godfat:我还没什麽机会试玩 python :p 220.132.59.20 09/26 18:59
3F:推 buniro:来源档案数字没用\n隔开,是随机出现的耶 61.64.168.58 09/26 19:54
4F:→ poga:把状况讲清楚,应该很多人可以顺手写一个给你 61.225.6.248 09/26 21:52
5F:推 sunneo:推顺手 =..= ..220.132.228.138 09/27 15:12