2017-01-16 8 views
0

хорошо Я делаю то, что должно быть довольно простым, я считаю, что я что-то пропускаю.C# Stream продолжает пропустить первую строку

Хорошо, и я использую HttpWebRequest и WebResponse, чтобы определить, существует ли файл robots.txt на сервере (и это работает отлично). Тем не менее, я пытаюсь добавить make myList.Add (reader.ReadLine()); Что (работает). Но проблема в том, что она продолжает пропускать первую строку.

https://www.assetstore.unity3d.com/robots.txt < Это я начал замечать проблему (просто чтобы вы знали, о чем я говорю). Это просто для тестирования. (Посмотрите на эту ссылку, чтобы вы могли понять, о чем я говорю).

Anywho, он также не добавляет reader.ReadLine в мой список (только первая строка). Поэтому я не совсем понимаю, что происходит, я пробовал это, и единственное, что я нахожу, - это намеренно пропустить строку, я не хочу этого делать.

Мой код ниже.

Console.WriteLine("Robots.txt Found: Presenting Rules in (Robot Rules)."); 
       HttpWebRequest getResults = (HttpWebRequest)WebRequest.Create(ur + "robots.txt"); 
       WebResponse getResponse = getResults.GetResponse(); 
       using (StreamReader reader = new StreamReader(getResponse.GetResponseStream())) { 
        string line = reader.ReadLine(); 
        while(line != null && line != "#") { 
         line = reader.ReadLine(); 
         rslList.Add(line); 
         results.Text = results.Text + line + Environment.NewLine; // At first I thought it might have been this (nope). 
        } 


        // This didn't work either (figured perhaps maybe it was skipping because I had to many things. 
        // So I just put into a for loop, - nope still skips first line. 
        // for(int i = 0; i < rslList.Count; i++) { 
        //  results.Text = results.Text + rslList[i] + Environment.NewLine; 
        // } 
       } 
       // Close the connection sense it is no longer needed. 
       getResponse.Close(); 
       // Now check for user-rights. 
       CheckUserRights(); 

Изображение результатов. enter image description here

+4

Вы выбрасывая первую 'строку строку = reader.ReadLine();' - изменение 'while' к' do'/' while'. – Enigmativity

+0

Спасибо, что попробуем это сейчас. – n1warhead

+0

Спасибо, человек, который полностью сработал! – n1warhead

ответ

1

Изменение при следующем вызове линии прочтении

var line = reader.ReadLine(); //Read first line 
while(line != null && line != "#") { //while line condition satisfied 
    //perform your desired actions 
    rslList.Add(line); 
    results.Text = results.Text + line + Environment.NewLine; 
    line = reader.ReadLine(); //read the next line 
} 
+0

Эй, спасибо за помощь, я попробовал сначала Enigmativity (потому что я это заметил первым), и его работа ... Спасибо за ваше время. – n1warhead

+0

@ n1warhead - Дайте Nkosi галочку - он взял время, чтобы реализовать мое предложение, - спас мне время. :-) – Enigmativity