1

私はここに近づいていると思いますが、私を逃している重要な部分があります.

template.txt

私は 、単語ファイル を配列内の各値に置き換える
必要がある @file です


subvalues.txt

単語
1 単語2 単語3
単語
4

だから私がやっていることは、ファイルを開いて追加することです

filex = file.new ("outputfile.txt" "a")

次に、テンプレートデータを含むファイルを次のように開きます

data = file.open("template.txt")

次に、データを配列にインポートします

array1 = File.readlines("subvalues.txt")

そして、ここで私は立ち往生しています。配列をループし、配列の最初の要素で代入し、出力を に書き込み、配列の 2 番目の要素で再度代入し、出力を に追加し、配列に値がなくなるまで続行するにはどう@fileすれfile1ばよいoutputfile.txtです@fileか。file1outputfile.txt

同様の投稿を見つけましたが、私がやっていることと一致するものはありません。私はこれらのアイデアのいくつかを自分がやろうとしていることに適応させようとしましたが、逆のことをしているようで、うまくいきません。

4

2 に答える 2

2

template.txt :

I am a @file that needs the word file replaced with each value in an array  

subvalues.txt

word1
word2
word3
word4

コード:

data = File.open('template.txt', &:read)
array = File.read('subvalues.txt').split
File.open('outputfile.txt', 'a') do |file|
  array.each do |value|
    file.write(data.gsub('@file', value))
  end 
end
于 2012-06-14T15:28:15.903 に答える
0

ええと、あなたが望むなら、単純でハッキーな方法があります。

substitutions_array.each do |elt|
  big_file.sub('file', elt)
end

それは最善の方法ではないかもしれませんが、あなたにとってはうまくいくはずです。Subは1つの置換のみを行うため、配列をループできます。

編集:私はあなたの質問を誤解したと思います、その場合は上記の答えを参照してください。

于 2012-06-14T15:29:56.870 に答える