Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.08.2017
Сообщений: 15

Combobox , Textbox, информация из txt с разделителем - построчно

23.08.2017, 06:16. Показов 3286. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание в универе, к 28 августа надо эту работу сдать, я заочница и профессия на которую я учусь - она вообще не связана с программированием. Но это сделать задали. В общем вопрос такой:
В текстовом файле лежащем на диске C:/ (1.txt) есть информация такого рода -
1я строка (111;222;333;444;555;666),
2я строка (aaa;sss;ddd;fff;ggg) и так далее. В комбобоксе должен быть выбор только из (111,aaa) И при выборе - в остальных 5 textbox'ах должна появиться информация
(если выбрали 111, то в textbox1 - 222, textbox2 - 333 и так далее).
Если в 1 из textbox'ов ввести другое (Например если было 333, ввести nnn) - то в блокноте 333 тоже должно измениться на nnn и строка должна стать 111;222;nnn;444;555;666.

Звала друга с кафедры информатики, он часик провозился и сказал что лучше задать вопрос на вашем форуме, что тут точно помогут. Зато я разобралась с конструктором форм и умею вписывать коды куда нужно.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.08.2017, 06:16
Ответы с готовыми решениями:

Чтение из файла .txt построчно в разные textbox
Добрый день! У меня такая проблема: посмотрев множество сайтов я не нашел ответ на интересующий меня вопрос. Как можно осуществить...

Написать программу- вводная информация в файле in.txt, выходная информация в out.txt
Написать программу- вводная информация в файле in.txt, выходная информация в out.txt. Срочнооо..

Необходимо чтобы в TextBox-ах отображалась информация в зависимости от выбора сделаного в ComboBox -е
Добрый день, проблема такая, необходимо чтобы в textBox -ах отображалась информация в зависимости от выбора сделаного в comboBox -е. Так...

29
Unnamed
 Аватар для kingzfate
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
23.08.2017, 21:18
Студворк — интернет-сервис помощи студентам
Arina95, Вторая кнопка это сохранение, комментарии не влияют на код
1
0 / 0 / 0
Регистрация: 23.08.2017
Сообщений: 15
23.08.2017, 21:32  [ТС]
kingzfate, Если добавить еще 1 строку - например
C#
1
2
3
4
5
6
111;222;333
aaa;sss;ddd;fff;ggg;zzz
1;2;3;4
7;8;9;0;1;1231
1;321;312;123
vvv;bbb;nnn;mmm;
То если зайти в нее в combobox - и попробовать поменять в нем 1 из textbox и нажать button2 - то показывает ошибку на
C#
1
count--;
Индекс находится вне границ массива. А остальное да, все прямо как нужно. Даже сохранение работает!
0
Unnamed
 Аватар для kingzfate
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
23.08.2017, 21:43
Arina95, да, надо просто в записи подставить значение длинны массива, тогда будет и так работать, просто вы это не обозначали в своей задаче
1
0 / 0 / 0
Регистрация: 23.08.2017
Сообщений: 15
23.08.2017, 21:59  [ТС]
kingzfate,
Цитата Сообщение от Arina95 Посмотреть сообщение
2я строка (aaa;sss;ddd;fff;ggg) и так далее
В общем сколько строк, такая и длинна должна была быть. В любом случае вы сделали все что могли, спасибо вам большое. Тут скорее всего точно зачет автоматом) На всякий случай все же спрошу, а где задается длинна массива?
тут?
C#
1
            count = 5;
И вот тут?
C#
1
                    if (count2 < 5)
А если будет меньше 5 строк - тоже ошибка будет?

Добавлено через 8 минут
kingzfate, Тоже ошибка. Только теперь после ввода значений и после нажатия button1 вне границ массива оказывается
C#
1
comboBox1.Items.Add(str[i][0]);
0
Unnamed
 Аватар для kingzfate
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
23.08.2017, 22:34
Arina95, заметил, исправил. Остальное не сегодня, завтра отпишитесь посмотрим
Кликните здесь для просмотра всего текста
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
using System;
using System.Data;
using System.IO;
using System.Linq;
using System.Windows.Forms;
 
namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        string[] stArray;
        string[][] str;
        int count, count2, a;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            a = comboBox1.SelectedIndex;
            count = str[a].Length - 1;
            count2 = str[a].Length - 1;
 
            foreach (TextBox tb in Controls.Cast<Control>().Where(x => x is TextBox).Select(x => x as TextBox))
            {
                try
                {
                    if (count2 < 5)
                    {
                        tb.Text = "";
                        count2++;
                    }
                    else
                    {
                        tb.Text = str[a][count];
                        count--;
                    }
                }
                catch { }
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            a = comboBox1.SelectedIndex;
            count = 5;
            string[,] SaveStr = new string[comboBox1.Items.Count, 6];
 
            for (int i = 0; i < comboBox1.Items.Count; i++)
            {
                for (int j = 0; j < 6; j++)
                {                  
                    try
                    {
                        SaveStr[i, j] = str[i][j];
                    }
                    catch { SaveStr[i, j] = ""; }                  
                }
            }
            foreach (TextBox tb in Controls.Cast<Control>().Where(x => x is TextBox).Select(x => x as TextBox))
            {
                if (count == 0)
                {
                    SaveStr[a, count] = comboBox1.Items.ToString();
                    break;
                }                
                SaveStr[a, count] = tb.Text;
                count--;
           }
 
            using (StreamWriter sw = new StreamWriter(@"D:\1.txt", false))
            {
                for (int i = 0; i < SaveStr.GetLength(0); i++)
                {
                    string[] line = new string[SaveStr.GetLength(1)];
                    for (int j = 0; j < SaveStr.GetLength(1); j++)
                    {
* * * * * * * * * * * * //Cобираем в строковый массив столбцы текущей строки массива
* * * * * * * * * * * * line[j] = SaveStr[i, j].ToString();
                    }
* * * * * * * * * * //Метод Join() склеивает элементы массива line в одну строку, разделяя их пробелами
* * * * * * * * * * sw.WriteLine(String.Join(";", line));
                }
            }
 
 
        }
        private void button1_Click(object sender, EventArgs e)
        {
            comboBox1.Items.Clear();
            stArray = File.ReadAllLines(@"D:\1.txt");
            str = new string[stArray.Length][];
 
            for (int i = 0; i < str.Length; i++)
            {
                str[i] = new string[stArray[i].Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).Length];
            }
 
            for (int i = 0; i < str.Length; i++)
            {
                for (int j = 0; j < stArray[i].Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).Length; j++)
                {
                    string[] text = stArray[i].Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
                    str[i][j] = text[j];
                }
                comboBox1.Items.Add(str[i][0]);
            }
        }
    }
}
1
0 / 0 / 0
Регистрация: 23.08.2017
Сообщений: 15
24.08.2017, 01:10  [ТС]
kingzfate, Я даже не знаю. В последнем коде - по кнопке button2 - код перестал менять значения в txt введенные в textbox'ы (ссылка на кнопку есть). Я не знаю, завтра в обед с работы уйду и поеду в универ, попробую сдать. Если примут - очень даже хорошо, да как не примут - должны принять. Уверена что многие вовсе не сделают. А так - уже не знаю. Если что и осталось - чтоб наверняка:
1)Чтоб значения в combobox обновлялись не по кнопке button1 а когда нажимаешь на combobox.
2)Чтоб строк в txt было любое количество и все были изменяемыми из textbox'ов и сохранялись по button2 в txt.
А так, тот код что был до последнего - с 5ю строками полностью работает.
Завтра тогда тоже ноут на работу возьму, если что все прочту и попробую и сдевать буду новый вариант. Но просить вас о чем-то, это уже будет наглостью. Так что на ваше усмотрение. Уверена, ваш код итак будет лучшим что сдадут, из всех. Спасибо вам огромное!!!

Добавлено через 1 час 30 минут
kingzfate, Это как вобще? Все, все строки читаются и записываются (я просто не заметила что в последнем коде - диск D. Как? Как за день возможно такое написать?! Это все кто занимается программированием так могут или вы мастер своего дела?) Хотя если бы все, тут кроме вас еще бы кто-нибудь был, кто бы откликнулся. Так что получается что вы 1 профи.

В любом случае последнее что хотелось бы сделать
1) чтоб combobox прокручивался если значений слишком много.
2) Чтоб вот если текст такой в 1й из строк слово;;слово;;слово;;
то в
combobox - слово
textbox1 - (пусто)
textbox2 - слово
textbox3 - (пусто)
textbox4 - слово
textbox5 - (пусто)
.
Ну это уже скорее чтоб наверняка зачет, но я правда не знаю нужно ли это. Но с виду было бы точно красивее)
И вопрос 1 можно? Вы этим занимаетесь чтоб не растерять умение написания таких вот сложных кодов? или профессия такая?.. В любом случае, как вас благодарить? Огромное спасибо тут вроде бы уже не уместно)

Добавлено через 6 минут
А, ну и чтоб combobox обновлялся по нажатию на него а не по кнопке.
0
Unnamed
 Аватар для kingzfate
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
24.08.2017, 09:26
Лучший ответ Сообщение было отмечено Arina95 как решение

Решение

Arina95, На будущее, научитесь полностью формулировать задачу или просьбу. Переписал код по новой, работает теперь так как вам нужно.Единственное, в файле должно быть пять ";", это разделители между символами, без них нельзя. И к комбобоксу не добавить скролл, он не должен хранить "километры" значений.
Вложения
Тип файла: 7z WindowsFormsApp1.7z (20.8 Кб, 3 просмотров)
1
0 / 0 / 0
Регистрация: 23.08.2017
Сообщений: 15
24.08.2017, 09:39  [ТС]
kingzfate, Вы просто лучший! Простите меня пожалуйста, я просто сама не совсем понимала что мне нужно, я же писала то что у меня записано в тетради. А когда задала вопрос конкретнее, то не учла много чего. Вчера ночью другу ссылку на этот вопрос отправила, он сказал (Что я уже докопалась до вас, и что мне для сдачи задания хватило бы и первого кода что вы дали), я тоже так думала, но хочется зачет автоматом). Как мне вас благодарить?
0
Unnamed
 Аватар для kingzfate
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
24.08.2017, 09:41
Arina95, учитесь, сдавайте, поднимайте Россию с колен. Удачи вам)
1
0 / 0 / 0
Регистрация: 23.08.2017
Сообщений: 15
24.08.2017, 09:43  [ТС]
kingzfate, Вы лучший! Просто знайте это.) Спасибо вам огромнейшее!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.08.2017, 09:43

Чтение из текстового файла построчно и с разделителем
Допусти есть текстовый документ в котором такая запись: ролкот:ajfhvg asdfh:gfgfffh и так далее Мы объявляем 2...

Экспорт из таблицы access данных из определённых полей в файл .txt с разделителем используя delphi
Доброго времени суток. Долго искал, но не смог найти целостной картины по теме, возможно непопулярна. Если кто может помочь с синтаксисом...

Чтение .txt построчно в MFC
Добрый день уважаемые форумчане! Второй день уже мучаюсь - не могу понять, как считать строку из .txt и записать её в переменную. Может...

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

Чтение из .txt построчно (ifstream)
Здравствуйте, возникли некоторые проблемы с ifstream. Не могу сделать чтение из .тхт файла построчно, да и просто не получается. Вот мой...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru