[#38080] ポートが閉じているときの例外など — Mitsuru Ogino <ogino@...>

荻野と申します。いつも質問や要望ばかりですみません。

36 messages 2003/08/11
[#38086] Re: ポートが閉じているときの例外など — nobu.nakada@... 2003/08/12

なかだです。

[#38088] Re: ポートが閉じているときの例外など — IWAOKA Masahiro <iwaoka@...> 2003/08/12

いわおかです。

[#38091] Re: ポートが閉じているときの例外など — Mitsuru Ogino <ogino@...> 2003/08/12

荻野です。

[#38092] Re: ポートが閉じているときの例外など — nobu.nakada@... 2003/08/12

なかだです。

[#38093] Re: ポートが閉じているときの例外など — IWAOKA Masahiro <iwaoka@...> 2003/08/12

いわおかです。

[#38095] Re: ポートが閉じているときの例外など — Takahiro Kambe <taca@...> 2003/08/12

In message <20030812150516.GV37221@barber.fe.rn.tuat.ac.jp>

[#38102] Re: ポートが閉じているときの例外など — Tetsuo NAKAGAWA <tet@...> 2003/08/14

中川と申します。

[#38121] Re: ポートが閉じているときの例外など — Takahiro Kambe <taca@...> 2003/08/15

In message <20030814.140757.707824131.tetsuo@sapphire.siz.nes.nec.co.jp>

[#38123] Re: ポートが閉じているときの例外など — nobu.nakada@... 2003/08/16

なかだです。

[#38130] Re: ポートが閉じているときの例外など — Takahiro Kambe <taca@...> 2003/08/16

In message <200308160517.h7G5HcPL012839@sharui.nakada.kanuma.tochigi.jp>

[#38137] Re: ポートが閉じているときの例外など — nobu.nakada@... 2003/08/18

なかだです。

[#38139] Re: ポートが閉じているときの例外など — Takahiro Kambe <taca@...> 2003/08/18

In message <200308180959.h7I9xnb7001977@sharui.nakada.kanuma.tochigi.jp>

[#38122] ruby-tcpwrap and mkmf.rb — Takahiro Kambe <taca@...>

こんにちは。

16 messages 2003/08/16
[#38125] Re: ruby-tcpwrap and mkmf.rb — "Akinori MUSHA" <knu@...> 2003/08/16

At Sat, 16 Aug 2003 12:51:55 +0900,

[#38183] String << の動作につきまして — kuto@...

うと と申します。

44 messages 2003/08/22
[#38187] Re: String << の動作につきまして — Take_tk <ggb03124@...> 2003/08/22

たけ(tk)です。

[#38189] Re: String << の動作につきまして — Tadayoshi Funaba <tadf@...5.so-net.ne.jp> 2003/08/23

ふなばです。

[#38190] Re: String << の動作につきまして — Take_tk <ggb03124@...> 2003/08/23

たけ(tk)です。

[#38191] Re: String << の動作につきまして — Tadayoshi Funaba <tadf@...5.so-net.ne.jp> 2003/08/23

ふなばです。

[#38194] Re: String << の動作につきまして — Take_tk <ggb03124@...> 2003/08/23

たけ(tk)です。

[#38196] Re: String << の動作につきまして — Tadayoshi Funaba <tadf@...5.so-net.ne.jp> 2003/08/23

ふなばです。

[#38203] Re: String << の動作につきまして — 西 啓一朗 <receiver@...> 2003/08/23

ども、西啓一朗@Ktouth Brand. です。

[#38208] Re: String << の動作につきまして — Tadayoshi Funaba <tadf@...5.so-net.ne.jp> 2003/08/23

ふなばです。

[#38211] Re: String << の動作につきまして — 西 啓一朗 <receiver@...> 2003/08/24

ども、西啓一朗@Ktouth Brand. です。

[#38195] 理解の進め方(Re: String << の動作につきまして) — Tadashi Oh-Ya <toy@...>

おおやです。

36 messages 2003/08/23
[#38206] 理解の進め方:シュールな世界 — Take_tk <ggb03124@...> 2003/08/23

たけ(tk)です。

[#38233] シュールな名前 — Take_tk <ggb03124@...> 2003/08/25

たけ(tk)です

[#38198] Tmailで送るメールに日付がつけられなくなりました — 川田誠司 <kawada.seiji@...>

はじめまして

11 messages 2003/08/23

[#38256] かみ砕いた説明をすべき範囲 — 西 啓一朗 <receiver@...>

ども。西啓一朗@Ktouth Brand. です。

41 messages 2003/08/26
[#38258] Re: かみ砕いた説明をすべき範囲 — nobu.nakada@... 2003/08/26

なかだです。

[#38261] Re: かみ砕いた説明をすべき範囲 — Take_tk <ggb03124@...> 2003/08/26

たけ(tk)です

[#38262] Re: かみ砕いた説明をすべき範囲 — nobu.nakada@... 2003/08/26

なかだです。

[#38264] Re: かみ砕いた説明をすべき範囲 — Take_tk <ggb03124@...> 2003/08/26

たけ(tk)です

[#38265] Re: かみ砕いた説明をすべき範囲 — IWAOKA Masahiro <iwaoka@...> 2003/08/26

いわおかです。

[#38267] Re: かみ砕いた説明をすべき範囲 — Take_tk <ggb03124@...> 2003/08/26

たけ(tk)です

[#38273] Re: かみ砕いた説明をすべき範囲 — matz@... (Yukihiro Matsumoto) 2003/08/26

まつもと ゆきひろです

[ruby-list:38058] Re: ファイル書換え?

From: Koji Arai <JCA02266@...>
Date: 2003-08-09 16:02:12 UTC
List: ruby-list #38058
新井です。

In message "[ruby-list:38056] ファイル書換え?"
  on 10 Aug 2003 00:02:14 +0900,
  中村文建 <tx6f-nkmr@asahi-net.or.jp> wrote:

> ▲質問:ファイルの上書きはどのようにするのでしょうか?
> あまりにも基本的な事だと思いますが、参考にするプログラムも分らず
> 周りに聞く人もいません。
> 参考になるパターン、実例を教えて下さい。

「最終的にやりたいこと」からはずれて説明をします。

(1) まず、元のファイルの内容を書き換えたい場合は一般的に以下
    のようにします。

while buf = ARGF.gets
  # buf を書き換え
  print buf
end

これで書き換えた内容が出力されるのでリダイレクトをすれば書き
換えたファイルが作成されます。(リダイレクトは Win でも可能で
す)

この後、リダイレクトしたファイルを元のファイルに手で上書きす
れば要件を満たします。

この手作業を自動的に行いたい場合は -i オプションを使用します。
(上のスクリプトが hoge.rb だとすると)

ruby -i hoge.rb 対象のファイル...

のように実行すると画面出力の内容を元ファイルに勝手に上書きし
てくれます。(-i では、ファイルを複数同時に指定できます)

ruby -i.bak hoge.rb 対象のファイル...

のように -i に続けて拡張子を指定すれば元のファイルをバックアッ
プしてくれます。

以下サンプルです。
--- hoge.rb
while buf = ARGF.gets
  # buf を書き換え
  buf.upcase!
  print buf
end
--- end of hoge.rb

以下実行例です。

echo aaa > aaa
echo bbb > bbb

ruby -i.bak hoge.rb aaa bbb

これで、aaa の内容が AAA に、bbb の内容が BBB になります。
(元ファイルは、aaa.bak 等に保存されます)


(2) 元の質問ではファイルの内容をイッキ読みして置換してますが、
    これをやるのも簡単です。gets の引数に nil を指定してあげます。
    (ARGF.read だと残念ながらうまく行きません)

while buf = ARGF.gets(nil)  # <- nil を指定
  # buf を書き換え
  buf.upcase!
  print buf
end

このスクリプトで上記と同じことをやれば同じ結果になります。試
してみてください。

「buf を書き換え」の部分を望みのものに変えてやれば要件を満たすと
思います。試してみてください。

# -p とか -0 とかのオプションを使えばさらに省略できるのですが、
# 本題と外れるので略

> data.scan(HTMLRegexp){|match|
>   comment, tag, tdata = match[0..2]
>   if comment                              # コメントにマッチした場合
>     p [ "Comment", comment ]
>   elsif tag                               # タグにマッチした場合
> 		tag.gsub!(/\w/){|matched| matched.downcase } 
>     p [ "Tag", tag ]
>   elsif tdata                             # テキストデータにマッチした場合
>     tdata.gsub!(/\s+/, " ")               # 空白をまとめる
>     tdata.sub!(/ $/, "")                  # 末尾の空白を削除する
>     p [ "TextData", tdata ] unless tdata.empty?  # 空でなければ出力する
>   end
> 
> }

この内容はまた別の話だと思うのでとりあえず割愛。

# 暇だ。LL 行きたかったなあ

--
新井康司 (Koji Arai)

In This Thread