Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/22: Рейтинг темы: голосов - 22, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 37

Регистрация в С#

20.02.2013, 23:27. Показов 4395. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте форумчане.У меня появилась такая проблема: у меня есть программа и файл txt, в файле лежат логин пароль и фио пользователя например:

123 123 иванов иван иваныч
456 456 петров петр петрович

вопрос такой как мне сравнить textbox1(логин) с словом до 1 пробела, и textbox2(пароль) слово между 1 и 2 пробелом, и если совпадет то считать фио с той строки где логин и пароль например,
user ввел

123(textbox1) 123(textbox2)
ему выдало (иванов иван иваныч), а если ввел

456(textbox1) 456(textbox2)
то ему выдало (петров петр петрович). Программа в c#
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2013, 23:27
Ответы с готовыми решениями:

Регистрация
Добрый день. Как сделать, чтобы ошибка "Вы ввели не всю информацию, вернитесь назад и заполните все поля" появлялась, после...

Регистрация
Здравствуйте, форумчане, не так давно задался вопросом регистрации на сайте, пробовал делать простые скрипты, смотрел чужие, все было...

Регистрация
скиньте ссилку или скажите как називаетса - a-zA-Z0-9_\. чтоби при регистрации пользователь немог написать знаки < ; ' [ и тд тп??

43
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
20.02.2013, 23:38
C#
1
2
 string somthing = "123 123 иванов иван иваныч";
            string[] param = somthing.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
