Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/34: Рейтинг темы: голосов - 34, средняя оценка - 4.94
1 / 1 / 0
Регистрация: 10.07.2014
Сообщений: 240
1

Добавление записи в начало файла

10.11.2014, 15:49. Показов 7025. Ответов 6
Метки нет (Все метки)

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
 private void button1_Click(object sender, EventArgs e)
        {
            Global.index = Convert.ToInt32(textBox1.Text); 
            Global.name = textBox2.Text;
            Global.kolvo = Convert.ToInt32(textBox3.Text);
            Global.fio = textBox6.Text;
            Global.adress = textBox5.Text;
            Global.nomer = Convert.ToInt32(textBox4.Text);
            Global.summa = Convert.ToInt32(textBox7.Text);
 
            Global.aFile = new FileStream("Подписчики.txt", FileMode.Append);
            Global.sw = new StreamWriter(Global.aFile);
 
            // Записать данные в файл. 
            Global.sw.WriteLine("{0},{1},{2},{3},{4},{5},{6}",
           Global.index, Global.name, Global.kolvo, Global.fio, Global.adress, Global.nomer, Global.summa);
            Global.sw.Close();
            textBox1.Text = "";
            textBox2.Text = "";
            textBox3.Text = "";
            textBox4.Text = "";
            textBox5.Text = "";
            textBox6.Text = "";
            textBox7.Text = "";
        }
Добавлено через 1 час 15 минут
Что ли никто не поможет?((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2014, 15:49
Ответы с готовыми решениями:

Добавление новой записи на ленточную подчиненную форму в начало списка
Добрый день! У меня такой вопрос: как сделать так чтобы при добавлении новой записи (по кнопке) в...

Добавление текста в начало файла
Проблема вот в чем. В файле есть информация, мне нужно не удаляя ее, добавить в этот файл строку,...

Добавление элементов в начало файла
Дана структура типа Пациент. Не могу понять как добавить к элементов в начало файла#include...

Добавление записей в начало файла, а не в конец
Hi, est' malen'kaja problema. V osnove guestbook'a textovyj fail, kuda informatsija zapisyvetsja...

6
Native x86
Эксперт Hardware
5514 / 3273 / 934
Регистрация: 13.02.2013
Сообщений: 10,423
10.11.2014, 15:56 2
Цитата Сообщение от POVT Посмотреть сообщение
Что ли никто не поможет?
Добавить что-либо в начало файла невозможно. Можно или добавить в конец, или записать поверх существующего не в конец. Чтобы сделать файл, в котором что-то добавлено в начало, нужно или реализовать алгоритм сдвига данных для освобождения пространства в нужном месте файла, или записать новые данные в другой файл, а потом скопировать остальное из старого файла.
0
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
10.11.2014, 15:59 3
Можно попробовать так:
C#
1
2
3
4
string fileName = "Подписчики.txt";
string firstLine = String.Format("{0},{1},{2},{3},{4},{5},{6}",
Global.index, Global.name, Global.kolvo, Global.fio, Global.adress, Global.nomer, Global.summa);
File.WriteAllText(fileName, firstLine + Environment.NewLine + File.ReadAllText(fileName, Encoding.Default), Encoding.Default);
0
1 / 1 / 0
Регистрация: 10.07.2014
Сообщений: 240
10.11.2014, 16:09  [ТС] 4
BozKurt, ругается на это место
C++
1
+ File.ReadAllText(fileName, Encoding.Default),
пишет:
Процесс не может получить доступ к файлу "E:\Алена\печатные документы\Политех\Программирование на С#\курсовая\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\Подписчи ки.txt", так как этот файл используется другим процессом.
0
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
10.11.2014, 16:16 5
В чём проблема? Закройте Stream'ы.
То, что предложил я, нужно заменить вот это:
C#
1
2
3
4
5
6
7
Global.aFile = new FileStream("Подписчики.txt", FileMode.Append);
            Global.sw = new StreamWriter(Global.aFile);
 
            // Записать данные в файл. 
            Global.sw.WriteLine("{0},{1},{2},{3},{4},{5},{6}",
           Global.index, Global.name, Global.kolvo, Global.fio, Global.adress, Global.nomer, Global.summa);
            Global.sw.Close();
а не просто вставить куда-то.

Добавлено через 2 минуты
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void button1_Click(object sender, EventArgs e)
{
    Global.index = Convert.ToInt32(textBox1.Text); 
    Global.name = textBox2.Text;
    Global.kolvo = Convert.ToInt32(textBox3.Text);
    Global.fio = textBox6.Text;
    Global.adress = textBox5.Text;
    Global.nomer = Convert.ToInt32(textBox4.Text);
    Global.summa = Convert.ToInt32(textBox7.Text);
 
    string fileName = "Подписчики.txt";
    string firstLine = String.Format("{0},{1},{2},{3},{4},{5},{6}", Global.index, Global.name, Global.kolvo, Global.fio, Global.adress, Global.nomer, Global.summa);
    File.WriteAllText(fileName, firstLine + Environment.NewLine + File.ReadAllText(fileName, Encoding.Default), Encoding.Default);
 
    textBox1.Text = "";
    textBox2.Text = "";
    textBox3.Text = "";
    textBox4.Text = "";
    textBox5.Text = "";
    textBox6.Text = "";
    textBox7.Text = "";
}
0
1 / 1 / 0
Регистрация: 10.07.2014
Сообщений: 240
10.11.2014, 16:24  [ТС] 6
BozKurt, заменила. Записывает вверх, но отображает теперь некорректно
Добавление записи в начало файла


код отображения
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
 private void Form2_Activated(object sender, EventArgs e)
        {
            int nr = 0;
            string lin;
            char[] separator = new char[] { ',' };
            Global.aFile = new FileStream("Подписчики.txt", FileMode.Open);
            Global.sr = new StreamReader(Global.aFile);
            while (!Global.sr.EndOfStream)
            {
                lin = Global.sr.ReadLine();
                string[] slov = lin.Split(separator);
                Global.index = Convert.ToInt32(slov[0]);
                Global.name = slov[1];
                Global.kolvo = Convert.ToInt32(slov[2]);
                Global.fio = slov[3];
                Global.adress = slov[4];
                Global.nomer = Convert.ToInt32(slov[5]);
                Global.summa = Convert.ToInt32(slov[6]);
 
                this.dataGridView1.Rows.Add();
                dataGridView1[0, nr].Value = Convert.ToString(Global.index);
                dataGridView1[1, nr].Value = Global.name;
                dataGridView1[2, nr].Value = Convert.ToString(Global.kolvo);
                dataGridView1[3, nr].Value = Global.fio;
                dataGridView1[4, nr].Value = Global.adress;
                dataGridView1[5, nr].Value = Convert.ToString(Global.nomer);
                dataGridView1[6, nr].Value = Convert.ToString(Global.summa); 
                nr++;
            }
            Global.sr.Close();  
 
        }
0
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
10.11.2014, 16:31 7
Вероятнее всего не подошла кодировка. "Поиграйся" со вторым параметром конструктора StreamReader (конкретно с Encoding'ом). Как-то так:
C#
1
Global.sr = new StreamReader(Global.aFile, Encoding.Default);
0
10.11.2014, 16:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2014, 16:31
Помогаю со студенческими работами здесь

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

добавление строчки в самое начало файла
Как программно добавить строчку в самое начало файла?

Начало записи в конце файла
Всем привет. Необходимо сделать так, чтобы запись начиналась в конце файла, при этом не должно...

Добавление времени и даты в начало текстового файла
есть папка C:\SCAN - в которой текстовый файл (ы) типа DB100073801.07.201416-52-35-Doc1.txt падают...


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

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