J, чтобы распечатать строку состояния и процент - PullRequest
0 голосов
/ 23 мая 2018

Я вычисляю время обработки, помещая

start =: 6!:0 ''

вверху моего кода и помещая

end =: (6!:0 '') - start

в конце моего кода.Тем не менее, есть ли способ, как я могу реализовать строку состояния, как это в J?

[====                      ]  25%
[============              ]  50%
[==========================] 100%

Спасибо!

1 Ответ

0 голосов
/ 23 мая 2018

Если я понимаю ваш вопрос, вы можете использовать smoutput, определяемый системой как 0 0 $ 1!:2&2, для отображения ваших этапов обработки на экране

someverb =: 3 : 0
   smoutput '{        }'
   code
   smoutput '{+++     }'
   more code
   smoutput '{+++++   }'
   more code
   smoutput '{++++++++}'
)

, но вы должны знать, что места, которыеВы вставляете выражения smoutput, которые будут соответствовать объему обработки.

Например:

   test =: 3 : 0
​smoutput 6!:0 'hh:mm:ss.sss'
​6!:3 (2) NB. 2 second delay
​smoutput 6!:0 'hh:mm:ss.sss'
​6!:3 (2) NB. 2 second delay
​smoutput 6!:0 'hh:mm:ss.sss'
​)
   test ''
14:53:42.313
14:53:44.317 NB. after two second delay
14:53:46.326 NB. after two second delay

или ближе к выводу, который вы хотите

test1 =: 3 : 0
  start=. 6!:0 ''
  smoutput '[            ]   0%'
  6!:3 (2) NB. 2 second delay
  smoutput '[===         ]  25%'
  6!:3 (2) NB. 2 second delay
  smoutput '[======      ]  50%'
  6!:3 (4) NB. 4 second delay
  smoutput '[============] 100%'
  (6!:0 '')- start
)
   test1 ''
[            ]   0%
[===         ]  25%
[======      ]  50%
[============] 100%
0 0 0 0 0 8.01821
...