Progress: أشرطة تقدم متعددة

تم إنشاؤها على ٢٧ ديسمبر ٢٠١٥  ·  7تعليقات  ·  مصدر: r-lib/progress

سيكون رائعا. على سبيل المثال ، إذا كان هناك شريط تقدم داخل شريط التقدم ...

التعليق الأكثر فائدة

أجل ، بالضبط.

أعتقد أنه يمكننا الحصول على مجموعة عالمية من أشرطة التقدم النشطة. في شاشات العرض التي تدعم شريط تقدم واحد فقط ، وأبرزها R Studio ، سنعرض فقط الشريط العلوي ، وربما نعرض ملخصًا للباقي. على سبيل المثال لثلاثة مستويات:

85% | 34% | 50% [====================--------------------] ETA 13s

بالنسبة للمحطات التي تدعم ANSI المناسب ، يمكننا عرض جميع أشرطة التقدم (جيدًا ، حتى 10-20) في وقت واحد.

ال 7 كومينتر

سيكون من الرائع إذا نجح شيء مثل هذا:

pb1 <- progress_bar$new(total = 100)
for(i in 1:100){
  pb1$tick()
  pb2 <- progress_bar$new(total = 100)  
  for(j in 1:100){
    pb2$tick()
    Sys.sleep(1/1000)
    }
}

أجل ، بالضبط.

أعتقد أنه يمكننا الحصول على مجموعة عالمية من أشرطة التقدم النشطة. في شاشات العرض التي تدعم شريط تقدم واحد فقط ، وأبرزها R Studio ، سنعرض فقط الشريط العلوي ، وربما نعرض ملخصًا للباقي. على سبيل المثال لثلاثة مستويات:

85% | 34% | 50% [====================--------------------] ETA 13s

بالنسبة للمحطات التي تدعم ANSI المناسب ، يمكننا عرض جميع أشرطة التقدم (جيدًا ، حتى 10-20) في وقت واحد.

أعتقد أن إحدى الطرق التي يمكنك من خلالها دعم 3 أو 4 أشرطة تقدم متزامنة على سطر واحد هي استخدام أنماط برايل أحادية الترميز

[⠿⠿⠟⠛⠛⠛⠒⠒⠒⠒       ]

jimhester هذا ذكي ، ولكنه أيضًا محدود للغاية ، للأسف.

الوظيفة أدناه التي قمت بإنشائها بدائية للغاية ، ولكن لماذا لا يكون شيء مثل أدناه ممكنًا؟ أرغب في الحصول عليها في حزمة نمط تقدم مع خيارات للتقدم.

إعادة إنشاء البيانات:

df <- data.frame(samplecol=c(1:50),
           file=c(1:50))
df$file <- paste0("file",df$file)

x <-function() {Sys.sleep(1/100)}
y <-function() {Sys.sleep(1/20)}

وظيفة:

doubleProgressBar <- function(x, y) {
    for (i in 1:100) {
      x()
        for(j in 1:50){ 
          y()
          cat("\014")
          writeLines(c(paste0("OVERALL PROGRESS:", i,"%"," [",paste(rep("+",round((i/5))), collapse="")), 
                      paste0("FILE%: ",(j*2),"%"," CURRENTLY LOADING FILE: ",df[j,"file"], " [",paste(rep("+",round((j/2.5))), collapse=""))))
        }
      cat("\014")
      writeLines(c(paste0("OVERALL PROGRESS:", i,"%"," [",paste(rep("+",round((i/5))), collapse="")), 
                   paste0("FILE%: ",(j*2),"%"," CURRENTLY LOADING FILE: ",df[j,"file"], " [",paste(rep("+",round((j/2.5))), collapse=""))))
    }
}

###Does what I want, but with crude text entry. 
###Would be nice to have a package with nice entry have a double bar
doubleProgressBar(x,y)

سيكون من السهل القيام بذلك إذا كانت جميع المحطات الطرفية R تدعم تسلسل هروب ANSI لتحريك أسطر المؤشر لأعلى وللأسف فإن البعض (لا سيما محطة windows الافتراضية) لا تفعل ذلك ، لذا فأنت مقيد فقط بمسح السطر الأخير من النص باستخدام \r .

هل يمكنك إضافة خيار لاستخدام تسلسلات هروب ANSI الكاملة؟

بدلاً من ذلك ، يمكنك تقسيم المسافة الأفقية بين أشرطة التقدم ...

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات