Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2012, 14:19   #1
Odyssey
Подтвердите свой е-майл
 
Регистрация: 11.02.2012
Сообщений: 8
Печаль пробелы :(

Привет всем!
Дурацкий вопрос, чувствую, что очень легко решается, но увы... не получается

Ну в общем вот, мне необходимо: в textbox вводится слово, программа запускает поиск в текстовом файле, когда появляется пробел, необходимо остановить цикл, ожидать ввода следующего слова, потом найти его ну и.т.д...

В общем нужно найти пробел и начать новый поиск.
Пробовал средствами goto, но как-то тоже не удалось Хотя возможно не правильно делал просто.

Помогите пожалуйста

Код:
string en = @"data/general/en.txt";
        string ru = @"data/general/ru.txt";

        private void Form1_Load(object sender, EventArgs e)
        {
            StreamReader sren = new StreamReader(en);
            String lineen;
            while ((lineen = sren.ReadLine()) != null)
            { listBox1.Items.Add(lineen); }

            StreamReader srrus = new StreamReader(ru);
            String linerus;
            while ((linerus = srrus.ReadLine()) != null)
            { listBox2.Items.Add(linerus); }
}

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            string Search = textBox1.Text;
            Search += e.KeyChar;
            string[] SMass;

            for (int i = 0; i < listBox1.Items.Count; i++)
            {  
                string str = listBox1.Items[i].ToString();
                string strrus = listBox2.Items[i].ToString();

                if (str.StartsWith(Search))
                {
                    listBox1.ClearSelected();

                    listBox1.SelectedItem = listBox1.Items[i];
                    listBox2.SelectedItem = listBox2.Items[i];
                    string find = Convert.ToString(listBox2.Items[i]);
                    textBox2.Text = find;
                    label1.Text = "Возможно Вы пишите: " + listBox1.Items[i];

                    break;
                }
}

Последний раз редактировалось Odyssey; 16.04.2012 в 15:34.
Odyssey вне форума Ответить с цитированием
Старый 16.04.2012, 15:17   #2
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

1) Сформулируй внятно: что ты где ищешь и где появляются пробелы?
2) Где в коде чтение файла?
3) Что вообще эта программа должна делать?
ds.Dante вне форума Ответить с цитированием
Старый 16.04.2012, 15:25   #3
Odyssey
Подтвердите свой е-майл
 
Регистрация: 11.02.2012
Сообщений: 8
По умолчанию

В textBox1 вводится слово, осуществляется его поиск в txt файле, после того как оно найдено, оно выводиться в textBox2. После этого пользователь ставит пробел, и пишет новое слово (не стирая предыдущее), должен запуститься такой же поиск (которым мы искали первое слово), и так до бесконечности.

Программа переводчик.

так загружаются текстовые доки:

Код:
string en = @"data/general/en.txt";
        string ru = @"data/general/ru.txt";

        private void Form1_Load(object sender, EventArgs e)
        {
            StreamReader sren = new StreamReader(en);
            String lineen;
            while ((lineen = sren.ReadLine()) != null)
            { listBox1.Items.Add(lineen); }

            StreamReader srrus = new StreamReader(ru);
            String linerus;
            while ((linerus = srrus.ReadLine()) != null)
            { listBox2.Items.Add(linerus); }

        }
Odyssey вне форума Ответить с цитированием
Старый 16.04.2012, 15:37   #4
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Чтобы появилась ясность, вынеси поиск по словарю в отдельную функцию

string LookUp (string word)
ds.Dante вне форума Ответить с цитированием
Старый 16.04.2012, 15:46   #5
Odyssey
Подтвердите свой е-майл
 
Регистрация: 11.02.2012
Сообщений: 8
По умолчанию

Вот все что у меня есть, попробуйте создать проект, или так на взгляд, программа переводит только 1 введенное слово, а нужно чтобы столько, сколько введет пользователь, соответственно разделять он их будет пробелами. Вот. Надеюсь так более доступно. Если необходимо могу скинуть txt файлы

Код:
namespace Ling
{
    public partial class Form1 : Form
    {
        #region  || Инициализация программы ||

        public Form1()
        { InitializeComponent(); }

        string en = @"data/general/en.txt";
        string ru = @"data/general/ru.txt";

        private void Form1_Load(object sender, EventArgs e)
        {
            StreamReader sren = new StreamReader(en);
            String lineen;
            while ((lineen = sren.ReadLine()) != null)
            { listBox1.Items.Add(lineen); }

            StreamReader srrus = new StreamReader(ru);
            String linerus;
            while ((linerus = srrus.ReadLine()) != null)
            { listBox2.Items.Add(linerus); }
        }

