• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Rubyでテキスト内容を別のテキストに一度に出力したいのですが、どのよ)

Rubyでテキスト内容を一度に出力する方法

このQ&Aのポイント
  • Rubyでテキスト内容を別のテキストに一度に出力する方法を教えてください。
  • ファイルコピーではなく、指定のテキストファイルに出力する方法を教えてください。
  • putsやwriteを使用してもうまく出力できないので、適切な処理方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

#Rubyあんま使ってないけど出来た。Rubyがメインの人から見たら可笑しいかも。(コピーでないことを示すため、先頭四行のみ出力した。) #==== # a.txt #==== #1 #2 #3 #4 #5 #6 #7 #== #output.txt #== #1 #2 #3 #4 a = File::new("a.txt","r") o = File::new("output.txt","w") x = a.readlines (0..3).to_a.each {|i| o.write(x[i])} o.close a.close

oshi810
質問者

お礼

動きました。行数指定できるのは便利ですね。こういう書き方できるのは知りませんでした。 ありがとうございました。

oshi810
質問者

補足

ありがとうございます。今から実行してみます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • ryu_chan
  • ベストアンサー率37% (69/186)
回答No.2

自動でcloseしてくれるのでブロックを使ったほうがいいと思います。 open("a.txt") do |r| open("output.txt", "w") do |w| w.write(r.read) end end

oshi810
質問者

お礼

どの言語でも2重ループは必要なようですね。 ポイントは回答順とさせていただきます。ありがとうございました。

oshi810
質問者

補足

