Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Skriptik
-37 / 6 / 1
Регистрация: 26.06.2011
Сообщений: 94
#1

Как записать данные в файл CSV

17.08.2018, 20:58. Просмотров 845. Ответов 11
Метки нет (Все метки)

Коллеги всем добрый вечер.
Прошу у Вас помощи в такой ситуации.
Я разрабатываю приложения на Wpf , у меня есть 4 TextBox в которых вводиться данные. Имя , Фамилия и.т.д. И их нужно принажатии на кнопку я иммею в виду данные с TextBox сохранить в файл CSV. Но когда в TextBox вводиш цифры ну например номер паспорта то в CSV файле они оттображаются при сохранение , а вот строки там например имя или отчество получается какие то коракозябры. Как это можно исправить бьюсь уже 2 день.
Вот код который я написал. Цифры выводит а вот строки нет. Помогите пожалуйста .


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
            SaveFileDialog sv = new SaveFileDialog { Filter = "CSV|*.csv|Text Documents|*.txt" };
            sv.ShowDialog();
 
            if (!string.IsNullOrEmpty(sv.FileName))
            {
 
                using (StreamWriter sw = new StreamWriter(sv.FileName, false, Encoding.Unicode, 10485760))
                {
 
                    sw.Write(Clipboard.GetData(TextDataFormat.UnicodeText.ToString()));
 
                }
                File.WriteAllText(sv.FileName, txtShow.Text.ToString() + "\t");
            }
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2018, 20:58
Ответы с готовыми решениями:

Как записать данные с DataGrid в файл и наоборот
Как записать данные с DataGrid в файл и как можно вписать данные с файла в...

Записать данные в текстовый файл
using System; using System.Collections.Generic; using System.Linq; using...

Из html таблицы записать данные в текстовый файл
У меня есть Html файл и таблица с данными как мне эти данные "выдрать" из...

Как указать формат ячейки при записи в файл csv
Ребята, не подскажите как указать формат ячейки при записи в файл csv? В коде...

Как записать данные в Excel?
Подскажите какой код програмы чтобы експортировать данные Excel Я много...

11
Rius
Эксперт .NET
4962 / 3190 / 785
Регистрация: 25.05.2015
Сообщений: 9,785
Записей в блоге: 11
Завершенные тесты: 4
17.08.2018, 21:22 #2
UTF-8 BOM кодировку примените
0
Миниатюры
Как записать данные в файл  CSV  
Вложения
Тип файла: zip test.zip (245 байт, 1 просмотров)
Skriptik
-37 / 6 / 1
Регистрация: 26.06.2011
Сообщений: 94
17.08.2018, 21:49  [ТС] #3
Да нет все равно пишет вот Петр
Я в TextBox ввожу например Иванов нажимаю на кнопку сохранить и он мне в CSV при открытии пишет вот Петр

using (StreamWriter sw = new StreamWriter(sv.FileName, false, Encoding.UTF8, 10485760)) // Вот кодировку применил , но все равно пишет ерунду . Помогите вчем дело.

Добавлено через 4 минуты
Я не использую базу данных. У меня WinForm и на ней TextBox в них вводиш текст и при нажатии на button данные должны сохраниться в csv файл. Но вот этого не происходит при открытии файла кге в столбце должна размещяться например Иванов в место этого пишет в ячейке Петр
0
Rius
Эксперт .NET
4962 / 3190 / 785
Регистрация: 25.05.2015
Сообщений: 9,785
Записей в блоге: 11
Завершенные тесты: 4
17.08.2018, 21:51 #4
Лучший ответ Сообщение было отмечено Skriptik как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.IO;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsAppSkriptik
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            using (var stream = new StreamWriter("R:\\test.csv", false, Encoding.UTF8))
            {
                stream.WriteLine("\"{0:yyyy-MM-dd HH:mm:ss}\",\"{1}\"", DateTime.Now, this.textBox1.Text);
            }
        }
    }
}
0
Миниатюры
Как записать данные в файл  CSV  
Skriptik
-37 / 6 / 1
Регистрация: 26.06.2011
Сообщений: 94
17.08.2018, 22:48  [ТС] #5
Спасибо Вы гений. Я 2 дня мучался.
Но вот вопрос , мне нужно не время выводить а так дата рождения в формате "дд.мм.гггг" (пример: 12.06.2018)
Вот как так сделать. Пожалуйста подскажите.
0
Rius
Эксперт .NET
4962 / 3190 / 785
Регистрация: 25.05.2015
Сообщений: 9,785
Записей в блоге: 11
Завершенные тесты: 4
17.08.2018, 23:04 #6
19 строка в коде выше. Строки настраиваемых форматов даты и времени.
0
Skriptik
-37 / 6 / 1
Регистрация: 26.06.2011
Сообщений: 94
17.08.2018, 23:18  [ТС] #7
Да спасибо это я понял .Но я не понимаю как мне например вводиш в TextBox например год рождения 26 а в csv файле выводился уже в формате 12.06.2018. Спасибо
0
Rius
Эксперт .NET
4962 / 3190 / 785
Регистрация: 25.05.2015
Сообщений: 9,785
Записей в блоге: 11
Завершенные тесты: 4
17.08.2018, 23:25 #8
Дата вводится в DateTimePicker, а не TextBox.
Оттуда берётся из его свойства Value.
Дальше как показано выше.

