powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Считывание таблицы из тхт
25 сообщений из 27, страница 1 из 2
Считывание таблицы из тхт
    #38210163
gfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть тхт файл, в котором содержатся данные, которые нужно считать и вывести в c#(WindowsForms)
Так же мне нужно сделать редактирование данных, чтобы можно было по ячейкам клацать и редактировать каждую отдельно, добавление новых данных, удаление и т.д.
Как это лучше организовать? С помощью какого-то dataGrid? Помогите пожалуйста, вероятно уже есть какие-то примеры готовые...
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38210179
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
gfan,

Нету примеров готовых, никто такой ерундой не занимается.
Ну, допустим, заливать данные в базу приходится, а вот потом их еще и редактировать - нет.

Есть драйвера ODBC для работы с текстовыми файлами как с таблицами базы данных.
Используйте их
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38210264
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gfan
Можно сделать все.. И эту задачу... Только стоит ли овчинка выделки?
Не легче ли загрузить данные в Excel и править каждую ячейку...
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38212058
gfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не важно что легче. У меня есть определенное задание, его нужно выполнить.
Я решил все делать встроенными средствами.

Допустим есть текстовый документ, примерно такого содержания:
авторзаказ1;Продавец Петя;Покупатель Вася;Цена;
заказ2;Продавец Петя2;Покупатель Вася2;Цена2;
Мне нужно считывать данные и куда-то их записывать (думаю в listlist<<string>>)
Мне нужно выводить на форме данные о заказе, чтобы можно было выбирать заказ и по нему отображались данные. А так же всяческие поиски по разным критериям, подсчеты, вывод информации о товарах и т.д.
Как мне лучше это оформить? Куда мне данные записывать? В листбоксы? Я не могу блин начать писать программу, потому что не знаю, чем лучше пользоваться.
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38212091
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gfanНе важно что легче. У меня есть определенное задание, его нужно выполнить.
Я решил все делать встроенными средствами.

Допустим есть текстовый документ, примерно такого содержания:
авторзаказ1;Продавец Петя;Покупатель Вася;Цена;
заказ2;Продавец Петя2;Покупатель Вася2;Цена2;
Мне нужно считывать данные и куда-то их записывать (думаю в listlist<<string>>)
Мне нужно выводить на форме данные о заказе, чтобы можно было выбирать заказ и по нему отображались данные. А так же всяческие поиски по разным критериям, подсчеты, вывод информации о товарах и т.д.
Как мне лучше это оформить? Куда мне данные записывать? В листбоксы? Я не могу блин начать писать программу, потому что не знаю, чем лучше пользоваться.Дык - это все просто... Заводишь таблицу на каком-либо севрере (пусть локальном, для того чтобы данные сохранялись и больше не грузить) ... загружаешь данные из тхт файла в таблицу... каждую строчку парсишь через ";"... потом достаешь данные в нужном тебе ракурсе... Не вижу проблем...
Ну а как это сделать... надо в книжках почитать... А так вроде ты хочешь от нас код получить... Все наоборот тут... Что у тебя не получается, ты показываешь в своем коде здесь... ну а здесь тебе помогают, что неполучается...
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38212409
gfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не нужно мне никакие серверы использовать, данные должны загружаться из тхт сразу в программу.
Готовый код мне не нужен, но конечно, если бы был какой-то пример, я бы с удовольствием почитал, ибо незачем делать то, что уже сделано.
Моя основная проблема - то, как отображать данные. Я потому тут и спрашиваю, потому что у людей опыт есть, они знают, что лучше подойдет.
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38212431
gfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но мне важно отображать встроенными средствами.
Думаю данные буду в листбоксах отображать, наверное это лучший вариант.
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38212484
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gfan,

... если вам не только распарсить текст и отобразить его надо, а еще и работать с данными - то загружайте текст в DataTable, и с ней производите все расчеты - там можно нормально крутить циклы по строкам/ячейкам и т.д. ... А саму таблицу можно цеплять DataSource-ом хоть к ListView, хоть к гриду - куда удобней ...
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38212591
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gfanНе нужно мне никакие серверы использовать, данные должны загружаться из тхт сразу в программу....Т.е. выгрузилась программа... запустилась снова и заново загружать данные из тхт-файла...
Но тогда зачем?
gfan... редактировать каждую отдельно, добавление новых данных, удаление и т.д.Т.е. данные не сохраняются нигде после редактирования, только в памяти в текущий момент...

Надо лучше представлять себе задачу вцелом, чтобы меньше переделывать ее потом...
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38213624
gfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
carrotik, а можно мне этот DataTable не отображать? Как я понял, он мне поможет выполнять быстрый поиск, выборку и т.д.?
Мне не нужно отображать таблицу. Мне нужно сделать что-то вроде удобного и красивого интерфейса, а просто таблица не катит.

