[#6219] Ruby連載 第4話 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

32 messages 1998/02/04
[#6221] Re: Ruby連載 第4話 — Shin-ichiro HARA <sinara@...> 1998/02/04

原です。

[#6224] Re: Ruby連載 第4話 — Yasunari Momoi <conan@...> 1998/02/04

ももちゃん@あるもにこすです.

[#6225] Re: Ruby連載 第4話 — matz@... (Yukihiro Matsumoto) 1998/02/04

まつもと ゆきひろです

[#6249] Re: i++ — 助田 雅紀 <masaki.suketa@...>

助田です。

33 messages 1998/02/04
[#6252] Re: i++ — gotoken@... (GOTO Kentaro) 1998/02/05

ことけんです

[#6255] Re: i++ — matz@... (Yukihiro Matsumoto) 1998/02/05

まつもと ゆきひろです

[#6260] Re: i++ — Yuji Shigehiro <sigehiro@...> 1998/02/05

しげひろです.

[#6314] RE: ruby's design policy (Re: I'd like to subscr ibe this ML) — 助田 雅紀 <masaki.suketa@...>

オブジェクト指向周辺をぶらぶらしている助田です。

11 messages 1998/02/06

[#6333] ruby 流に添削して下さい — nkon@...2.3web.ne.jp

13 messages 1998/02/07
[#6335] Re: ruby 流に添削して下さい — OZAWA Sakuro <crouton@...> 1998/02/07

さくです.

[#6372] ruby 1.1b7 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

24 messages 1998/02/10
[#6402] parsedate (Re: ruby 1.1b7 released) — WATANABE Hirofumi <watanabe@...> 1998/02/13

わたなべです.

[#6405] Re: parsedate (Re: ruby 1.1b7 released) — Tadayoshi Funaba <tadf@...> 1998/02/13

ふなばです。

[#6407] Re: parsedate (Re: ruby 1.1b7 released) — matz@... (Yukihiro Matsumoto) 1998/02/13

まつもと ゆきひろです

[#6373] call for scripts — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

133 messages 1998/02/10
[#6414] Re: call for scripts — Terutuoshi Kaneshiro <k-teru@...06.odn.ne.jp> 1998/02/14

金城です.

[#6428] Re: call for scripts — matz@... (Yukihiro Matsumoto) 1998/02/16

まつもと ゆきひろです

[#6448] Re: call for scripts — Terutuoshi Kaneshiro <k-teru@...06.odn.ne.jp> 1998/02/16

金城です.

[#6452] Re: call for scripts — matz@... (Yukihiro Matsumoto) 1998/02/17

まつもと ゆきひろです

[#6481] Re: call for scripts — Kikutani Makoto <kikutani@...> 1998/02/17

きくたに@ぷ〜たろ〜です。

[#6483] Re: call for scripts — OZAWA Sakuro <crouton@...> 1998/02/17

さくです.

[#6495] Re: call for scripts — WATANABE Hirofumi <watanabe@...> 1998/02/18

わたなべです.

[#6416] Re: call for scripts — shugo@... (Shugo Maeda) 1998/02/14

前田です。

[#6417] rgrep (Re: call for scripts) — shugo@... (Shugo Maeda) 1998/02/15

前田です。

[#6423] Re: rgrep (Re: call for scripts) — matz@... (Yukihiro Matsumoto) 1998/02/16

まつもと ゆきひろです

[#6612] Re: call for scripts — Tadayoshi Funaba <tadf@...> 1998/02/21

ふなばです。

[#6582] File::Separator on cygwin — OZAWA Sakuro <ozawa@...>

小澤さくです。

19 messages 1998/02/20
[#6583] Re: File::Separator on cygwin — WATANABE Hirofumi <watanabe@...> 1998/02/20

わたなべです.

[#6586] Re: File::Separator on cygwin — OZAWA Sakuro <ozawa@...> 1998/02/20

小澤さくです。

[#6591] ruby 1.1b8 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

32 messages 1998/02/20
[#6620] rbc.rb and binding — shugo@... (Shugo Maeda) 1998/02/22

前田です。

[#6629] Re: rbc.rb and binding — keiju@... (石塚圭樹 ) 1998/02/23

けいじゅ@日本ラショナルソフトウェアです.

[#6643] Re: rbc.rb and binding — shugo@... (Shugo Maeda) 1998/02/23

前田です。

[#6649] Re: rbc.rb and binding — keiju@... (石塚圭樹 ) 1998/02/23

けいじゅ@日本ラショナルソフトウェアです.

[#6650] Re: rbc.rb and binding — matz@... (Yukihiro Matsumoto) 1998/02/23

まつもと ゆきひろです

[#6667] JRI 0.5 worked (was Re: rbc.rb and binding) — OZAWA Sakuro <crouton@...> 1998/02/23

さくです.

[#6687] Re: JRI 0.5 worked (was Re: rbc.rb and binding) — shugo@... (Shugo Maeda) 1998/02/24

前田です。

[#6712] JRI and JDBC — OZAWA Sakuro <ozawa@...> 1998/02/24

小澤さくです。

[#6635] hello — WATANABE Tetsuya <tetsu@...>

渡辺哲也と申します。

15 messages 1998/02/23

[#6706] Re: Counter class — toyofuku@...

豊福@パパイヤです。

12 messages 1998/02/24

[#6735] Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda)

前田です。

27 messages 1998/02/24
[#6746] Re: Mutex/ConditionVariable/Queue — keiju@... (石塚圭樹 ) 1998/02/25

けいじゅ@日本ラショナルソフトウェアです.

[#6747] Re: Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda) 1998/02/25

前田です。

[#6752] Re: Mutex/ConditionVariable/Queue — senda@... 1998/02/25

From: shugo@po.aianet.ne.jp (Shugo Maeda)

[#6754] Re: Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda) 1998/02/25

前田です。

[#6756] Re: Mutex/ConditionVariable/Queue — senda@... 1998/02/25

From: shugo@po.aianet.ne.jp (Shugo Maeda)

[#6786] Re: Mutex/ConditionVariable/Queue — senda@...

From: shugo@po.aianet.ne.jp (Shugo Maeda)

33 messages 1998/02/26
[#6791] Re: Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda) 1998/02/26

前田です。

[#6794] Re: Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda) 1998/02/26

前田です。

[#6796] Re: Mutex/ConditionVariable/Queue — keiju@... (石塚圭樹 ) 1998/02/26

けいじゅ@日本ラショナルソフトウェアです.

[ruby-list:6333] ruby 流に添削して下さい

From: nkon@...2.3web.ne.jp
Date: 1998-02-07 02:06:20 UTC
List: ruby-list #6333
近藤ともうします。

ruby でプログラムを書いてみたのですが、なんか、しっくり来ないので、
ruby 流の書き方に添削して欲しいのですが、構わないでしょうか。

プログラムは以下のとおりで、これは、IHX8M という、ROM に書き込む時とか
に使われるファイルフォーマットを解釈する、Ihx8m というクラスです。

IHX8M は先頭に コロン、次にその行の長さ、アドレス、識別子、データ、チェッ
クサムと続く行形式のデータです。サンプルデータをその次に示します。

ixh.rb の最後でコメントにしてある部分を有効にすると、このプログラムで
私が期待した動作はしています。
動作環境は ruby 1.1b6(98/01/23) [i586-linux] です。

データメンバの初期化、配列の使い方、イテレータの使い方
文字列の処理方法など、がとくに良くわからなかったので、
思考錯誤で書いています。

--
近藤靖浩 <nkon@osk2.3web.ne.jp>
http://www2.osk.3web.ne.jp/~nkon/3web/
http://tsl.pe.u-tokyo.ac.jp/~kon/tslhome/

-- ihx.rb

class Ihx8m
  def initialize(filename = nil)
	if (filename)
	  parse(filename)
	end
  end

  # ファイルの解釈
  def parse(filename)
	@memory = Array.new
	file = open(filename)
	file.each_line do |line|
	  break if (line == ":00000001FF\n")
	  parse_line(line)
	end
  end
  
  def memory
	@memory
  end

  # 一行解釈
  def parse_line(line)
	line.chop!
	sum = 0;
	leader = (line[0,1]).hex; line[0,1] = "";
	length = (line[0,2]).hex; sum += length; line[0,2] = ""
	address = (line[0,4]).hex/2;
	sum += line[0,2].hex + line[2,2].hex;line[0,4] = "";
	type = line[0,2]; line[0,2] = "";
	checksum = (line[line.length-2,2]).hex; line[line.length-2,2] = ""
	data = line

	rep = 0;
	while(data.length > 0)
	  sum += data[0,2].hex + data[2,2].hex
	  value = (data[2,2] + data[0,2]).hex
	  data[0,4] = ""
	  @memory[address] = value
	  address += 1;
	end
	if ((~(sum-1) & 0x00ff) != checksum)
	  raise "Ihx8m Checksum ERROR\n"
	end

  end  # end of parse_line

  # 文字列形式でダンプする
  def to_s
	i = 0;	ret = ""
	length = @memory.length
	while(i < length)
	  ret += sprintf("%04x %04x\n", i, @memory[i]) if (@memory[i])
	  i = i+1
	end
	ret
  end

end  # end of Ihx8m

# ihx = Ihx8m.new
# ihx.parse('morse.hex')
# print ihx.to_s

-- 参考データ morse.hex

:020000001528C1
:100008009100030E92008D03031D0D2805308D000D
:100018008C03100885060B11120E8300910E110E29
:100028000900FF3085008316FC308500813081008F
:10003800831201308D009001A0308B008901831656
:10004800081483120808031922282C20890A232857
:100058008E000E090319442807308F008E1B37289D
:100068008F038E0D32288E0D8E1F4B208E1B49203C
:100078008E0D0F3051208F0B38281E30512008006C
:100088001E3051202D30512008002D304C280F30C3
:10009800101451201010051408008C008C1F5228D1
:0200A80008004E
:02400E00F23F7F
:1042000010000200140014000F00FF000B000F004C
:0A4210000A0014000C00FF0000007B
:00000001FF

In This Thread

Prev Next