2013-05-17 12 views
5

में चरित्र को कैसे पढ़ा जाए, मैं चाहता हूं कि मेरा प्रोग्राम सभी अक्षरों को 1 से 1 तक टेक्स्ट फ़ाइल पढ़ने के लिए और घुमावदार इसे अल्पविरामित कॉमा (") पाता है, यह उस उलटा कॉमा से पहले अर्धविराम जोड़ता है। उदाहरण के लिए हम इस प्रकार एक पाठ फ़ाइल में एक पैरा है:।फ़ाइल में 1 से 1 सी #

यह एक पैरा जो बहुत सारे और पात्रों के बहुत सारे और कुछ नाम और तारीखों conains है मेरा नाम है "सैम" i "00:00" "दोपहर में पैदा हुआ था । कहीं "। मैं में रहते हैं" "

अब मैं उत्पादन इस प्रकार हैं:

+०१२३५१६४१०६१

यह एक अनुच्छेद है जिसमें बहुत सारे और बहुत सारे पात्र और कुछ नाम और तिथियां शामिल हैं। मेरा नाम; "सैम;" मेरा जन्म हुआ; "12:00;" , "दोपहर,"। मैं में रहता हूं; "कहीं भी;" ।

इसे फ़ाइल स्ट्रीम का उपयोग करके फ़ाइल खोलनी चाहिए, फिर चरित्र पढ़ता है और फिर अर्धविराम जोड़ता है जहां इसे उल्टा कमन मिल जाता है। और आउटपुट textbox1.text के बराबर होना चाहिए।

कोड जब तक मैं कराए: -

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO; 

namespace ConsoleApplication1 { 
    class Program 
    { 
     static void Main(string[] args) 
     { 

      char ch; 
      int Tchar = 0; 
      StreamReader reader; 
      reader = new StreamReader(@"C:\Users\user1\Documents\data.txt"); 
      do 
      { 
       ch = (char)reader.Read(); 
       Console.Write(ch); 
       if (Convert.ToInt32(ch) == 34) 
       { 
        Console.Write(@";"); 
       } 
       Tchar++; 
      } while (!reader.EndOfStream); 
      reader.Close(); 
      reader.Dispose(); 
      Console.WriteLine(" "); 
      Console.WriteLine(Tchar.ToString() + " characters"); 
      Console.ReadLine(); 
     } 
    } 
} 

आउटपुट: -

यह एक पैरा जो बहुत सारे और पात्रों के बहुत सारे और कुछ नाम और तारीखों conains है। मेरा नाम "; सैम"; मेरा जन्म "; 12: 00" था; "; दोपहर" ;. मैं "कहीं भी" में रहता हूं; । 154 वर्ण

मैं उलटा कॉमा से पहले अर्धविराम चाहता हूं। किसी भी सहायता की सराहना की जाएगी। धन्यवाद

+0

कितना बड़ा है फ़ाइल? –

+0

औंधा अल्पविराम? क्या आपका मतलब है उद्धरण ('" ')? –

+0

@DarkoKenda इतना बड़ा नहीं है, बस ऊपर दिए गए उदाहरण का उपयोग करें और मेरा फ़ाइल डेटा मान लें। – Sam

उत्तर

7

स्वैप आपरेशन के आदेश:

if (Convert.ToInt32(ch) == 34) 
    { 
     Console.Write(@";"); 
    } 
    Console.Write(ch); 

उदा जब तक आप सेमीकॉलन आउटपुट करने का फैसला नहीं कर लेते हैं, तब तक मूल चरित्र को तब तक न लिखें।

+0

मुझे बेवकूफ लगता है।मैंने सोचा कि अगर हम पहले अक्षर (") के उत्तर में अर्धविराम नहीं जोड़ सकते हैं, तो – Sam

1

ch = (char)reader.Peek();

यह प्रयास करें बिना पढ़े आप अगले चरित्र बता पढ़ा जाएगा। इसके बाद आप इस का उपयोग कर सकते जाँच करने के लिए अगर यह एक "या नहीं एक डालने है: तदनुसार

if (Convert.ToInt32((char)read.Peek()) == 34) Console.Write(@";") 
0

आप वर्ण दर वर्ण में पढ़ने के लिए है करें निम्नलिखित कोड एक ब्लॉक और वापसी के रूप में पूरी बात करेंगे आप अपने सभी लाइनों युक्त एक सूची है।

var contents = File.ReadAllLines (@"C:\Users\user1\Documents\data.txt") 
        .Select (l => l.Replace ("\"", ";\"")); 
+0

उत्तर के लिए धन्यवाद, मैं चरित्र के चरित्र को पढ़ना चाहता हूं, यह सवाल का पूरा बिंदु है। – Sam

+2

पर्याप्त मेला, यह अनावश्यक रूप से अक्षम है । – Andrew

संबंधित मुद्दे