Я записываю данные в двумерный лист - list<list<string>>. Мне кажется это не очень удобно.
Допустим, я буду записывать в listbox -список заказов, это есть первая колонка из моего lists, то есть lists[0][0], lists[1][0] и т.д.
После их записи, при нажатии на какую-то запись в листбоксе мне нужно отобразить остальные данные, придется считывать значение с листбокса, потом проходится по всем данным из lists и сравнивать. А как на счет DataTable? Может там есть что-то вроде текущей позиции?, чтобы я мог просто вывести остальные записи?

Владимир СА, тхт выступает в качестве БД. Такое задание. При считывании данные берутся из ТХТ. При записи, редактировании и удалении - так же в тхт изменения пойдут.
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38213663
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
gfanМне нужно сделать что-то вроде удобного и красивого интерфейса, а просто таблица не катит.
Разумеется не катит. Таблица отображается в DataGridView.
В DataTable, в общем, нет текущей позиции.
Текущая позиция есть BindingSource, который связан примерно так с таблицей и гридом.

DataGridView <-> BindingSource <-> DataTable

BindingSource.Current указывает на запись, которая отображается как текущая в DataGridView.
BindingSource[0] указывает на первую запись dataTable в соответсвии с той сортировкой, которая была на момент загрузки .
Отсортировать и отфильтровать DataTable нельзя. Но можно это сделать с ее представлением. DataView/
То есть на самом деле выглядит так
DataGridView <-> BindingSource <-> DataTable.DataView

В реальности DataView используется редко, используется его значение по умолчанию, которое точно отображаете DataTable. А фильтровать и сортировать удобнее в BindingSource.

По DataGridView мы передвигаемся через интерфейсные устройства, по BindingSource - программно.
Перемещение по любой из этих штуковин приводит к передвижению по другой, что приводит к тому, что BindingSource.Current всегда показывает на отображаемую в гриде строку DataTable.

Вернее, на ее отображение по умолчанию - DataRowView. В нем содержаться даже те поля, которые не показываются в гриде.

Не самый простой для понимания механизм, но зато он обеспечивает большую гибкость в управлении.
К нему надо просто привыкнуть.
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38213690
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

..ну, вообще-то у DataTable есть метод Select() - это по поводу фильтра .. Другой вопрос, что нужен уникальный ID, по которому можно фильтровать, но можно задать автоинкремент-столбец при создании DataTable ... Но это как ТС будет удобнее ...
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38213774
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаем MSDN :DataTable.DefaultView - свойствоПолучает настраиваемое представление таблицы, которая может включать в себя представление с фильтром или положение курсора.DataView.RowFilter - свойствоВозвращает или задает выражение, используемое для выбора строк, просматриваемых в объекте DataView.DataView.Sort - свойствоВозвращает или задает столбец или столбцы для сортировки, а затем — порядок сортировки для DataView.
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38213827
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gfanВладимир СА, тхт выступает в качестве БД. Такое задание. При считывании данные берутся из ТХТ. При записи, редактировании и удалении - так же в тхт изменения пойдут.Хотел бы я увидеть код изменения данных и запись/UPDATE их в тхт-файл...
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38213845
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир САgfanВладимир СА, тхт выступает в качестве БД. Такое задание. При считывании данные берутся из ТХТ. При записи, редактировании и удалении - так же в тхт изменения пойдут.Хотел бы я увидеть код изменения данных и запись/UPDATE их в тхт-файл...А что там такого? Просто пишется(перезаписывается) весь файл вот и все. Точно так же как и если работать с DataSet без SQL. Fill => DataSet.ReadXML Update => DataSet.WriteXML и делов-то.
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38213852
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortibransaВладимир САпропущено...
Хотел бы я увидеть код изменения данных и запись/UPDATE их в тхт-файл...А что там такого? Просто пишется(перезаписывается) весь файл вот и все. Точно так же как и если работать с DataSet без SQL. Fill => DataSet.ReadXML Update => DataSet.WriteXML и делов-то.Просто задачка студенческая...
Я бы хотел посмотреть на файл более 100тыс.записей... плюс полей более 10-15... Сортировка... Фильтрация...
А так впринципе зачем тогда СУБД созданы...
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38213855
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир САfortibransaпропущено...
А что там такого? Просто пишется(перезаписывается) весь файл вот и все. Точно так же как и если работать с DataSet без SQL. Fill => DataSet.ReadXML Update => DataSet.WriteXML и делов-то.Просто задачка студенческая...
Я бы хотел посмотреть на файл более 100тыс.записей... плюс полей более 10-15... Сортировка... Фильтрация...
А так впринципе зачем тогда СУБД созданы...Начинается, смотрим начало топика. Вы вопрос ТС читайте, а потом балабольте о 100тысчах писей.
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38213856
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fortibransaВладимир САпропущено...
Хотел бы я увидеть код изменения данных и запись/UPDATE их в тхт-файл...А что там такого? Просто пишется(перезаписывается) весь файл вот и все. Точно так же как и если работать с DataSet без SQL. Fill => DataSet.ReadXML Update => DataSet.WriteXML и делов-то.Кстати, у ТС файл не формата XML...
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38213859
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче нормальная схема:
Создаешь проект Windows Forms.
В проект добавляешь New Item, выбираешь DataSet имя по умолчанию получается DataSet1.xsd
На появившемся окне с надписью посередке, кликаешь правой кнопкой мыши и Add=>DataTable имя по умолчанию DataTable1
На появившемся DataTable кликаешь правой кнопкой мыши и Add=>Column, все Column по умолчанию string и имена Column1...100500, пока пойдет.
Затем в Solution Explorer тыкаешь мышью на DataSet1.xsd и выбираешь в контекс. меню View Code.
Туда уже пишешь что-типа этого
Код: 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.
    partial class DataSet1
    {
        string _fileName = "";
        public string FileName
        {
            get { return _fileName; }
            set { _fileName = value; }
        }
    
        public DataSet1(string FileName)
        {
            this.FileName = FileName;
        }

        public bool ReadDataTable1() //или FillБлаБла
        {
            bool v = false;
            if (FileName.Length > 0)
            {
                DataTable1Row r = DataTable1.NewDataTable1Row();                
                //ToDo Read TxtFile
            }
            return v;
        }

        public bool WriteDataTable1() //или UpdateБлаБла
        {
            bool v = false;
            if (FileName.Length > 0)
            {
                foreach (DataTable1Row dr in DataTable1)
                {
                    //ToDo Write TxtFile
                }
            }
            return v;
        }
    }


