[#43675] rubyをソースからコンパイルしての質問 — "Nobuyuki Inaba" <nobuyuki.inaba@...>
稲葉と申します。
9 messages
2007/07/07
[#43676] Re: rubyをソースからコンパイルしての質問
— Nobuyoshi Nakada <nobu@...>
2007/07/07
なかだです。
[#43686] Re: rubyをソースからコンパイルしての質問
— "Nobuyuki Inaba" <nobuyuki.inaba@...>
2007/07/09
いなばです。
[#43692] require の使いかた ? — ohrsts@...
小原です。御世話になっています。
16 messages
2007/07/09
[#43709] RubyGemsマニュアルの翻訳について — replore <replore@...>
こんにちは、菊田というものです
5 messages
2007/07/12
[#43713] Re: 演算子の優先順位(was: Re: irb と python のバグ?) — "きむらこういち" <hogemuta@...>
木村です。
20 messages
2007/07/14
[#43715] Re: 演算子の優先順位(was: Re: irb
— TunTun-m <tntn@...>
2007/07/14
bc では次式の結果は 0.81 ではなく 0.8 になります。
[#43725] Re: 演算子の優先順位(was: Re: irb
— IWAOKA Masahiro <iwaoka@...>
2007/07/16
いわおかです。
[#43727] Re: 演算子の優先順位(was: Re: irb
— Tanaka Akira <akr@...>
2007/07/16
In article <20070716021644.GA34737@barber.fe.rn.tuat.ac.jp>,
[#43728] Re: 演算子の優先順位(was: Re: irb
— IWAOKA Masahiro <iwaoka@...>
2007/07/16
In the message <874pk4q4o8.fsf@fsij.org>,
[#43746] Hash.mergeはなぜHash.+ではないの? — "ARAI Shunichi" <arai@...>
素朴な疑問です。
6 messages
2007/07/19
[ruby-list:43673] 質問 file の保守
From:
ohrsts@...
Date:
2007-07-06 20:44:54 UTC
List:
ruby-list #43673
小原です。御世話になっています。
1行が 1レコードの file の特定のレコードを変更するには
どんな方法が良いのでしょうか? あるいは、ruby の常道
では、どう処理するのでしょうか?
単純な例として、電話帳をあげます。
file名 : tel
record : id:name:tel-no
id=10バイト name=20バイト tel-no=15バイト
record-size=10+20+15+2+1=48バイト (固定長)
(最後の\nを加えて)
ファイル実例
abesintaro:安部 信太郎 :0033-2222-12345
momotaro :桃太郎 :000-123-kakuu
abesin-000:安部 信太郎 :012-448-5563
(以下略)
id はレコードが違えば、異なるものとします。
二行目の tel-no を 000-123-otogi に変更するには
どんなにするのが、ベストでしょうか?
私の思い付く方法。
--------------------------
●方法1(Rubyレシピブック 163 の転用)
1。str="momotaro :桃太郎 :000-123-otogi "
を作る。(47バイト)
2。テンポラリーファイルに該当レコードの手前までをコピーする。
3。str をテンポラリーファイルに puts する。
4。テンポラリーファイルに該当レコード以降を追加する
5。テンポラリーファイルを元のファイルにリネームする。
(レコード位置が何処にあっても良いのなら他にも、、、。)
●方法2
1。str="momotaro :桃太郎 :000-123-otogi "
を作る。(47バイト)
2。f=open("tel","r+b") として該当レコードまで読みすすむ。
3。f.seek(-48,File::SEEK_CUR);f.puts(str);
を実行する。(1 record 分バックして str を追加)
4。file を close して終了する。
●方法3
1。 (具体的には、整理できないのですが)
file 全体を読み込んで、1行が、1要素になる配列 ar を作る。
2。該当要素を操作して、望みのレコードに変更する。
3。ar の1要素が1行となるように、file に書き込む。
-----------------------------------------
私に思い付くのは、このくらいです。他にもっと良い方法があると、
思いますが、教えて下さい。
また、普通はどんなに処理するのでしょうか?
良い方法とは、次のように考えています。
(a) 間違いがおこりにくい。
(b) 操作しやすい。
(c) 処理が速い。(パソコンの負担が少ない)
以上 よろしく