Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
16 / 33 / 19
Регистрация: 20.08.2013
Сообщений: 740
1

Данные из DataGridView сохранить в текстовый файл

19.03.2015, 07:10. Показов 3074. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
dataGridView1 сохранить в текстовый файл

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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
 
namespace program_csv
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void открытьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string puti = "";
            string file = "";
            int N_Collum = 0;
            int N_Collum2 = 0;
            int lines_file = 0;
            string[] mass_;
 
            puti = Environment.CurrentDirectory;
            Stream myStream = null;
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
 
            openFileDialog1.InitialDirectory = puti;
            openFileDialog1.Filter = "csv files (*.csv,*.txt)|*.csv;*.txt" ;
            openFileDialog1.FilterIndex = 2 ;
            openFileDialog1.RestoreDirectory = true ;
 
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                file = openFileDialog1.FileName;
                dataGridView1.Columns.Clear();
                //StreamReader read = new StreamReader(file);
                string[] read = File.ReadAllLines(file);
 
                string[] s = read[0].Split(',');
                ///////////////Collum///////////////
                for (int i = 0; i < s.Length; i++)
                {
                    
                    dataGridView1.Columns.Add(s[i], s[i]);
                    
                    
                }
                                
                ///////////////Collum///////////////
                tmp_sulky = file;
                string[] str = File.ReadAllLines(file);
                if (File.Exists("tmp.txt"))
                {
                    File.Delete("tmp.txt");
                }
 
                File.WriteAllText("tmp.txt", FormatString(str));
                str = File.ReadAllLines("tmp.txt");
 
                string[] _mass_str = new string[] { };
 
 
 
 
                for (int i = 0; i < str.Length; i++)
                {
                    DataGridViewRow newRow = new DataGridViewRow();
 
                    _mass_str = str[i].Split(',');
 
                    for (int j = 0; j < _mass_str.Length; j++)
                    {
                        DataGridViewCell value = new DataGridViewTextBoxCell();
                        value.Value = _mass_str[j];
 
 
 
                        newRow.Cells.Add(value);
                    }
                    dataGridView1.Rows.Add(newRow);
                }
 
 
               
                 
 
            }
        }
 
        private string FormatString(string[] str)
        {
            string resault = String.Empty;
 
            for (int i = 0; i < str.Length; i++)
            {
                Regex r = new Regex(@"\/\/ .*", RegexOptions.IgnoreCase);
                str[i] = r.Replace(str[i], "");
 
                if (str[i] != string.Empty)
                {
                    resault += str[i] + "\r\n";
                }
            }
            return resault;
        }
 
        public int Collum(string row,string find)
        {
            int N = 0;
            string pattern = find;
            string text = row;
            Regex newReg = new Regex(pattern);
            MatchCollection matches = newReg.Matches(text);
            N = matches.Count;            
            return N;
        }
 
        public bool lines_entry(string line)
        {
            int simvol = 0;
            bool yes_to_not = false;
            simvol = line.Length;
            if (simvol>0)
            {
                yes_to_not = true;
            }
            if (simvol==0)
            {
                yes_to_not = false;
            }
 
            return yes_to_not;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                dataGridView1.Rows[i].Selected = false;
                for (int j = 0; j < dataGridView1.ColumnCount; j++)
                    if (dataGridView1.Rows[i].Cells[j].Value != null)
 
 
 
                        if (dataGridView1.Rows[i].Cells[j].Value.ToString().Contains(textBox1.Text))
                        {
                            DataGridViewCell cell = dataGridView1.Rows[i].Cells[j];
 
                            dataGridView1.Rows[i].Selected = true;
                            //dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
                            dataGridView1.Rows[i].Cells[j].Style.BackColor = Color.Red;  
                            dataGridView1.CurrentCell = cell;
                            break;
                        }
            }
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            
        }
 
 
        string tmp_sulky { get; set; }
        private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string str = string.Empty;
            try
            {
                 using (System.IO.StreamReader reader = System.IO.File.OpenText(tmp_sulky))
                {
                    str = reader.ReadToEnd();
                }
 
                 
 
                 //str = str.Replace("ляляля", "777");  // не  правельно нужны изменения с  dataGridView1 таблицы
                                                                     // заменять в str 
 
                 using (System.IO.StreamWriter file = new System.IO.StreamWriter(tmp_sulky))
                 {
                     file.Write(str);
                 }
 
            }
            catch (Exception ex)
            {
                
                MessageBox.Show("Не открыт файл для сохранения", "ОШИБКА",MessageBoxButtons.OK,MessageBoxIcon.Error);;
            }
                
        }
        
    }
}
Вопрос та простой , допустим есть файл текстовый в архиве dbtechtreenode.rar
его читаю в dataGridView1 таблицу
и изменяю в таблице ячейку
и нужно сохранить
только так чтоб изменив текст в ячейке
менялось оно и в текстовом файле dbtechtreenode.csv
при этом не нарушая отступы , и другой текст в файле
все просто
изменил ячейку сохранил да и все
Вложения
Тип файла: rar dbtechtreenode.rar (62.7 Кб, 17 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.03.2015, 07:10
Ответы с готовыми решениями:

Как из MDI Формы сохранить данные из DataGridView в текстовый докумет
Всем привет! Задача такая: Есть MDI форма, при нажатии на этой форме &quot;создать&quot; открывается другая...

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

Сохранить данные из ListView в текстовый файл
НА форме listview и кнопка. listview состоит из 2х столбцов как сохранить данные в текстовое поле...

Как сохранить данные из формы в текстовый файл ? (0)
Subj Tnx

3
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
19.03.2015, 09:12 2
GENDALF_ISTARI, реализовать такое вроде бы можно, но это будет не очень просто - нужно считывать данные в поток, ставить курсор в нужную позицию в потоке стирать нужное количество символов (старое значение) и записывать новое. При этом следует где-то учитывать с какой позиции в потоке начинается значение каждой ячейки в dgv. Также следует учитывать изменение значений позиций для каждой из последующих ячеек, если изменяется длинна текста в какой-то из ячеек.

Самый простой вариант: просто переписать файл по тем же правилам, по которым происходит чтение.
1
16 / 33 / 19
Регистрация: 20.08.2013
Сообщений: 740
19.03.2015, 10:03  [ТС] 3
nio Как проще так лучше
только подскажи как кодик или намек )))
Я думаю надо отдельно загнать позиции файла
и позицию ячейки

а потом их сводить обоих
как только ячейка не совпадает с тектом в файле
то заменять сохранять )))
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
20.03.2015, 09:47 4
GENDALF_ISTARI, а чем тебя не устраивает вариант просто нормальным образом переписывать файл? проще и быстрее ведь. Зачем эти танцы с бубном?
0
20.03.2015, 09:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2015, 09:47
Помогаю со студенческими работами здесь

Через SaveFileDialog сохранить данные в текстовый файл
Через SaveFileDialog сохранить данные в текстовый файл с ListView1. Так как в ListView 2 столбца в...

Как сохранить данные из DataGridView в файл
подскажите пожалуйста

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

Выгрузить данные из DataGridView в текстовый файл
Доброго дня всем еще раз. Есть Datagrtidview с 3 столбцами. 1 - текстовый, 2 - картинка, 3 -...


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

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