2009年7月16日

[ruby-list:46216] ファイル出力の動作について

下田と申します。

今Pascalソースファイルのコンバータを作成しております。
その際、文字列のchompの動作が理解できなかったので
質問させてください。

<問題の箇所でやろうとしていること>
Pascalの文字列「'」で囲まれた部分を

@w_lines(Array型です)に抽出し、ファイルにputsする。
文字列が複数行にまたがる場合は@w_linesも複数になります。

複数行をputsする際、出力ファイルに余分な改行が入ってしまうので
chompを使いました(もしかするとこれが既におかしいかも?)。

そのchompを動作させる前後の@w_linesの内容を
デバッガで調べたのが、下記です。

----------------------------------------
(rdb:1) n
ConvFileDelToLaz.rb:115
@w_lines[@w_lines.size-1] += str.chomp  ←chomp実行後?
(rdb:1) p @w_lines
[" Result:='Frame';\n"]        ←これが正しい内容
(rdb:1) n
ConvFileDelToLaz.rb:118
@destFile.puts @w_lines        ←ファイル出力後?
(rdb:1) p @w_lines
[" Result:='Frame';\n;"]        ←最後の「\n;」は不要。
----------------------------------------

最後の行の「\n;」は、追加したコードはないつもりでおります。

デバッガで表示されているコードが
実行前なのか後なのか理解できてないのですが
chomp実行時かputs実行時に、勝手に追加されている様に見えます。
これは正しい動作なのでしょうか?
回避する方法はありますでしょうか?

Ubuntu 9.04
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
で動作させました。

以上よろしくお願いします。

投稿者 xml-rpc : 2009年7月16日 20:01
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/86732
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。