С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87

Добавление новых данных в текстовый файл

23.04.2013, 14:49. Показов 2921. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите где ошибка ..нужно добавить нового пациента в файл через форму...

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
class Karta : Pasients
{
 
public string numcard;
 
public string nameill;
 
public string twnumber;
 
public string adrees;
 
 
 
public Karta(string numcard, string nameill, string twnumber, string adrees, string num_pasient, string familia, string name, string ot)
: base(num_pasient, familia, name, ot)
{
this.numcard = numcard; this.nameill = nameill; this.twnumber = twnumber; this.adrees = adrees;
 
}
 
 
 
 
private void button1_Click(object sender, EventArgs e)
{
StreamReader fileIn = new StreamReader("kartaa.txt", Encoding.GetEncoding(1251));
// StreamWriter fileOut = new StreamWriter("kartaa.txt",true);
 
 
string text = fileIn.ReadToEnd();
char[] div = { '!' };
string[] parts = text.Split(div);
fileIn.Close();
 
Karta[] a = new Karta[parts.Length / 8];
int v = 0;
for (int i = 0; i < parts.Length - 1; i += 8)
{
a[v] = new Karta(parts[i], parts[i + 1], parts[i + 2], parts[i + 3], parts[i + 4], parts[i + 5], parts[i + 6],parts[i+7]);//пишет ошибку,что индекс выходить за границы массива
v++;
}
for (int c = 0; c < a.Length; c++)
{
if (textBox1.Text.Trim() == "" && textBox2.Text.Trim() == "" && textBox3.Text.Trim() == "" && textBox4.Text.Trim() == "" && textBox5.Text.Trim() == "" && textBox6.Text.Trim() == "" && textBox7.Text.Trim() == "")
{
MessageBox.Show("Не все обязательные поля заполнены");
 
return;
 
}
 
a[c].numcard = textBox1.Text.Trim();
 
a[c].familia = textBox2.Text.Trim();
a[c].name = textBox3.Text.Trim();
a[c].ot = textBox4.Text.Trim();
a[c].nameill = textBox5.Text.Trim();
a[c].twnumber = textBox6.Text.Trim();
a[c].adrees = textBox7.Text.Trim();
 
StreamWriter fileOut = new StreamWriter("kartaa.txt", true);
fileOut.Write("{0} {1} {2} {3} {4} {5} {6} {7}", a[c].numcard, a[c].familia, a[c].name, a[c].ot, a[c].nameill, a[c].twnumber, a[c].adrees);
 
MessageBox.Show("Новый пациент добавлен");
 
// fileIn.Close();
fileOut.Close();
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.04.2013, 14:49
Ответы с готовыми решениями:

Добавление новых данных в файл, а не замена их или удаление
Хочу добавлять новые данные в файл, а не заменять их или удалять, подскажите как это реализовать? Вот код: void...

Добавление данных в текстовый файл
здравствуйте! Столкнулся с такой проблемой: в программе нужно выбрать файл для сохранения и сохранять в него строку данных по нажатию...

Текстовый файл: создание, добавление данных в файл
Создать текстовый файл, в который записать свои фамилию и имя. Затем открыть этот файл для добавления и дописать в него имена и фамилии...

30
Танцы с бубном
 Аватар для Lokko
68 / 69 / 26
Регистрация: 27.03.2013
Сообщений: 279
23.04.2013, 15:10
Вложите весь проект
0
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
23.04.2013, 16:07  [ТС]
кроме выложенного еще есть класс Karta и все
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 class Karta : Pasients
    {
 
        public string numcard;
 
        public string nameill;
 
        public string twnumber;
 
        public string adrees;
 
 
 
        public Karta(string numcard, string nameill, string twnumber, string adrees, string num_pasient, string familia, string name, string ot)
           : base(num_pasient, familia, name, ot)
        {
            this.numcard = numcard; this.nameill = nameill; this.twnumber = twnumber; this.adrees = adrees;
 
        }
Добавлено через 2 минуты
ошиблась..то есть вот этот класс
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    class Pasients
    {
        public string num_pasient;
        public string familia;
        public string name;
        public string ot;
 
 
 
 
        public Pasients(string num_pasient, string familia, string name, string ot)
        {
 
 
            this.num_pasient = num_pasient; this.familia = familia; this.name = name;
            this.ot = ot;
0
7 / 29 / 7
Регистрация: 04.04.2013
Сообщений: 282
23.04.2013, 16:12
ошибка в самой структуре - а имменно серьезные вещи не делаются с тхт-шниками...
пишите mysql базу...
1
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
23.04.2013, 16:24  [ТС]
мне нужно именно в текстовом файле написать
0
Танцы с бубном
 Аватар для Lokko
68 / 69 / 26
Регистрация: 27.03.2013
Сообщений: 279
23.04.2013, 18:39
я имел ввиду прикрепите весь проект одним архивом
1
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
23.04.2013, 18:56  [ТС]
а как сюда папку закачать??
0
7 / 29 / 7
Регистрация: 04.04.2013
Сообщений: 282
23.04.2013, 23:24
расширенный режим - управление вложениями
1
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
23.04.2013, 23:54  [ТС]
Вот мой проект..
Вложения
Тип файла: zip WindK.zip (78.8 Кб, 8 просмотров)
0
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
23.04.2013, 23:59  [ТС]
в процессе отладки во второй форме,когда нажимаю кнопку добавить пишет ошибку что индекс выходит за пределы массива
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
private void button1_Click(object sender, EventArgs e)
        {
            StreamReader fileIn = new StreamReader("kartaa.txt", Encoding.GetEncoding(1251));
         
 
 
            string text = fileIn.ReadToEnd();
            char[] div = { '!' };
            string[] parts = text.Split(div);
            fileIn.Close();
            
            Karta[] a = new Karta[parts.Length / 7];
            int v = 0;
            for (int i = 0; i < parts.Length-1; i += 7)
            {
                a[v] = new Karta(parts[i], parts[i + 1], parts[i + 2], parts[i + 3], parts[i + 4], parts[i + 5], parts[i + 6]);//вот здесь в процессе отладки пишет что индекс выходит за пределы массива
                v++;
            }
            for (int c = 0; c < a.Length; c++)
            {
                if (textBox1.Text.Trim() == "" && textBox2.Text.Trim() == "" && textBox3.Text.Trim() == "" && textBox4.Text.Trim() == "" && textBox5.Text.Trim() == "" && textBox6.Text.Trim() == "" && textBox7.Text.Trim() == "")
                {
                    MessageBox.Show("Не все обязательные поля заполнены");
 
                    return;
 
                }
 
                a[c].numcard = textBox1.Text.Trim();
 
                a[c].familia = textBox2.Text.Trim();
                a[c].name = textBox3.Text.Trim();
                a[c].ot = textBox4.Text.Trim();
                a[c].nameill = textBox5.Text.Trim();
                a[c].twnumber = textBox6.Text.Trim();
                a[c].adrees = textBox7.Text.Trim();
 
               StreamWriter fileOut = new StreamWriter("kartaa.txt", true);
                fileOut.Write("{0} {1} {2} {3} {4} {5} {6} ", a[c].numcard, a[c].familia, a[c].name, a[c].ot, a[c].nameill, a[c].twnumber, a[c].adrees);
 
                MessageBox.Show("Новый пациент добавлен");
 
              
                fileOut.Close();
 
            }
0
7 / 29 / 7
Регистрация: 04.04.2013
Сообщений: 282
24.04.2013, 00:13
Цитата Сообщение от Самира Посмотреть сообщение
C#
1
if (textBox1.Text.Trim() == "" && textBox2.Text.Trim() == "" && textBox3.Text.Trim() == "" && textBox4.Text.Trim() == "" && textBox5.Text.Trim() == "" && textBox6.Text.Trim() == "" && textBox7.Text.Trim() == "") *
* * * * *

сразу говорю- это не будет работать корректно...

Цитата Сообщение от Самира Посмотреть сообщение
C#
1
i += 7
Это тоже как то криво...






Цитата Сообщение от Самира Посмотреть сообщение
выходит за пределы массива
естественно, ибо максимальное число
C#
1
parts.Length
к примеру 100, а вы потом берете 100 +6

Добавлено через 4 минуты
вот так переделывайте
C#
1
for (int i = 0, i1 = 1 ... , i7 = 7; i < parts.Length-1, ; i += 7 /* а здесь я не понял что вы делаете, вообще дуамю должно быть i++*/)
1
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
24.04.2013, 00:35  [ТС]
он ругается на i1,i2...
0
7 / 29 / 7
Регистрация: 04.04.2013
Сообщений: 282
24.04.2013, 00:36
Цитата Сообщение от Самира Посмотреть сообщение
он ругается на i1,i2...
конкретнее....

пример исправленного кода...
0
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
24.04.2013, 00:40  [ТС]
C#
1
2
3
4
 for (int i = 0, i1 = 1, i2 = 2, i3 = 3, i4 = 4, i5 = 5, i6 = 6; i < parts.Length - 1; i ++)
            {
                a[v] = new Karta(parts[i], parts[i + 1], parts[i + 2], parts[i + 3], parts[i + 4], parts[i + 5], parts[i + 6]);
                v++;
Добавлено через 42 секунды
Предупреждение 1 Переменной "i1" присвоено значение, но оно ни разу не использовано D:\программыыы\WindK\WindK\Form3.cs 33 29 WindK
0
7 / 29 / 7
Регистрация: 04.04.2013
Сообщений: 282
24.04.2013, 00:43
Цитата Сообщение от Самира Посмотреть сообщение
C#
1
2
3
4
 for (int i = 0, i1 = 1, i2 = 2, i3 = 3, i4 = 4, i5 = 5, i6 = 6; i < parts.Length - 1; i ++)
            {
                a[v] = new Karta(parts[i], parts[i + 1], parts[i + 2], parts[i + 3], parts[i + 4], parts[i + 5], parts[i + 6]);
                v++;


омг...

C#
1
2
3
4
for (int i = 0, i1 = 1, i2 = 2, i3 = 3, i4 = 4, i5 = 5, i6 = 6; i6 < parts.Length - 1; i ++, i1++, i2++, i3++, i4++, i6++, i6++, v++)
{
     a[v] = new Karta(parts[i], parts[i1], parts[i2], parts[i3], parts[i4], parts[i5], parts[i6]);
}
PS могу где нибуть ошибится, пишу прямо на форум....
0
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
24.04.2013, 00:49  [ТС]
ту же ошибку пишет

Добавлено через 28 секунд
что индекс выходит за пределы
0
7 / 29 / 7
Регистрация: 04.04.2013
Сообщений: 282
24.04.2013, 00:55
я поправил потом

C#
1
i6 < parts.Length - 1
и еще - проверь сколько строчек в массиве до цикла....
0
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
24.04.2013, 00:59  [ТС]
это где поправить нужно??

Добавлено через 37 секунд
все поняла где

Добавлено через 2 минуты
все равно то же самое пишет Индекс находился вне границ массива.
0
7 / 29 / 7
Регистрация: 04.04.2013
Сообщений: 282
24.04.2013, 01:00
Цитата Сообщение от Самира Посмотреть сообщение
все равно то же самое пишет Индекс находился вне границ массива
говорю же - проверь длину массива.... может он пустой....

и накакую i жалуется?
повесь брик, и посмотри сколько раз цикл проходит
0
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
24.04.2013, 01:07  [ТС]
повесь брик, и посмотри сколько раз цикл проходит

я не знаю,как это делать(((я блондинка...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.04.2013, 01:07
Помогаю со студенческими работами здесь

Как правильно реализовать добавление данных в текстовый файл
Друзья, вопрос в шапке. Я делаю следующим образом //Создают массив для чтениях данных из файла string old_data; // Собственно...

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

Создать текстовый файл и через меню предусмотреть просмотр, добавление и поиск данных
создать текстовый файл с произвольным текстом и через меню предусмотреть следующие действия: 1)просмотр содержимого файла 2)добавление...

Переписать текстовый файл в 5 новых.
Помогите, пожалуйста, написать программу. Пусть дан текстовый файл. Максимальная длина слова в этом файле равна пяти символам....

Добавление новых данных в БД
Добрый день! Я не очень силен в Asp.net, и мне нужна ваша помощь. Есть страница. На ней расположено несколько текстовых полей, а...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru