Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа со строками 
V
    Опции темы
PaZ1T1V
Дата 3.3.2008, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 169
Регистрация: 26.2.2008
Где: Багдад )

Репутация: нет
Всего: нет



Здраствуйте! Ет о5 я :( не пинайте плз ламера за глупые вопросы но ответьте.

 У меня такая проблема есть ри4текстбокс в нем есть строки типа "   sdasrf 5r djfu8it ujkgn 45 " - набор символов - слов, надо разделить все строки на слова и засунуть их в листбокс (при нажатом радиобуттон1)(реализовано но мне етот алгоритм не нравится мб кто подскажет лу4ше smile) ) потом если radioButton2.Checked то так же все разбивается на слова  и те слова которые содержат любую цифру должны занестись в листбокс 

 Пример: текст из файла в ри4текстбокс 

fdtgsdf 
yuik uj 
ut768 gh dfg
   sdasrf 5r djfu8it ujkgn 45 
gfhj it78
gyu t78 

должно занестись в листбокс 

ut768
5r
 45
it78
t78 

но заносится 

ut768
ut768
ut768
5r
45
it78
it78
t78
t78

по4ему как так ?? поможите 4ем можете плиз 

вот код :

Код


 private void button12_Click(object sender, EventArgs e)
        {
            string myString, myWord;
            ArrayList myAl = new ArrayList();
            int lines = richTextBox1.Lines.Count();
            for (int i = 0; i < lines; i++)
            {
                myString = richTextBox1.Lines[i];
                myWord = null;
                
                if (radioButton1.Checked == true)
                {
                    for (int j = 0; j < myString.Length; j++)
                    {
                        if (myString[j] != ' ') myWord += myString[j];
                        else
                        {
                            if (myWord != null)
                                listBox1.Items.Add(myWord);
                         myWord = null;
                         }
                        if(j == myString.Length)
                            if (myString[j] != ' ') myWord += myString[j];
                            else
                            {
                                if (myWord != null)
                                    listBox1.Items.Add(myWord);
                                myWord = null;
                            }
                    }
                }
                if (radioButton2.Checked == true)
                {
                    for (int j = 0; j < myString.Length; j++)
                    {
                        if (myString[j] != ' ') myWord += myString[j];
                        else
                        {
                            if (myWord != null)
                                for (int k = 0; k < myWord.Length; k++)
                                    for (int l = 0; l < 10; l++)
                                        if (myWord[k].ToString() == l.ToString())
                                            //listBox1.Items.Add(myWord);
                                            myAl.Add(myWord.ToString());
                            myWord = null;
                        }
                        if(j == myString.Length)
                            if (myWord != null)
                                for (int k = 0; k < myWord.Length; k++)
                                    for (int l = 0; l < 10; l++)
                                        if (myWord[k].ToString() == l.ToString())
                                            //listBox1.Items.Add(myWord);
                                            myAl.Add(myWord.ToString());
                    }
                   /* for (i = 0; i <= listBox1.Items.Count; i++)
                    {
                        for (int j = 0; j <= listBox1.Items.Count; j++)
                        {
                            if ((myAl[j].ToString() == myAl[i].ToString()) && (i != j))
                            {
                                //listBox1.Items.RemoveAt(j);
                                myAl.ToString().Remove(i);
                                break;
                            }
                        }
                    }*/
                }
            }
          
        AddValueInListBox(myAl, listBox1);
        }

         private void AddValueInListBox(IEnumerable myList, ListBox myLB)
        {
             foreach (Object obj in myList)
             {
                    myLB.Items.Add(obj);
             }
        }


 smile 
--------------------
[size=8]Atention please!!![/size]
[size=6]Кривые руки[/size]
PM MAIL WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Walker
Дата 3.3.2008, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 363
Регистрация: 23.10.2006

Репутация: 1
Всего: 16



Доброго времение суток!

Не понятно - Вас, всё-таки, интересует алгоритм поиска строк с числовыми сигнатурами или задача их отображения?
Похоже, что вы не обновляете listBox. Очищайте его перед заполнением. Метод Clear(). Код некрасивый, и разбираться в нём сейчас некогда. Предлагаю своё решение. Возможно, извлечёте что-нибудь полезное.

В комплексе мне представляется так:
1. Получите массив введёных строк. Это легко:
Код

string[] string_array = richtextbox.Text.Split(' ');

2. "Внутренняя логика". Пропустите массив через фильтр. Ну, чего-нибудь навроде
Код

List<String> string_array_after_filtering = new List<string>(); // Массив указателей на строки с числовой сигнатурой

foreach (string str in string_array)
    for (char sym = '0'; sym <= '9'; sym++)
        if (str.Contains(sym))
        {
            string_array_after_filtering.Add(str);
            break;
        }

3. Элемент listbox поддерживает связывание (binding) с объектами классов, реализующих IList:
Код

listbox.Clear();
listBox.DataSource = string_array_after_filtering;

Предложенный вариант не лишён недостатков, но работоспособен и мысль должен отражать ясно.
Замечание на будущее: Перечитайте правила оформления тем! И не дублируйте их!


Это сообщение отредактировал(а) Walker - 3.3.2008, 12:34


--------------------
"От вчерашних побед остаётся усталость, если завтрашний день не сулит ничего..."
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0608 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.