Ruby 初心者スレッド Part 67 (748レス)
Ruby 初心者スレッド Part 67 http://mevius.5ch.net/test/read.cgi/tech/1608837867/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
310: デフォルトの名無しさん (ワッチョイ bfb7-I/Yj) [sage] 2021/09/21(火) 18:45:09.80 ID:0Go6zndF0 テキストファイルの処理で、段落ごとに時間のかかる作業(数時間単位)を回してるのだけど その対象のテキストファイル(data.txt)は処理中に追加で内容を追記していくようになっている def func() # (ここにすごく時間のかかる処理) end f=File.open("data.txt", 'r:UTF-8'){|f| f.each_line(rs=""){|l| func() } } ここで、f.each_lineの処理って、関数funcを実行している最中は次のループに行かないはずだよね? 動かしていて、どうも先読みしているような挙動を示しているのだけど、funcの処理が終わるまでは 先読みしないように指定ってできる? たとえばテキストの内容が A B C となっていて、段落Aの処理中にBとかCの内容に手を加えたり、新たにDという内容を末尾に加えたりしたい でも、どうもタイミングによって、最初Aだけだった内容でAを処理中にBを加えた時点ではすでに先読みしてて Bの処理を飛ばして、それより時間的にも位置的にも後に追加したCの処理をしたり、あるいはCも飛ばして Dを処理したりしてるような このあたりのファイルポインタの動きを説明してある情報源はない? http://mevius.5ch.net/test/read.cgi/tech/1608837867/310
312: デフォルトの名無しさん (ワッチョイ bfb7-I/Yj) [sage] 2021/09/21(火) 22:56:27.09 ID:0Go6zndF0 >>311 バッファ無効にするのにsyncなんてメソッドがあるのですね テストみたいなもんなんでこれ使ってやってみます! ありがとうございました http://mevius.5ch.net/test/read.cgi/tech/1608837867/312
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.029s