dev.net.ua

Українська Спільнота Розробникiв
 
Ласкаво просимо до dev.net.ua Увійти | Приєднатися | Допомога | Увійти Live ID
в Пошук

Задача на С#

Останнє повідомлення 28-05-2008, 6:14 від Rebel. 10 відповіді.
Сортувати: Попереднє Наступне
  •  21-05-2008, 3:41 6143

    Задача на С#

    Здравствуйте!
    Помогите, пожалуйста, с задачей, ибо я, похоже, деревянный по пояс. Задача следующая: "Требуется в тексте, загруженном в textBox после каждого символа ';' вставить переход в начало следующей строки и удалить все фрагменты текста, расположенные между сочетаниями символов '/*' и '*/'. Полученный текст отобразить во втором textBox." Помогите хотя бы частично! Большое спасибо!
  •  21-05-2008, 4:11 6144 у відповідь на 6143

    Re: Задача на С#

    string ProcessText(string text)
    {
     StringBuilder sb = new StringBuilder(text);
     StringBuilder sbResult = new StringBuilder(text.Length);

     int sbLength = sb.Length;
     for(int j = 0; j < sbLength; j++)
     {
        if(sb[j] == ';')
      {
       // add new line 
       sbResult.Append(sb[j]);
       sbResult.Append(Environment.NewLine);
      }
      else if (j < sbLength - 1 && sb[j] == '/' && sb[j + 1] == '*')
      {
          // seek next */ 
       while(j < sbLength)
       {
        if(j < sbLength - 1 && sb[j] == '*' && sb[j + 1] == '/')
        {
         ++j;
         break;         
        }

            ++j; 
       }
      }
      else
      {
       sbResult.Append(sb[j]);           
      }
     }

     return sbResult.ToString();
    }

    Код не тестил:)


    Thank you,
    Misha Zhutov
    http://submain.com - .NET Developer Tools
    Microsoft MVP
  •  21-05-2008, 7:53 6146 у відповідь на 6144

    Re: Задача на С#

    Looks like a school assignment to me...

    They call that cheating :)


    Thank you,
    Serge Baranovsky
    Microsoft MVP   |   http://submain.com - .NET Developer Tools   |   http://vbcity.com - Visual Basic Developer Community

    » » C#/VB .NET Coding Guidelines - FREE 100+ page ebook (PDF) http://submain.com/guidelines
  •  22-05-2008, 5:21 6151 у відповідь на 6143

    Re: Задача на С#

    string s = TextBox1.Text;
    int n1, n2;
    string[] sm = {"/*", "*/"};
    while ( (n1 = s.IndexOf(sm[0])) >= 0 && (n2 = s.IndexOf(sm[1])) >= 0 && n2 > n1 )
    {
    s = s.Remove(n1, n2 - n1 + sm[1].Length);
    }
    Literal1.Text = s.Replace(";", ";<br />"); // или ";\r\n"

    Вот только TextBox работает с однострочным текстом, поэтому на выходе нужно во что-то другое помещать.

  •  25-05-2008, 6:01 6177 у відповідь на 6143

    Re: Задача на С#

    Мне очень стыдно, что у меня вопросы на уровне school assignment, но вот возникла еще проблема. Embarrassed Если не слишком затруднит, то, помогите, пожалуйста.
    Необходимо в тексте определить количество слов, состоящих из чередующихся  нулей и единиц, и заменить слова "десять" и "десятый" символами "10". Большущее спасибо!
    Также хотелось бы узнать - по каким учебникам порекомендуете учиться, чтобы не обременять никого вопросами... :) Еще раз спасибо!

  •  25-05-2008, 8:56 6181 у відповідь на 6177

    Re: Задача на С#

    Mangoost:
    Мне очень стыдно, что у меня вопросы на уровне school assignment, но вот возникла еще проблема. Embarrassed Если не слишком затруднит, то, помогите, пожалуйста.
    Необходимо в тексте определить количество слов, состоящих из чередующихся  нулей и единиц, и заменить слова "десять" и "десятый" символами "10". Большущее спасибо!
    Также хотелось бы узнать - по каким учебникам порекомендуете учиться, чтобы не обременять никого вопросами... :) Еще раз спасибо!


    http://dev.net.ua/forums/thread/2077.aspx

    С уважением, Вячеслав
  •  28-05-2008, 2:53 6203 у відповідь на 6177

    Re: Задача на С#

    Это снова я... :) Я тут сам старался решить задачу (необходимо в тексте определить количество слов, состоящих из чередующихся нулей и единиц, и заменить слова "десять" и "десятый" символами "10), но ничего не получилось. Ниже привожу текст моих мучений. Что не так? Помогите ламеру! Большое спасибо!

    void stat_1()
            {
                string[] mass = null;
                string rab = null;
                char[] separator =  { ',', ';', ' ', '.', '\n', '\r' };
                mass = textBox1.Text.Split(separator);

                int K_vo = 0;       
                int np = textBox1.Text.IndexOf("1111", 0);
                int last_pos = np + 1;

                for (int j = 0; j < mass.Length; j++)
                {
                    rab = mass[j];
                    if ((rab[0] == '0') || (rab[0] == '1'))
                    {
                        int i = 0;
                        while ((rab[0] == '0') || (rab[0] == '1') || (i < rab.Length))
                        {
                            i++;
                            if (i == rab.Length)
                                K_vo++;
                        }
                    }
                 }
                label4.Text = K_vo.ToString();
        
            }

            void stat_2()
            {
                string[] mass = null;
                string rab = null;
                char[] separator =  { ',', ';', ' ', '.', '\n', '\r' };
                mass = textBox1.Text.Split(separator);
               
                textBox2.Clear();
                for (int j = 0; j < mass.Length; j++)
                {
                    {
                        rab = mass[j].Substring(mass[j].Length);
                        if ((rab == "ten") || (rab == "tenth"))
                            mass[j] = mass[j].Replace("ten","10");
                    }
                    textBox2.Text += mass[j] + " ";             }
  •  28-05-2008, 3:11 6204 у відповідь на 6203

    Re: Задача на С#

    Если вы хотите изучать программирование, и просите нас помочь с выполнением домашних заданий, мы будем только давай Вам советы, но не готовое решение.

    Во-первых, этот код невозможно читать. Когда пишете код, используйте какие то значимые слова для объявленных переменных.
    Что является разделителем для слов? Это оговорено в задаче? Если вам трудно решить сложную задачу, разбейте ее на маленькие части и решайте каждую часть в отдельности. Тут явно напрашиваются функции для разбиения текста на слова и методы для анализа слов. Кроме этого, когда вы постите текст - комментируйте его, чтобы было понятно, что код делает. Так будет легче его читать, а вы приобретете очень хороший стиль программирования.


    Thank you,
    Misha Zhutov
    http://submain.com - .NET Developer Tools
    Microsoft MVP
  •  28-05-2008, 3:22 6205 у відповідь на 6204

    Re: Задача на С#

    Поддерживаю.

    Для поиска ошибки рекомендую воспользоваться отладчиком и на каждом шагу отслеживать значение переменных/массивов. Тогда дочтаточно четко видно, где начинает работать неправильно.

  •  28-05-2008, 4:23 6206 у відповідь на 6205

    Re: Задача на С#

    Rebel:

    Для поиска ошибки рекомендую воспользоваться отладчиком и на каждом шагу отслеживать значение переменных/массивов.



    Извините, а не подскажите - как организовать пошаговое отслеживание? Спасибо!
    Использую Visual Studio 2005
  •  28-05-2008, 6:14 6207 у відповідь на 6206

    Re: Задача на С#

    Устанавливается breakpoint (точка останова) на какой-то оператор в тексте и запускается программа. Когда она остановится в указанной точке, можно посмотреть значения переменных/массивов/объектов. В VS есть целый toolbar для отладки (debug) и меню для этого, там же и пошаговое выполнение (F10).

Переглядати як новосний Блог RSS в XML