私はいくつかの助けが必要です。それはいくつかのユニークな解決策です。ある位置に基づいてある値を置き換える必要があるテキスト ファイルがあります。これは大きなファイルではなく、常にすべての行に固定長の 5 行が含まれます。しかし、特定の位置でのみ soem テキストを置き換える必要があります。さらに、必要な位置にテキストを挿入し、そのテキストを毎回必要な値に置き換えることもできます。このソリューションを実装する方法がわかりません。以下に例を示しました。
Line 1 - 00000 This Is Me 12345 trying
Line 2 - 23456 This is line 2 987654
Line 3 - This is 345678 line 3 67890
上記は、いくつかの値を置き換えるために使用する必要があるファイルであると考えてください。1 行目と同様に、'00000' を '11111' に置き換え、2 行目で 'This' を 'Line' に置き換えるか、4 桁のテキストが必要です。テキスト ファイル内の位置は常に同じままです。
機能する解決策がありますが、これは位置に基づいてファイルを読み取るためのものであり、書き込み用ではありません。誰かが同様に位置に基づいて書くための解決策を教えてください
位置に基づいてファイルを読み取るためのソリューション:
def read_var file, line_nr, vbegin, vend
IO.readlines(file)[line_nr][vbegin..vend]
end
puts read_var("read_var_from_file.txt", 0, 1, 3) #line 0, beginning at 1, ending at 3
#=>308
puts read_var("read_var_from_file.txt", 1, 3, 6)
#=>8522
私はこの解決策を書いてみました。これは機能しますが、位置に基づいて、または特定の行に存在するテキストに基づいて機能する必要があります。
ファイルに書き込むための調査済みソリューション:
open(Dir.pwd + '/Files/Try.txt', 'w') { |f|
f << "Four score\n"
f << "and seven\n"
f << "years ago\n"
}