ありがとうございます。今から離脱するので、後ほど確認させてくださいませ。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ExcelVBAでテキスト出力で最後の行に追記

    エクセルVBAで、すでに色々と書き込まれているテキストファイルがあり 一番最後の行に追記したいです。 具体的に下記のようなテキストにzzzzzzと追記して aaaaa bbbbb ccccc ddddd 下記のようにしたいです。 どのようにしたらよいのでしょうか? aaaaa bbbbb ccccc ddddd zzzzzz

  • エクセルVBAにてテキスト出力がうまくいきません

    エクセルシートの1列に以下のような文字列を打ち込みました。 - a aa aaa aaaa aaaaa - b bb bbb bbbb bbbbb - c cc ccc cccc ccccc - 「-」の2行後をテキストを出力した際のファイル名とし、ファイル名を含んだ次の「-」までの文字列をそのテキストの中に出力したいです。なお、全体の行数は分かっています。 例えば上の文字列に対して実行すると、 a.txt b.txt c.txt というファイルができ、それぞれの中には a aa aaa aaaa aaaaa などがそれぞれ出力されるようにしたいです。 Sub tepa() Dim strFilename As String Dim FileNumber As Integer Dim strREC As String j = 1 For i = 1 To 70 If Cells(i, 1) = "-" Then strFilename = Cells(i + 2, 1) & ".txt" Do While Cells(i + j, 1) <> "-" If i > 70 Then Exit Sub End If FileNumber = FreeFile strREC = Cells(i + j, 1) Open strFilename For Append As FileNumber Print #FileNumber, strREC Close j = j + 1 Loop End If i = i + j Next End Sub さきほど初めてVBAなるものを知り、見よう見まねで書いてみましたが・・・ループに陥ったりテキストファイルが1つめしか出力されなかったりとうまくいきません。 改善点など教えていただけたら嬉しいです。 よろしくお願いします。

  • C++ builder text

    C++ builder で例えばTRectangleで背景を作った後TTextで文字を書いたとき、 Text1->Text="AAAAA";Text1->Text="BBBBB";Text1->Text="CCCCC"; とボタンか何かで順次変化させればそのままAAAAA BBBBB CCCCCと文字が 正しく表示されるのですが TRectangleのRectangle1->Canvas->FillTextで文字を書いたときはAAAAAの上にBBBBB、CCCCCと重なって書かれてしまうのですがText1->Textにできないでしょうか? Canvas->Clear()とかでは真っ黒になってしまいます。 ようは背景をそののままで文字だけ変化するようにしたいのですが方法分かりますか?

  • csvデータの番号付加について。

    例題の csvデータの内容が 配列1 aaaaa aaaaa aaaaa bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb ccccc ccccc だった場合、配列が1つ増え ↓ 配列1 配列2 aaaaa 00001-1 aaaaa 00001-2 aaaaa 00001-3 bbbbb 00002-1 bbbbb 00002-2 bbbbb 00002-3 bbbbb 00002-4 bbbbb 00002-5 ccccc 00003-1 ccccc 00003-2 管理番号が増えていきます。 Sub main() Dim branch As Long Dim count As Long Dim i As Long Dim tmp As Long tmp = FreeFile Dim data As Variant With CreateObject("Scripting.FileSystemObject").GetFile("C:\データ.csv").OpenAsTextStream data = Split(.readall, vbCrLf) End With branch = 1 count = 1 Open "C:\出力データ.csv" For Output As #tmp Print #tmp, data(i) & vbTab & Format(branch, "00000") & vbTab & count For i = LBound(data) + 1 To UBound(data) If data(i) = data(i - 1) Then count = count + 1 Else branch = branch + 1 count = 1 End If Print #tmp, data(i) & vbTab & Format(branch, "00000") & vbTab & count Next i Close #tmp End Sub 例えば、タブ区切りの配列が元データで5つあり 配列5番目だけを指定し、例題のようにcsvを作成したいのですが 配列の宣言はまだしておりません。 アドバイスいただけないでしょうか。 よろしくお願いいたします。 元データ 配列1 配列2 配列3 配列4 配列5 a 1 c a aaaaa a 2 c b aaaaa a 3 c c aaaaa a 4 c d bbbbb a 5 c e bbbbb a 6 c f bbbbb a 7 c g bbbbb a 8 c h bbbbb a 9 c i ccccc a 0 c j ccccc 出力データ 配列1 配列2 配列3 配列4 配列5 配列6 a 1 c a aaaaa 00001-1 a 2 c b aaaaa 00001-2 a 3 c c aaaaa 00001-3 a 4 c d bbbbb 00002-1 a 5 c e bbbbb 00002-2 a 6 c f bbbbb 00002-3 a 7 c g bbbbb 00002-4 a 8 c h bbbbb 00002-5 a 9 c i ccccc 00003-1 a 0 c j ccccc 00003-2

  • wordの段落を保持したままテキスト変換

    wordで作成した文書を、段落の見た目を保持したままテキストに変換する方法はないでしょうか? 段落がスペースに変換されるといいのですが、 コピー&ペーストですと行頭がそろってしまいます。 やりたいこと word文書 1.aaaaa  (1)bbbbb   ア.ccccc   イ.ddddd  (2)ddddd   ア.ccccc   イ.ddddd ↓ テキスト文書 1.aaaaa  (1)bbbbb   ア.ccccc   イ.ddddd  (2)ddddd   ア.ccccc   イ.ddddd コピー&ペーストの場合 word文書 1.aaaaa  (1)bbbbb   ア.ccccc   イ.ddddd  (2)ddddd   ア.ccccc   イ.ddddd ↓ テキスト文書 1.aaaaa (1)bbbbb ア.ccccc イ.ddddd (2)ddddd ア.ccccc イ.ddddd よろしくお願いいたします。

  • Ruby Selenium リンクの取得方法

    こんばんは。 Ruby初心者ですが、現在、Selenium Webdriver、chromeにはまり、スクレイピングのような事をしています。 そんな中で困っている事があるのですが、 とあるサイトの画像URLを取得、テキストに追記で書き出ししようと色々と調べたのですが全く分からず困っています。 <div class="hoge"> <img src="http://hoge" alt=""> </div> htmlはこんなようでxpathは/hoge/imgと仮定します。 open("hoge.txt", "a"){|f| output = driver.find_element(:xpath, '/hoge/img') f.puts "#{output.text}" } のように書いてみたもののテキストに改行しか出力されない状態です。 何卒どうかご教授、よろしくお願いします。

    • ベストアンサー
    • Ruby
  • sedで特定の文字列を抜き出す方法

    有識者の知恵をお借りしたいのですが、以下のようなエラーログの出力結果が あった場合、AAAAA01が含まれる文字列の括弧の中の部分をsedで抜き出したい 場合はどのような指定をすればよいでしょうか。 括弧の中の文字はランダムで毎回同じとは限らない場合の指定方法をご教示下さい。 AAAAA00 AAAAA01 AAAAA02 AAAAA03 AAAAA04 AAAAA05 AAAAA06 (AAAAA07) BBBBB00 BBBBB01 BBBBB02 BBBBB03 BBBBB4 BBBBB05 BBBBB06 (BBBBB7) CCCCC00 CCCCC01 CCCCC02 CCCCC03 CCCCC4 CCCCC05 CCCCC06 (CCCCC7) 以下のコマンドで問題なく処理されますでしょうか。 sed -n "s/.*AAAAA01.*\((,)*\)\$ よろしくお願い致します。

  • 複数のファイルを読み込み、1つのファイルとして出力する方法。

    Nakanoです。いつもお世話になっております。 例えばテキストファイルを2つ用意し、1つのテキストファイルとして 出力したいのですが、いまいちやり方が分かりません。出来るのかどうかも 分からないです。(汗) 下にサンプルデータがあります。取り合えず「in1.txt」「in2.txt」 を最終的に『out.txt』の様に仕上げたいのですが… # =in1.txt AAAAA BBBBB CCCCC DDDDD 1,000 2,000 3,000 4,000 1,001 2,002 3,003 4,004 1,010 2,020 3,030 4,040 1,100 2,200 3,300 4,400 =in2.txt EEEEE FFFFF GGGGG HHHHH 5,000 6,000 7,000 8,000 5,005 6,006 7,007 8,008 5,050 6,060 7,070 8,080 5,500 6,600 7,700 8,800 # =out.txt AAAAA BBBBB CCCCC DDDDD EEEEE FFFFF GGGGG HHHHH 1,000 2,000 3,000 4,000 5,000 6,000 7,000 8,000 1,001 2,002 3,003 4,004 5,005 6,006 7,007 8,008 1,010 2,020 3,030 4,040 5,050 6,060 7,070 8,080 1,100 2,200 3,300 4,400 5,500 6,600 7,700 8,800 # ・このデータはタブで区切っています。カンマはない場合もあります。 ・ファイルの中のそれぞれの文字列の数は固定です。行数も固定です。  各文字列の中の文字数はランダムです。  COPYコマンドを利用しても考えてみたのですが、後ろに続いちゃって  上手くいかなかったです。(笑)  Perlだと1つ目のファイルの1行目を配列に入れて、次に2つ目の  ファイルの1行目を配列に入れて、これを一旦出力して、同じ手順の  様な事を行を2行目、3行目、4行目、、とずらして繰り返す。って  感じでイメージしているのですが、どの様にソースを組めばいいのか  分かりませんでした。  どなたかご教授いただけないでしょうか? 宜しくお願い致します。

  • rubyでPDFファイルを読みたい

    PDFファイルを、rubyで読み込みたいのですが、 そのようなことを可能にする方法(ライブラリ)は、ありますでしょうか? つまり、 f = open "index.txt" f.each do |line|  puts line end この場合の「index.txt」が、テキストファイルでなく、 「index.pdf」というPDFファイルだった場合にも 同様の出力結果を期待したい、ということです。 (バイナリデータではなく、テキストデータを出力したい。) 実現手段をご存知の方がいましたら、何卒、教えて下さい。

  • Rubyでテキストから読みこんで計算するには

    Rubyプログラムを勉強中のものです。 openでテキストを読みこみ、そのテキストの中にある数字を使い、 defで計算するにはどのようなプログラムを作ればよいのでしょうか? 例えばnum.txtがあり、この中には 1.りんご 100円 2.みかん 80円 3.梨 120円 という内容が書き込まれているとします。 これを open("num.txt", "r") do |mise| で開く処理をし、 def fee (fru) fru * 0.5 end fruのなかにテキストに書かれている数字をいれて計算させるにはどのようにしたらよいでしょうか?