В массве param слова по отдельности, дальше сравниваете обычным образом.
1
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 37
21.02.2013, 18:09  [ТС]
EvilFromHell, а как их потом разделить где первое слово где второе?
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
21.02.2013, 18:21
EvilFromHell, а как их потом разделить где первое слово где второе?
Не совсем понял вопроса, я же именно это и написал как сделать
param[номер слова начиная от нуля]
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 37
21.02.2013, 23:07  [ТС]
EvilFromHell, то есть можно записать в массив каждую строчку из текстового документа и так сверять 1 слово с textbox1 (например).И все это в цикл. И вроде должен работать я прав?
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
21.02.2013, 23:14
EvilFromHell, то есть можно записать в массив каждую строчку из текстового документа и так сверять 1 слово с textbox1 (например).И все это в цикл. И вроде должен работать я прав?
Ну да, примерно так, текст из файла заносится одной строкой в массив:
C#
1
string[] some = File.ReadAllLines("somefile.txt");
Дальше каждую строчку поделить на слова, и можно сравнивать.
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 37
21.02.2013, 23:30  [ТС]
Вроде понял спасибо))
если что можно в личку написать?
EvilFromHell,
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
21.02.2013, 23:41
Вроде понял спасибо))
если что можно в личку написать?
EvilFromHell,
Можно, если понадобится
1
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 37
21.02.2013, 23:52  [ТС]
EvilFromHell,
вот мой код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
StreamReader sr = File.OpenText("Danye.txt");// открываю файл
                while (true)// читаю все строчки
                {
                   
                    string st = sr.ReadLine();
                    if (st == null)
                        break;
                    string somthing = st;
                    string[] param = somthing.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
 
 
 
 
 
                    if (textBox1.Text == param[0] & textBox2.Text == param[1])// сравниваю 1 и 2 слово из массива param[]
                    {
                        Form3 frm = new Form3(); frm.Show();
                        peredacha.fio = param[2]; peredacha.fio2 = param[3]; peredacha.fio3=param[4]; peredacha.Value = 100;
                        // записываю в пустой класс данные из масива param
                    }
выдает ошибку на строку

string st = sr.ReadLine();

ошибка :
An unhandled exception of type 'System.ObjectDisposedException' occurred in mscorlib.dll

Additional information: Чтение из закрытого TextReader невозможно.
как ее исправить(прости если достал, я просто новичок в работе с файлами0
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
22.02.2013, 01:19
Приведите полностью код, у меня этот кусок работает, правда строка:
C#
1
string somthing = st;
Явно лишняя и тут. И, как я уже писал, куда проще использовать функцию, которую я упоминал выше, и не париться(В ряд ли у вас файл такого размера, что займет много памяти, а если бы он и был такого размера, то логично было бы использовать базу данных).
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 37
22.02.2013, 10:57  [ТС]
EvilFromHell,
Вот код кнопки полностью
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
   private void button1_Click(object sender, EventArgs e)
        {
            if (checkBox1.Checked == true)
            {
                peredacha.fio = "";
                peredacha.fio2 = "";
                peredacha.fio3 = "";
                peredacha.Value = 0;
 
 
 
                Form4 frm = new Form4(); frm.Show(); //this.WindowState = FormWindowState.Minimized;
 
            }
            else
            {
               // string[] some = File.ReadAllLines("Danye.txt");
 
                StreamReader sr = File.OpenText("Danye.txt");// открываю файл
                while (true)// читаю все строчки
                {
                   
                    string st = sr.ReadLine();
                    if (st == null)
                        break;
                    string somthing = st;
                    string[] param = somthing.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
 
 
 
 
 
                    if (textBox1.Text == param[0] & textBox2.Text == param[1])// сравниваю 1 и 2 слово из массива param[]
                    {
                        Form3 frm = new Form3(); frm.Show();
                        peredacha.fio = param[2]; peredacha.fio2 = param[3]; peredacha.fio3=param[4]; peredacha.Value = 100;
                        // записываю в пустой класс данные из масива param
                    }
                    else
                    {
                        if (textBox1.Text == "admin" & textBox2.Text == "admin")
                        {
                            peredacha.fio = "Зубков";
                            peredacha.fio2 = "Вячеслав";
                            peredacha.fio3 = "Дмитриевич";
                            peredacha.Value = 999999;
 
                            Form3 frm = new Form3(); frm.Show();
 
 
                        }
                      /*  else { timer1.Enabled = true; MessageBox.Show("Пароль либо логин был введен неверно. Приложение будет закрыто через 2 секунды.."); textBox1.Visible = false; textBox2.Visible = false; button1.Visible = false; }*/
 
                        sr.Close();
                    }
                }
            }    
        
              notifyIcon1.Visible = true;
            Visible = false;
        }
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
22.02.2013, 12:46
А, так у вас
C#
1
sr.Close();
поток закрывается после внутри цикла, то есть на втором проходе цикла он уже закрыт Вынесите эту строку вот сюда:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
   private void button1_Click(object sender, EventArgs e)
        {
            if (checkBox1.Checked == true)
            {
                peredacha.fio = "";
                peredacha.fio2 = "";
                peredacha.fio3 = "";
                peredacha.Value = 0;
 
 
 
                Form4 frm = new Form4(); frm.Show(); //this.WindowState = FormWindowState.Minimized;
 
            }
            else
            {
               // string[] some = File.ReadAllLines("Danye.txt");
 
                StreamReader sr = File.OpenText("Danye.txt");// открываю файл
                while (true)// читаю все строчки
                {
                   
                    string st = sr.ReadLine();
                    if (st == null)
                        break;
                    string somthing = st;
                    string[] param = somthing.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
 
 
 
 
 
                    if (textBox1.Text == param[0] & textBox2.Text == param[1])// сравниваю 1 и 2 слово из массива param[]
                    {
                        Form3 frm = new Form3(); frm.Show();
                        peredacha.fio = param[2]; peredacha.fio2 = param[3]; peredacha.fio3=param[4]; peredacha.Value = 100;
                        // записываю в пустой класс данные из масива param
                    }
                    else
                    {
                        if (textBox1.Text == "admin" & textBox2.Text == "admin")
                        {
                            peredacha.fio = "Зубков";
                            peredacha.fio2 = "Вячеслав";
                            peredacha.fio3 = "Дмитриевич";
                            peredacha.Value = 999999;
 
                            Form3 frm = new Form3(); frm.Show();
 
 
                        }
                      /*  else { timer1.Enabled = true; MessageBox.Show("Пароль либо логин был введен неверно. Приложение будет закрыто через 2 секунды.."); textBox1.Visible = false; textBox2.Visible = false; button1.Visible = false; }*/
 
                        
                    }
                }
sr.Close();
            }    
        
              notifyIcon1.Visible = true;
            Visible = false;
        }
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 37
22.02.2013, 13:01  [ТС]
EvilFromHell, так сейчас попробуем

Добавлено через 2 минуты
EvilFromHell, аааа бесит уже
теперь ругается на строчку
if (textBox1.Text == param[0] & textBox2.Text == param[1])
ошибка

An unhandled exception of type 'System.IndexOutOfRangeException' occurred in WindowsApplication1.exe

Additional information: Индекс находился вне границ массива.
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
22.02.2013, 13:10
Значит какая-то строка в файле по-видимому содержит только одно слово, тут можно либо дополнительную проверку ввести, либо использовать блоки Try{} Catch{} .
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 37
22.02.2013, 13:47  [ТС]
хмм очень странно в файле нет строк где меньше 5 слов в строке
я уже и цикл поставил с уловием вот
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
  private void button1_Click(object sender, EventArgs e)
        {
            string[] some = File.ReadAllLines("Danye.txt");
 
            StreamReader sr = File.OpenText("Danye.txt");// открываю файл
            if (checkBox1.Checked == true)
            {
                peredacha.fio = "";
                peredacha.fio2 = "";
                peredacha.fio3 = "";
                peredacha.Value = 0;
 
 
 
                Form4 frm = new Form4(); frm.Show(); //this.WindowState = FormWindowState.Minimized;
 
            }
            else
            {
               
                while (true)// читаю все строчки
                {
 
                    string st = sr.ReadLine();
                    if (st == null)
                        break;
                    string somthing = st;
                    string[] param = somthing.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
 
 
                    for (int i = 0; i < some.Length; i++)
                    {
 
 
                        if (/*some.Length>=1 &*/ textBox1.Text == param[0] & textBox2.Text == param[1])// сравниваю 1 и 2 слово из массива param[]
                        {
                            Form3 frm = new Form3(); frm.Show();
                            peredacha.fio = param[2]; peredacha.fio2 = param[3]; peredacha.fio3 = param[4]; peredacha.Value = 100;
                            // записываю в пустой класс данные из масива param
                        }
                        else
                        {
                            if (textBox1.Text == "admin" & textBox2.Text == "admin")
                            {
                                peredacha.fio = "Зубков";
                                peredacha.fio2 = "Вячеслав";
                                peredacha.fio3 = "Дмитриевич";
                                peredacha.Value = 999999;
 
                                Form3 frm = new Form3(); frm.Show();
 
 
                            }
                            /*  else { timer1.Enabled = true; MessageBox.Show("Пароль либо логин был введен неверно. Приложение будет закрыто через 2 секунды.."); textBox1.Visible = false; textBox2.Visible = false; button1.Visible = false; }*/
 
 
                        }
                    }
                   
                }
            }
              notifyIcon1.Visible = true;
            Visible = false;
            sr.Close();
        }
все ровно такая же ошибка.
вот файл
Вложения
Тип файла: txt Danye.txt (113 байт, 8 просмотров)
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
22.02.2013, 14:09
У вас есть в файле 1 строка, состоящие из непечатаемого символа перевода строки.
if (st == null) это не то же самое, что if (st == "").
У вас проверка не на пустоту строки, а на то, что ей не присвоено значение, это так и должно быть в случае с файлом. А цикл, который вы ввели, сами гляньте, что делает. Я вообще не понимаю логику, по которой вы его туда поместили Вместо него должны быть блоки Try{} Catch{}.
C#
1
2
            string[] some = File.ReadAllLines("Danye.txt");
            StreamReader sr = File.OpenText("Danye.txt");// открываю файл
Вы что-то одно выберите
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 37
22.02.2013, 14:15  [ТС]
EvilFromHell, вы правы я что-то только сейчас понял бессмысленность цикла . Я не могу придумать код исключения для блока Try{} .
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
22.02.2013, 14:21
Если вам нужно просто пропустить пустые строки-вообще ничего не надо придумывать, просто catch{} и все

Добавлено через 41 секунду
А так-в блоке catch то, что вы хотите сделать, в случае, если произошло исключение.
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 37
22.02.2013, 14:37  [ТС]
EvilFromHell, как я понял надо в Catch написать переход на следующую строку, но он не хочет читать Catch{} без Try{},я его просто оставил пустым а в Catch написал st.ReadLine() для перехода на следующую строку, но ошибку это не исправило
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
  private void button1_Click(object sender, EventArgs e)
        {
          //  string[] some = File.ReadAllLines("Danye.txt");
 
            StreamReader sr = File.OpenText("Danye.txt");// открываю файл
 
            if (checkBox1.Checked == true)
            {
                peredacha.fio = "";
                peredacha.fio2 = "";
                peredacha.fio3 = "";
                peredacha.Value = 0;
 
 
 
                Form4 frm = new Form4(); frm.Show(); //this.WindowState = FormWindowState.Minimized;
 
            }
            else
            {
               
                while (true)// читаю все строчки
                {
 
                    string st = sr.ReadLine();
                    if (st == null)
                        break;
                    string somthing = st;
                    string[] param = somthing.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                    try { st = ""; }
                    catch {st = sr.ReadLine(); }
 
 
 
                        if (/*some.Length>=1 &*/ textBox1.Text == param[0] & textBox2.Text == param[1])// сравниваю 1 и 2 слово из массива param[]
                        {
                            Form3 frm = new Form3(); frm.Show();
                            peredacha.fio = param[2]; peredacha.fio2 = param[3]; peredacha.fio3 = param[4]; peredacha.Value = 100;
                            // записываю в пустой класс данные из масива param
                        }
                        else
                        {
                            if (textBox1.Text == "admin" & textBox2.Text == "admin")
                            {
                                peredacha.fio = "Зубков";
                                peredacha.fio2 = "Вячеслав";
                                peredacha.fio3 = "Дмитриевич";
                                peredacha.Value = 999999;
 
                                Form3 frm = new Form3(); frm.Show();
 
 
                            }
                            /*  else { timer1.Enabled = true; MessageBox.Show("Пароль либо логин был введен неверно. Приложение будет закрыто через 2 секунды.."); textBox1.Visible = false; textBox2.Visible = false; button1.Visible = false; }*/
 
 
                        }
                    
                   
                }
            }
              notifyIcon1.Visible = true;
            Visible = false;
            sr.Close();
        }
Добавлено через 1 минуту
Может конечно я делаю все неверно
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
22.02.2013, 14:41
В блоке Try должно быть то, что вы пытаетесь сделать, а в catch - то, что надо сделать, если не получилось и вылетело исключение. А вашу логику я опять не понял)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.02.2013, 14:41
Помогаю со студенческими работами здесь

Регистрация
Ребята как мне сделать авторизацию по центру

Регистрация
помогите пожалуйста с регистрацией. вот дан код: &lt;html&gt; &lt;head&gt; &lt;/head&gt; &lt;body&gt; &lt;h2 align=&quot;center&quot;&gt; Регистрация &lt;br&gt;...

Регистрация
Помогите разобраться в двух ошибках. Ошибка возникает в одном документе. Ошибки: 1) Warning: mysql_fetch_array() expects parameter 1...

регистрация
Люди, подскажите, по какому принципу после ввода данных в форму переходишь на защищенную паролем страницу. Что-то нигде не могу об этом...

Регистрация
Прошу помощи уважаевых веб-мастеров. Дело обстоит так, создал авторизацию с регистрацией, прикрепил ее к БД(MySQL) локальный сервер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru