ここにいくつかの一般的なアイデアがあります。 tools
パッケージのmd5sum
を使用して、ファイルが更新されているかどうかを確認します。 while(...) {}
内のif
ブロックは、ファイルの確率的更新をシミュレートします。 1つの質問は、ファイルがであり、最後にが更新を停止したことをどのように知っているかです。ここでは、ファイルが3つのループの後に更新されていない場合にのみ、ループを中断するカウンタとしてj
を使用します。
library(tools)
writeLines(text=paste(Sys.time()), "foo.txt")
new <- old <- md5sum("foo.txt")
msg <- list()
msg[[1]] <- readLines("foo.txt")
i <- 2
j <- 1
while(!identical(old, new) | j<3) {
if (!identical(old, new)) {
msg[[i]] <- readLines("foo.txt")
j <- 1
i <- i + 1
} else {
j <- j + 1
}
old <- new
Sys.sleep(1)
if(sample(c(TRUE, FALSE), 1, p=c(.6, .4))) {
cat("Updating\n")
writeLines(text=paste(Sys.time()), "foo.txt")
}
new <- md5sum("foo.txt")
}
unlist(msg)
# [1] "2016-08-11 17:50:49" "2016-08-11 17:50:51" "2016-08-11 17:50:53"
# [4] "2016-08-11 17:50:54" "2016-08-11 17:50:55" "2016-08-11 17:50:57"
# [7] "2016-08-11 17:50:58" "2016-08-11 17:50:59" "2016-08-11 17:51:00"
# [10] "2016-08-11 17:51:01" "2016-08-11 17:51:04" "2016-08-11 17:51:07"
# [13] "2016-08-11 17:51:09" "2016-08-11 17:51:10"
ここではさまざまな質問があります。あなたを止める一つのことに集中できますか? – Seth