0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
1

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

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

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

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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2013, 14:49
Ответы с готовыми решениями:

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

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

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

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

30
Танцы с бубном
68 / 69 / 26
Регистрация: 27.03.2013
Сообщений: 279
23.04.2013, 15:10 2
Вложите весь проект
0
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
23.04.2013, 16:07  [ТС] 3
кроме выложенного еще есть класс 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 4
ошибка в самой структуре - а имменно серьезные вещи не делаются с тхт-шниками...
пишите mysql базу...
1
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
23.04.2013, 16:24  [ТС] 5
мне нужно именно в текстовом файле написать
0
Танцы с бубном
68 / 69 / 26
Регистрация: 27.03.2013
Сообщений: 279
23.04.2013, 18:39 6
я имел ввиду прикрепите весь проект одним архивом
1
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
23.04.2013, 18:56  [ТС] 7
а как сюда папку закачать??
0
7 / 29 / 7
Регистрация: 04.04.2013
Сообщений: 282
23.04.2013, 23:24 8
расширенный режим - управление вложениями
1
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
23.04.2013, 23:54  [ТС] 9
Вот мой проект..
Вложения
Тип файла: zip WindK.zip (78.8 Кб, 8 просмотров)
0
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
23.04.2013, 23:59  [ТС] 10
в процессе отладки во второй форме,когда нажимаю кнопку добавить пишет ошибку что индекс выходит за пределы массива
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 11
Цитата Сообщение от Самира Посмотреть сообщение
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  [ТС] 12
он ругается на i1,i2...
0
7 / 29 / 7
Регистрация: 04.04.2013
Сообщений: 282
24.04.2013, 00:36 13
Цитата Сообщение от Самира Посмотреть сообщение
он ругается на i1,i2...
конкретнее....

пример исправленного кода...
0
0 / 0 / 1
Регистрация: 20.04.2013
Сообщений: 87
24.04.2013, 00:40  [ТС] 14
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 15
Цитата Сообщение от Самира Посмотреть сообщение
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  [ТС] 16
ту же ошибку пишет

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

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

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

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

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

я не знаю,как это делать(((я блондинка...
0
24.04.2013, 01:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2013, 01:07
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru