Last updated: April 26 2012.- 2009. Kajiyama             [ 目次に戻る ]

文章を外部のファイルへ入出力する File.open read delete



  1. ファイルの保存


    1. ファイルへの上書き保存

      ・次のソースファイルをコピーして,RDEエディタに貼り付ける.

      このソースファイルを作業フォルダー「Ruby_work_190」の中に「F01.rb」のファイル名で保存する.

      ・実行すると作業フォルダー「Ruby_work_190」の中にテキストファイル「F01.txt」が作成されている.

      ソースファイル
      #! ruby -Ks # coding: windows-31j # ファイル名 F01.rb STDOUT.sync = true hakushu = "「空に真赤な」 北原白秋 邪宗門\n \n空に真赤な雲の\ いろ。\n玻璃に真赤な酒の色。\nなんでこの身が悲しかろ。\n空に真\ 赤な雲のいろ。\n" print hakushu #内容の表示 file_name = "F01.txt" #保存するファイル名 File.open(file_name, 'w') {|file| file.write hakushu }

      実行結果
      「空に真赤な」 北原白秋 邪宗門 空に真赤な雲のいろ。 玻璃に真赤な酒の色。 なんでこの身が悲しかろ。 空に真赤な雲のいろ。

      file 保存結果 Ruby_work_190\F01.txt
      「空に真赤な」 北原白秋 邪宗門 空に真赤な雲のいろ。 玻璃に真赤な酒の色。 なんでこの身が悲しかろ。 空に真赤な雲のいろ。


    2. ファイルへの追加保存

      ・次のソースファイルをコピーして,RDEエディタに貼り付ける.

      ・このソースファイルを作業フォルダー「Ruby_work_190」の中に「F02rb」のファイル名で保存する.

      ・実行すると作業フォルダー「Ruby_work_190」の中にテキストファイル「F02.txt」が作成されている.


      ソースファイル
      #! ruby -Ks # coding: windows-31j # ファイル名 F02.rb STDOUT.sync = true #最初の文章 hakushu_1 = "「空に真赤な」 北原白秋 邪宗門\n \n空に真赤な雲のいろ。\n" #追加の文章 hakushu_2 = "玻璃に真赤な酒の色。\nなんでこの身が悲しかろ。\n空に真赤な雲のいろ。\n" print hakushu #内容の表示 file_name = "F02.txt" #保存するファイル名 File.open(file_name, 'a') {|file| file.write hakushu_1 }

      実行結果
      「空に真赤な」 北原白秋 邪宗門 空に真赤な雲のいろ。

      file 保存結果 Ruby_work_190\F02.txt
      「空に真赤な」 北原白秋 邪宗門 空に真赤な雲のいろ。



      ソースファイル 「F02.txt」にデータを追加する
      #! ruby -Ks # coding: windows-31j # ファイル名 F03.rb STDOUT.sync = true #最初の文章 hakushu_1 = "「空に真赤な」 北原白秋 邪宗門\n \n空に真赤な雲のいろ。\n" #追加の文章 hakushu_2 = "玻璃に真赤な酒の色。\nなんでこの身が悲しかろ。\n空に真赤な雲のいろ。\n" print hakushu #内容の表示 file_name = "F02.txt" #保存するファイル名 File.open(file_name, 'a') {|file| file.write hakushu_2 }

      実行結果
      玻璃に真赤な酒の色。 なんでこの身が悲しかろ。 空に真赤な雲のいろ。

      file 保存結果 Ruby_work_190\F02.txt
      「空に真赤な」 北原白秋 邪宗門 空に真赤な雲のいろ。 玻璃に真赤な酒の色。 なんでこの身が悲しかろ。 空に真赤な雲のいろ。



  2. ファイルの読み込


    1. 文章ファイルの全文読み込み

      ・次のソースファイルをコピーして,RDEエディタに貼り付ける.

      ・実行すると,作業フォルダー「Ruby_work_190」の中のテキストファイルがRubyに読み込まれて,表示される.


      ソースファイル
      #! ruby -Ks # coding: windows-31j # ファイル名 F04.rb STDOUT.sync = true file_name = "F01.txt" #読み込むファイル名 file = File.read(file_name) #ファイルの読み込み puts file puts "\n\n全文読み込みのデータ構造----------" p file #データ構造の表示

      実行結果 データの構造をみると全文が「" "」で囲まれている.
      「空に真赤な」 北原白秋 邪宗門 空に真赤な雲のいろ。 玻璃に真赤な酒の色。 なんでこの身が悲しかろ。 空に真赤な雲のいろ。 全文読み込みのデータ構造---------- "「空に真赤な」 北原白秋 邪宗門\n \n空に真赤な雲のいろ。 \n玻璃に真赤な酒の色。\nなんでこの身が悲しかろ。 \n空に真赤な雲のいろ。\n"


    2. 文章ファイルを一行ずつ読み込む

      ・次のソースファイルをコピーして,RDEエディタに貼り付ける.

      ・実行すると,作業フォルダー「Ruby_work_190」の中のテキストファイルがRubyに読み込まれて,表示される.


      ソースファイル
      #! ruby -Ks # coding: windows-31j # ファイル名 F05.rb STDOUT.sync = true file_name = "F01.txt" #読み込むファイル名 lines = File.readlines(file_name) puts lines puts "\n\n一行読み込みのデータ構造----------" p lines #データ構造の表示

      実行結果 データの構造をみると一行ごとに「" \n",」で区切られている.
      「空に真赤な」 北原白秋 邪宗門 空に真赤な雲のいろ。 玻璃に真赤な酒の色。 なんでこの身が悲しかろ。 空に真赤な雲のいろ。 一行読み込みのデータ構造---------- ["「空に真赤な」 北原白秋 邪宗門\n", " \n", "空に真赤な雲のいろ。\n", "玻璃に真赤な酒の色。\n", "なんでこの身が悲しかろ。\n", "空に真赤な雲のいろ。\n"]



  3. 作業フォルダー「Ruby_work_190」内のファイル一覧を表示する


    1. テキストファイルを一覧を表示する

      ・次のソースファイルをコピーして,RDEエディタに貼り付ける.

      ・実行すると,作業フォルダー「Ruby_work_190」の中のテキストファイル名が表示される.


      ソースファイル
      #! ruby -Ks # coding: windows-31j # ファイル名 F06.rb STDOUT.sync = true # *.txtの付くファイル名を全て呼び出す file_name_lists = Dir.glob('*.txt') file_name_lists.each do |file_name| puts file_name end

      実行結果  作業フォルダー「Ruby_work_190」内のテキストファイルを表示する.
      F01.txt F02.txt


    2. 全てのファイルを一覧表示する

      ・次のソースファイルをコピーして,RDEエディタに貼り付ける.

      ・実行すると,作業フォルダー「Ruby_work_190」の中のテキストファイル名が表示される.


      ソースファイル
      #! ruby -Ks # coding: windows-31j # ファイル名 F07.rb STDOUT.sync = true # *.*の付くファイル名を全て呼び出す file_name_lists = Dir.glob('*.*') file_name_lists.each do |file_name| puts file_name end

      実行結果  作業フォルダー「Ruby_work_190」内の全てのファイルを表示する.
      F01.rb F01.txt F02.rb F02.txt



  4. ファイルを削除する

    ・次のソースファイルをコピーして,RDEエディタに貼り付ける.

    ・実行すると,作業フォルダー「Ruby_work_190」の中のテキストファイルが削除される.


    ソースファイル
    #! ruby -Ks # coding: windows-31j # ファイル名 F08.rb STDOUT.sync = true file_name = "F02.txt" #削除するファイル名 file = File.delete(file_name) #削除する file = File.read('F02.txt') #読み込みを失敗させて削除を確認 print file

    実行結果  読み込むべきファイルF02.txt (Errno::ENOENT)がないと知らせてくれる.
    C:/Users/xxxxxx/Documents/Ruby_work_190/rb15A.tmp:11:in `read': No such file or directory - F02.txt (Errno::ENOENT) from C:/Users/xxxxxx/Documents/Ruby_work_190/rb15A.tmp:11:in `
    '

[ 目次に戻る ]