Для чисел есть NumericUpDown.
1
Skriptik
-37 / 6 / 1
Регистрация: 26.06.2011
Сообщений: 94
18.08.2018, 00:38  [ТС] #9
Или мне в TextBoxe вводить например 26.12.1980 и тогда будет выводиться в формате 12.06.2018.
Но я не могу сделать в TexBox . Вот что получилось

C#
1
2
3
4
5
6
 private void txtAge_PreviewTextInput(object sender, TextCompositionEventArgs e)
        {
            if (!char.IsDigit(e.Text, e.Text.Length - 1))
               
                e.Handled = true;
        }
но я так могу набирать только 2 цифры без точек. Как сделать чтоб можно было и точки вставлять.

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

Вот что у меня получилось, но дефис я вводить не могу . Как это поправить . Пожалуйста подскажите
C#
1
2
  if (!char.IsDigit(e.Text, e.Text.Length - 1))
                e.Handled = true;
Добавлено через 48 минут
В WPF нет такого компонента NumericUpDown
0
Rius
Эксперт .NET
4962 / 3190 / 785
Регистрация: 25.05.2015
Сообщений: 9,785
Записей в блоге: 11
Завершенные тесты: 4
18.08.2018, 09:43 #10
Цитата Сообщение от Skriptik Посмотреть сообщение
В WPF нет такого компонента NumericUpDown
Упс, не заметил.
Цитата Сообщение от Skriptik Посмотреть сообщение
Но я не могу сделать в TexBox .
Можно в модели прописать проверку на соответствие введённого текста регулярному выражению. Тогда несоответствующее будет ошибкой.
Можно взять готовый контрол из WpfToolkit: https://github.com/xceedsoftware/wpftoolkit
0
Skriptik
-37 / 6 / 1
Регистрация: 26.06.2011
Сообщений: 94
19.08.2018, 00:37  [ТС] #11
А как мне сделать при вводе например такого номера в textBox 1223-34343 чтоб можно было вводить номер с тире . Там 1234-3434.

Добавлено через 1 час 2 минуты
Спасибо Вам за помощь. Все разобрался вот кодец
Позволяет вводить так 123-1234
C#
1
2
3
4
5
6
7
8
9
10
11
12
  private void KeyPress(object sender, KeyboardFocusChangedEventArgs e)
        {
            var tb = (TextBox)sender;
            if (e.KeyboardDevice.Equals('-'))
            {
                e.Handled = tb.SelectionStart == 0 || tb.Text.IndexOf("-") != -1;
                if (!e.Handled)
                {
                    return;
                }
 
            }
Добавлено через 8 часов 12 минут
Добрый вечер всем. У меня к Вам вопрос , как мне помимо цифр в водить в TextBox и пробелы.

Вот код , но он только может вводить цифры без пробелов. Если можете подсказать то буду благодарен за помощь.
C#
1
2
3
4
 if (!((e.Key.GetHashCode() >= 34) && (e.Key.GetHashCode() <= 43)) && !((e.Key.GetHashCode() >= 74) && (e.Key.GetHashCode() <= 83))) 
            {
                e.Handled = true;
            }
Добавлено через 1 час 49 минут
Все разобрался. При помощи регулярки все получилось.
0
Skriptik
-37 / 6 / 1
Регистрация: 26.06.2011
Сообщений: 94
19.08.2018, 16:07  [ТС] #12
Всем добрый день. Помогите пожалуйста как мне открыть файл XL или Csv в DataGrid на Wpf
0
19.08.2018, 16:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.08.2018, 16:07

Как записать данные из XML файла в ListView
Привет. у меня проблема. не могу записать(прочитать и в нужное место записать)...

Как сохранять данные из Combobox в файл и потом отображать данные из файла в Combobox-e?
как сохранять данные из Combobox в файл и потом отображать данные из файла в...

html таблица в csv файл
Подскажите как можно из html таблицы сделать csv файл? Пока что только начал...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru