मैं कंसोल स्क्रीन पर, डीओ-लूप के साथ की गई गणना की प्रगति को प्रदर्शित करना चाहता हूं। मैं इस तरह टर्मिनल के लिए प्रगति चर प्रिंट कर सकते हैं:कंसोल स्क्रीन पर वर्तमान लाइन को ओवरराइट करने के लिए मैं प्रिंटर या WRITE कथन कैसे प्रारूपित करूं?
PROGRAM TextOverWrite_WithLoop
IMPLICIT NONE
INTEGER :: Number, Maximum = 10
DO Number = 1, MAXIMUM
WRITE(*, 100, ADVANCE='NO') REAL(Number)/REAL(Maximum)*100
100 FORMAT(TL10, F10.2)
! Calcultations on Number
END DO
END PROGRAM TextOverWrite_WithLoop
सांत्वना स्क्रीन पर ऊपर कोड के उत्पादन में है:
10,00 20,00 30,00 40,00 50,00 60,00 70,00 80,00 90,00 100,00
सभी एक ही पंक्ति पर, केवल कंसोल विंडो द्वारा लिपटे।
अग्रिम = 'नहीं' तर्क और TL10 (टैब इतने सारे रिक्त स्थान छोड़ दिया) संपादित वर्णनकर्ता अच्छी तरह से काम करता है एक ही लाइन पर पाठ अधिलेखित करने के लिए, उदाहरण के लिए निम्नलिखित कोड का उत्पादन:
WRITE(*, 100, ADVANCE='NO') 100, 500
100 FORMAT(I3, 1X, TL4, I3)
है:
बजाय:
TL4 संपादित वर्णनकर्ता की वजह से।
इन दो उदाहरणों से कोई यह निष्कर्ष निकाल सकता है कि WRITE कथन किसी अन्य WRITE कथन द्वारा लिखे गए या उसी WRITE Satement (जैसा कि डीओ-लूप में) के पिछले निष्पादन द्वारा लिखा गया है उसे ओवरराइट नहीं कर सकता है।
क्या यह किसी भी तरह से दूर किया जा सकता है?
मैं विंडोज 7 आरसी 1 पर एफटीएन 95 कंपाइलर का उपयोग कर रहा हूं। (G95 संकलक bluescreens का सेटअप प्रोग्राम विंडोज 7 RC1, यहां तक कि सोचा था कि यह Vista पर ठीक काम करता है।)
मैं, सवाल Supressing line breaks in Fortran 95 write statements के बारे में पता है, लेकिन यह मेरे लिए काम नहीं करता है क्योंकि उस प्रश्न का उत्तर नए ouput का मतलब उसी लाइन पर पिछले आउटपुट में जोड़ा जाता है; पिछले आउटपुट को ओवरराइट करने के नए आउटपुट की बजाय।
अग्रिम धन्यवाद।
आप कौन सा कंपाइलर और ओएस चालू हैं? – DigitalRoss
@ डिजीटल्रॉस, कंपाइलर = एफटीएन 95, ओएस = विंडोज 7 आरसी 1 – systemovich
शायद आपको एक जवाब स्वीकार करना चाहिए? –