2012-10-29 28 views
5

पर सहेजने के लिए कैसे करें मेरे पास एक सी # विंडोज फॉर्म ऐप है जो कुछ मानदंडों के आधार पर एक वेबपृष्ठ लॉन्च करता है।किसी निश्चित वेबपृष्ठ से सभी टेक्स्ट को कॉपी करने और इसे नोटपैड C#

अब मैं चाहता हूं कि मेरा ऐप स्वचालित रूप से उस पृष्ठ से सभी टेक्स्ट कॉपी करें (जो सीएसवी प्रारूप में है) और इसे नोटपैड में पेस्ट और सेव करें। http://www.wunderground.com/history/airport/FAJS/2012/10/28/DailyHistory.html?req_city=Johannesburg&req_state=&req_statename=South+Africa&format=1

किसी भी मदद की सराहना की जाएगी:

यहाँ डेटा कॉपी किया जा करने की जरूरत है कि का एक उदाहरण के लिए एक कड़ी है।

उत्तर

2

http://msdn.microsoft.com/en-us/library/fhd1f0sw.aspxhttp://www.dotnetspider.com/resources/21720-Writing-string-content-file.aspx

public static void DownloadString() 
{ 
    WebClient client = new WebClient(); 
    string reply = client.DownloadString("http://www.wunderground.com/history/airport/FAJS/2012/10/28/DailyHistory.html?req_city=Johannesburg&req_state=&req_statename=South+Africa&format=1"); 

    StringBuilder stringData = new StringBuilder(); 
    stringData = reply; 
    FileStream fs = new FileStream(@"C:\Temp\tmp.txt", FileMode.Create); 
    byte[] buffer = new byte[stringData.Length]; 
    for (int i = 0; i < stringData.Length; i++) 
    { 
     buffer[i] = (byte)stringData[i]; 
    } 
    fs.Write(buffer, 0, buffer.Length); 
    fs.Close(); 
} 
के साथ संयुक्त की पूरी पाठ होता है

संपादित करें आदिल WriteAllText विधि का उपयोग करता है, जो कि भी बेहतर है। तो अगर आप कुछ इस तरह मिल जाएगा:

WebClient client = new WebClient(); 
string reply = client.DownloadString("http://www.wunderground.com/history/airport/FAJS/2012/10/28/DailyHistory.html?req_city=Johannesburg&req_state=&req_statename=South+Africa&format=1"); 
System.IO.File.WriteAllText (@"C:\Temp\tmp.txt", reply); 
+0

आपको बहुत धन्यवाद। यह वास्तव में सबसे आसान और सबसे तेज़ तरीका है। ब्रांड नई Async के लिए धन्यवाद –

1

आपको पाठ फ़ाइल को स्ट्रिंग करने और सहेजने के लिए WebRequest की आवश्यकता है। फ़ाइल में लिखने के लिए आप File.WriteAllText का उपयोग कर सकते हैं।

WebRequest request = WebRequest.Create ("http://www.contoso.com/default.html"); 
        request.Credentials = CredentialCache.DefaultCredentials;    
HttpWebResponse response = (HttpWebResponse)request.GetResponse();    
Console.WriteLine (response.StatusDescription);    
Stream dataStream = response.GetResponseStream();    
StreamReader reader = new StreamReader (dataStream);    
string responseFromServer = reader.ReadToEnd(); 
System.IO.File.WriteAllText (@"D:\path.txt", responseFromServer); 
+0

'WriteAllText' के लिए +1! –

0

आप एक webclient उपयोग कर सकते हैं यह करने के लिए:

System.Net.WebClient wc = new System.Net.WebClient(); 
byte[] raw = wc.DownloadData("http://www.wunderground.com/history/airport/FAJS/2012/10/28/DailyHistory.html?req_city=Johannesburg&req_state=&req_statename=South+Africa&format=1"); 

string webData = System.Text.Encoding.UTF8.GetString(raw); 

तो स्ट्रिंग Webdata वेबपेज

+0

आप 'डाउनलोडस्ट्रिंग' विधि –

+0

का भी उपयोग कर सकते हैं मुझे लगता है कि बड़े डेटा के कारण स्ट्रिंगबिल्डर को प्राथमिकता दी जाती है? सिर्फ पूछ रहा हूँ कि मैं नया हूँ। –

+0

नमूना डेटा 941 बाइट्स –

5

आप .NET 4.5 से नए खिलौना HttpClient उपयोग कर सकते हैं, उदाहरण के कैसे गूगल पेज पाने के लिए:

var httpClient = new HttpClient(); 
File.WriteAllText("C:\\google.txt",  
          httpClient.GetStringAsync("http://www.google.com") 
            .Result); 
+1

+1! :) –

+0

यह काम .NET 4.0 में करें? –

+0

@Mr_Green: हाँ, अभी भी काम करते हैं, लेकिन आपको lib स्थापित करने की आवश्यकता है जिसमें nttget –

3

सरल तरीका: WebClient.DownloadFile का उपयोग करें और एक के रूप में सहेजने .txt फ़ाइल:

var webClient = new WebClient(); 
webClient.DownloadFile("http://www.google.com",@"c:\google.txt"); 

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

  • कोई संबंधित समस्या नहीं^_^