Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Чтение файла C#
 
 автор: OLi   (27.12.2012 в 14:13)   письмо автору
 
 

Есть такой код:

using (StreamReader sr = new StreamReader("C:\\TestData.txt"))
           {
              

               string lines = string.Empty;
               while ((lines = sr.ReadLine()) != null)
               {
                   lines = sr.ReadLine();
                   ac.Add(lines);
               }
               this.button1_Click(sender, e);
           }

Файл C:\\TestData.txt содержит данные:
______________

10
12 4 5 5 5
13
_________

Первая строка пустая
Проблема в том, что при обращении к:
ac[1] выводит 13 / /Должно 12 4 5 5 5
ac[0] выводит 10 //должно пустую строку
ac[2] ничего нет //должно быть 13

В чем причина?

  Ответить  
 
 автор: cheops   (27.12.2012 в 20:49)   письмо автору
 
   для: OLi   (27.12.2012 в 14:13)
 

ac[1] - это первый символ строки ac, с кодом 10 - перевод строки \n
ac[2] - это второй символ строки ac, с кодом 13 - возврат коретки \r
ac[3] - это третий символ строки ac, в котором уже ничего нет, строка закончилась.

  Ответить  
 
 автор: root   (28.12.2012 в 16:13)   письмо автору
 
   для: OLi   (27.12.2012 в 14:13)
 

using (StreamReader sr = new StreamReader("C:\\TestData.txt")) 
           { 
               

               string lines = string.Empty; 
               while ((lines = sr.ReadLine()) != null) 
               { 
                   //lines = sr.ReadLine(); причина тут
                   ac.Add(lines); 
               } 
               this.button1_Click(sender, e); 
           } 

зачем второй раз sr.ReadLine() вызывать?

P.S.
Проще так
string[] lines = File.ReadAllLines(@"C:\\TestData.txt");

  Ответить  
 
 автор: OLi   (28.12.2012 в 23:20)   письмо автору
 
   для: root   (28.12.2012 в 16:13)
 

Сделал как вы написали. Щас вопрос в другом:
у меня в массиве lines строки считанные с файла, строка представляет из себя набор символов через пробел, которые надо считать по отдельности.
Вот содержимое файла
10
1 10 5 9 6 2 4 3 8 7
1 0 1 0 1 0 0 0 0 1
4 s 0 -4 11 2 9 ww

Вот как происходит посимвольное считывание строки:

for (int i = 0; i < words.Length; i++)
                {

                    Label l = new Label();
                    l.AutoSize = true;
                    l.Location = new Point(20, (j) * 20);
                    l.Text = " " + words[i].ToString();
                    groupBox2.Controls.Add(l);
                    j++;

                    this.SD(words[i]);


                   
                }


И тут вопрос:
Как видно - вызывается функция SD, которой передается считанный символ строки.
Проблема в том, что в SD поступает лишь первый символ

public string SD(string num){

return num;

}
Поставил точку остановки на return num и показало что только num = 4 - первый символ послался. А как насчет остальных?

  Ответить  
 
 автор: root   (31.12.2012 в 13:11)   письмо автору
 
   для: OLi   (28.12.2012 в 23:20)
 

покажите откуда пременная words берется

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования