2009-09-04 11 views
27

मेरे पास एक कंसोल ऐप है जो एक लंबी प्रक्रिया करता है।.net कंसोल अनुप्रयोग में प्रतिशत दिखा रहा है

मैं प्रत्येक 1% पूर्ण के लिए एक नई लाइन, पर प्रतिशत को पूरा कर रहा हूं।

मैं प्रोग्राम को कंसोल विंडो में उसी स्थान पर प्रतिशत को पूरा कैसे कर सकता हूं?

+0

भी देखें इस संबंधित सवाल: http://stackoverflow.com/questions/888533/how-can-i-update-the-current-line-in-ac-windows -console-app –

+0

मुझे लगता है कि बैकस्पेस विधि शायद सबसे अच्छी (और सबसे पोर्टेबल) है, हालांकि थोड़ा और काम की आवश्यकता होगी। –

उत्तर

66

प्रिंट \r वापस लाइन की शुरुआत करने के लिए (लेकिन एक नई पंक्ति मुद्रित नहीं है!)

उदाहरण के लिए:

using System; 
using System.Threading; 

class Test 
{ 
    static void Main() 
    { 
     for (int i=0; i <= 100; i++) 
     { 
      Console.Write("\r{0}%", i); 
      Thread.Sleep(50); 
     } 
    } 
} 
+7

हाँ, यह करने का यह सबसे आसान तरीका है। सुनिश्चित करें (यदि आप इसे चर की लंबाई के तारों के लिए उपयोग कर रहे हैं) तो आपको लाइनों के अंत में रिक्त स्थान के साथ ओवरराइट करना याद है। जैसे "हो गया!" के साथ "99% पूर्ण" की जगह लाइन दिखाएगी "हो गया! omplete" - आदर्श नहीं। :) – ZombieSheep

+0

आपके पास एक त्रुटि से एक बंद है: पी –

+0

जॉन स्कीट: क्षमा करें, ऐसा लगता है कि स्टैक ओवरफ़्लो मुझे रोलबैक रोनीज़ को आपकी पोस्ट में सही ढंग से संपादित करने नहीं देगा। कृपया इसे स्वयं का प्रयास करें। –

16

आप उपयोग कर सकते हैं:

Console.SetCursorPosition(); 

स्थिति को उचित रूप से सेट करने के लिए।

तो जैसा:

Console.Write("Hello : "); 
for(int k = 0; k <= 100; k++){ 
    Console.SetCursorPosition(8, 0); 
    Console.Write("{0}%", k); 
    System.Threading.Thread.Sleep(50); 
} 

Console.Read(); 
संबंधित मुद्दे