web-gelistirme-sc.com

Konsolda basılan karakterler nasıl silinir?

Başka dillerde nasıl yapıldığını araştırıyorum ve son karakteri kaldırmak için özel karakter\b kullanmam gerektiğini öğrendim. ( konsolda bir uygulama-i-sil-yazdırılan karakterleri silme-applicationlinux )

Bu, birden fazla çağrıda node.js için çalışmıyor. Console.log ();

Tek bir günlük yazarsam:

console.log ("abc\bd");

Sonuç alıyorum: abd

Ama eğer yazarsam:

console.log ("abc");
console.log ("\bd");

Sonuç alıyorum:

aBC
.__ d.

Amacım şöyle bir bekleyen mesajı basmak:

Bekleme
Bekleme.
Bekleme ..
Bekleme ...

ve yeniden:

Bekleme
Bekleme.
vb

hepsi aynı çizgide.

65
Gabriel Llamas

process.stdout için kullanılabilir işlevler vardır:

var i = 0;  // dots counter
setInterval(function() {
  process.stdout.clearLine();  // clear current text
  process.stdout.cursorTo(0);  // move cursor to beginning of line
  i = (i + 1) % 4;
  var dots = new Array(i + 1).join(".");
  process.stdout.write("Waiting" + dots);  // write text
}, 300);

Güncelleme 13 Ara 2015: Yukarıdaki kod çalışmasına rağmen, artık process.stdin dosyasının bir parçası olarak belgelenmiyor. readline konumuna taşındı

117
pimvdb

Şimdi bunları yapmak için readline kütüphanesini ve API komutunu kullanabilirsiniz.

18
gobwas

Aynı satırın üzerine yazmanın en kolay yolu 

var dots = ...
process.stdout.write('Progress: '+dots+'\r');

\r anahtarıdır. İmleci satırın başına geri götürür.

14
jonnysamps

Bu benim için çalışıyor:

process.stdout.write('\033c');
process.stdout.write('Your text here');
0
Michael Yurin