        #endregion

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            string Search = textBox1.Text;
            Search += e.KeyChar;
            string[] SMass;

            for (int i = 0; i < listBox1.Items.Count; i++)
            {  
                string str = listBox1.Items[i].ToString();
                string strrus = listBox2.Items[i].ToString();

                #region || English ||

                if (str.StartsWith(Search))
                {
                    listBox1.ClearSelected();

                    listBox1.SelectedItem = listBox1.Items[i];
                    listBox2.SelectedItem = listBox2.Items[i];
                    string find = Convert.ToString(listBox2.Items[i]);
                    textBox2.Text = find;
                    label1.Text = "Возможно Вы пишите: " + listBox1.Items[i];

                    break;
                }
                #endregion

                #region || Russian ||

                if (strrus.StartsWith(Search))
                {
                    listBox2.ClearSelected();

                    listBox2.SelectedItem = listBox2.Items[i];
                    listBox1.SelectedItem = listBox1.Items[i];
                    string find = Convert.ToString(listBox1.Items[i]);
                    textBox2.Text = find;
                    label1.Text = "Возможно Вы пишите: " + listBox2.Items[i];

                    break;
                }
                #endregion
            }
        }
    }
}
Odyssey вне форума Ответить с цитированием
Старый 16.04.2012, 16:06   #6
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Должно получиться что-то типа

Код:
foreach (string word in textBox1.Text.Split())
  textBox2.Text += LookUp (word) + " ";
ds.Dante вне форума Ответить с цитированием
Старый 16.04.2012, 16:37   #7
Odyssey
Подтвердите свой е-майл
 
Регистрация: 11.02.2012
Сообщений: 8
По умолчанию

не получается, хотя может не туда вставил.

также вопрос :
Цитата:
Чтобы появилась ясность, вынеси поиск по словарю в отдельную функцию

string LookUp (string word)
у меня одни ошибки сразу
Odyssey вне форума Ответить с цитированием
Старый 16.04.2012, 18:47   #8
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Ну так ты сам напиши эту функцию.
ds.Dante вне форума Ответить с цитированием
Старый 16.04.2012, 20:15   #9
Odyssey
Подтвердите свой е-майл
 
Регистрация: 11.02.2012
Сообщений: 8
По умолчанию

Код:
string LookUp (string word)
        {
            string Search = textBox1.Text;

            for (int i = 0; i < listBox1.Items.Count; i++)
            {
                string str = listBox1.Items[i].ToString();
                string strrus = listBox2.Items[i].ToString();

                    #region || English ||

                if (str.StartsWith(Search))
                {
                    listBox1.ClearSelected();

                    listBox1.SelectedItem = listBox1.Items[i];
                    listBox2.SelectedItem = listBox2.Items[i];
                    string finden = Convert.ToString(listBox2.Items[i]);
                    textBox2.Text = finden;
                    label1.Text = "Возможно Вы пишите: " + listBox1.Items[i];

                    #endregion

                    #region || Russian ||

                    if (strrus.StartsWith(Search))
                    {
                        listBox2.ClearSelected();

                        listBox2.SelectedItem = listBox2.Items[i];
                        listBox1.SelectedItem = listBox1.Items[i];
                        string findrus = Convert.ToString(listBox1.Items[i]);
                        textBox2.Text = findrus;
                        label1.Text = "Возможно Вы пишите: " + listBox2.Items[i];

                        break;
                    }
                    #endregion
                }
            }
        }
Так? Здесь выводит ошибку не все ветви кода возвращают значение
Odyssey вне форума Ответить с цитированием
Старый 17.04.2012, 13:36   #10
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Я не просто так написал функцию таким образом, чтобы она принимала строку (оригинал слова), и возвращала другую строку (перевод). Я уже писал, как должно выгядеть использование этой функции:

Код:
foreach (string word in textBox1.Text.Split())
  textBox2.Text += LookUp (word) + " ";
ds.Dante вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пробелы в Listview D_E_N Общие вопросы Delphi 2 20.01.2010 19:16
Проверка на пробелы SnowSin Помощь студентам 5 07.12.2009 22:19
Пробелы Progs1024 Помощь студентам 1 25.10.2009 21:06
Где пробелы ?!!! Evgenijj О форуме и сайтах клуба 4 07.03.2009 17:03