From: Jun'ya Shimoda Date: 2009-07-16T20:01:31+09:00 Subject: [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] で動作させました。 以上よろしくお願いします。