Реализацию сам ковыряй.
И вот у тебя будет DataTable, которую ты можешь пихать куда угодно и Биндить и пр и тд и тп
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38213860
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир САfortibransaпропущено...
А что там такого? Просто пишется(перезаписывается) весь файл вот и все. Точно так же как и если работать с DataSet без SQL. Fill => DataSet.ReadXML Update => DataSet.WriteXML и делов-то.Кстати, у ТС файл не формата XML...Знаю
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38214092
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СА Просто задачка студенческая...
Я бы хотел посмотреть на файл более 100тыс.записей... плюс полей более 10-15... Сортировка... Фильтрация...
А так впринципе зачем тогда СУБД созданы...

,.. в данном случае, может, и студенческая .. Но иногда приходится читать именно текстовый файл (точнее, стрим) на входе, например, как результат обращения к почтовому IMAP-серверу ...
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38214119
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotikВладимир СА Просто задачка студенческая...
Я бы хотел посмотреть на файл более 100тыс.записей... плюс полей более 10-15... Сортировка... Фильтрация...
А так впринципе зачем тогда СУБД созданы...

,.. в данном случае, может, и студенческая .. Но иногда приходится читать именно текстовый файл (точнее, стрим) на входе, например, как результат обращения к почтовому IMAP-серверу ...Забавно.
В 2002-м году, на пятом курсе института, проходил стажировку в CBOSS.
Нужно было реализовать GUI на C++ для анализа текстовых логов коммутаторов сотовой связи.
Помнится тогда нашёл на RSDN примеры как реализовать ListBox, поддерживающий Virtual Mode.

Это я к тому, что задачка действительно из разряда студенческих.
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38214687
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
carrotik.ну, вообще-то у DataTable есть метод Select() - это по поводу фильтра
Это не фильтр. Это отбор коллекции строк.
Которую, конечно, можно использовать как DataSource, но это не самый лучший вариант
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38214709
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Владимир САХотел бы я увидеть код изменения данных и запись/UPDATE их в тхт-файл...
Да без проблем. Нет такого кода стандартного. Не увидишь.

Стандартный подход:
Сначала все считал, изменил, потом все записал.

Именно такой механизм используется при обработке данных на XML.

Хотя, конечно, написать обработчики можно, но в здравом уме и полной памяти никто этого делать не будет.
...
Рейтинг: 0 / 0
Считывание таблицы из тхт
    #38214716
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
carrotikНо иногда приходится читать именно текстовый файл (точнее, стрим) на входе, например, как результат обращения к почтовому IMAP-серверу ...
Читать приходится, и довольно часто, логи например.
Но никому в голову не приходит править логи и сохранять изменения.
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Считывание таблицы из тхт
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]