|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
Есть тхт файл, в котором содержатся данные, которые нужно считать и вывести в c#(WindowsForms) Так же мне нужно сделать редактирование данных, чтобы можно было по ячейкам клацать и редактировать каждую отдельно, добавление новых данных, удаление и т.д. Как это лучше организовать? С помощью какого-то dataGrid? Помогите пожалуйста, вероятно уже есть какие-то примеры готовые... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2013, 00:02 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
gfan, Нету примеров готовых, никто такой ерундой не занимается. Ну, допустим, заливать данные в базу приходится, а вот потом их еще и редактировать - нет. Есть драйвера ODBC для работы с текстовыми файлами как с таблицами базы данных. Используйте их ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2013, 00:23 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
gfan Можно сделать все.. И эту задачу... Только стоит ли овчинка выделки? Не легче ли загрузить данные в Excel и править каждую ячейку... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2013, 06:11 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
Не важно что легче. У меня есть определенное задание, его нужно выполнить. Я решил все делать встроенными средствами. Допустим есть текстовый документ, примерно такого содержания: авторзаказ1;Продавец Петя;Покупатель Вася;Цена; заказ2;Продавец Петя2;Покупатель Вася2;Цена2; Мне нужно считывать данные и куда-то их записывать (думаю в listlist<<string>>) Мне нужно выводить на форме данные о заказе, чтобы можно было выбирать заказ и по нему отображались данные. А так же всяческие поиски по разным критериям, подсчеты, вывод информации о товарах и т.д. Как мне лучше это оформить? Куда мне данные записывать? В листбоксы? Я не могу блин начать писать программу, потому что не знаю, чем лучше пользоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 01:51 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
gfanНе важно что легче. У меня есть определенное задание, его нужно выполнить. Я решил все делать встроенными средствами. Допустим есть текстовый документ, примерно такого содержания: авторзаказ1;Продавец Петя;Покупатель Вася;Цена; заказ2;Продавец Петя2;Покупатель Вася2;Цена2; Мне нужно считывать данные и куда-то их записывать (думаю в listlist<<string>>) Мне нужно выводить на форме данные о заказе, чтобы можно было выбирать заказ и по нему отображались данные. А так же всяческие поиски по разным критериям, подсчеты, вывод информации о товарах и т.д. Как мне лучше это оформить? Куда мне данные записывать? В листбоксы? Я не могу блин начать писать программу, потому что не знаю, чем лучше пользоваться.Дык - это все просто... Заводишь таблицу на каком-либо севрере (пусть локальном, для того чтобы данные сохранялись и больше не грузить) ... загружаешь данные из тхт файла в таблицу... каждую строчку парсишь через ";"... потом достаешь данные в нужном тебе ракурсе... Не вижу проблем... Ну а как это сделать... надо в книжках почитать... А так вроде ты хочешь от нас код получить... Все наоборот тут... Что у тебя не получается, ты показываешь в своем коде здесь... ну а здесь тебе помогают, что неполучается... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 06:10 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
Не нужно мне никакие серверы использовать, данные должны загружаться из тхт сразу в программу. Готовый код мне не нужен, но конечно, если бы был какой-то пример, я бы с удовольствием почитал, ибо незачем делать то, что уже сделано. Моя основная проблема - то, как отображать данные. Я потому тут и спрашиваю, потому что у людей опыт есть, они знают, что лучше подойдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 11:05 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
Но мне важно отображать встроенными средствами. Думаю данные буду в листбоксах отображать, наверное это лучший вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 11:14 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
gfan, ... если вам не только распарсить текст и отобразить его надо, а еще и работать с данными - то загружайте текст в DataTable, и с ней производите все расчеты - там можно нормально крутить циклы по строкам/ячейкам и т.д. ... А саму таблицу можно цеплять DataSource-ом хоть к ListView, хоть к гриду - куда удобней ... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 11:37 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
gfanНе нужно мне никакие серверы использовать, данные должны загружаться из тхт сразу в программу....Т.е. выгрузилась программа... запустилась снова и заново загружать данные из тхт-файла... Но тогда зачем? gfan... редактировать каждую отдельно, добавление новых данных, удаление и т.д.Т.е. данные не сохраняются нигде после редактирования, только в памяти в текущий момент... Надо лучше представлять себе задачу вцелом, чтобы меньше переделывать ее потом... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 12:19 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
carrotik, а можно мне этот DataTable не отображать? Как я понял, он мне поможет выполнять быстрый поиск, выборку и т.д.? Мне не нужно отображать таблицу. Мне нужно сделать что-то вроде удобного и красивого интерфейса, а просто таблица не катит. Я записываю данные в двумерный лист - list<list<string>>. Мне кажется это не очень удобно. Допустим, я буду записывать в listbox -список заказов, это есть первая колонка из моего lists, то есть lists[0][0], lists[1][0] и т.д. После их записи, при нажатии на какую-то запись в листбоксе мне нужно отобразить остальные данные, придется считывать значение с листбокса, потом проходится по всем данным из lists и сравнивать. А как на счет DataTable? Может там есть что-то вроде текущей позиции?, чтобы я мог просто вывести остальные записи? Владимир СА, тхт выступает в качестве БД. Такое задание. При считывании данные берутся из ТХТ. При записи, редактировании и удалении - так же в тхт изменения пойдут. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 21:04 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
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. В нем содержаться даже те поля, которые не показываются в гриде. Не самый простой для понимания механизм, но зато он обеспечивает большую гибкость в управлении. К нему надо просто привыкнуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 21:56 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
Cat2, ..ну, вообще-то у DataTable есть метод Select() - это по поводу фильтра .. Другой вопрос, что нужен уникальный ID, по которому можно фильтровать, но можно задать автоинкремент-столбец при создании DataTable ... Но это как ТС будет удобнее ... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 22:39 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
Читаем MSDN :DataTable.DefaultView - свойствоПолучает настраиваемое представление таблицы, которая может включать в себя представление с фильтром или положение курсора.DataView.RowFilter - свойствоВозвращает или задает выражение, используемое для выбора строк, просматриваемых в объекте DataView.DataView.Sort - свойствоВозвращает или задает столбец или столбцы для сортировки, а затем — порядок сортировки для DataView. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 01:08 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
gfanВладимир СА, тхт выступает в качестве БД. Такое задание. При считывании данные берутся из ТХТ. При записи, редактировании и удалении - так же в тхт изменения пойдут.Хотел бы я увидеть код изменения данных и запись/UPDATE их в тхт-файл... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 06:07 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
Владимир САgfanВладимир СА, тхт выступает в качестве БД. Такое задание. При считывании данные берутся из ТХТ. При записи, редактировании и удалении - так же в тхт изменения пойдут.Хотел бы я увидеть код изменения данных и запись/UPDATE их в тхт-файл...А что там такого? Просто пишется(перезаписывается) весь файл вот и все. Точно так же как и если работать с DataSet без SQL. Fill => DataSet.ReadXML Update => DataSet.WriteXML и делов-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 07:51 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
fortibransaВладимир САпропущено... Хотел бы я увидеть код изменения данных и запись/UPDATE их в тхт-файл...А что там такого? Просто пишется(перезаписывается) весь файл вот и все. Точно так же как и если работать с DataSet без SQL. Fill => DataSet.ReadXML Update => DataSet.WriteXML и делов-то.Просто задачка студенческая... Я бы хотел посмотреть на файл более 100тыс.записей... плюс полей более 10-15... Сортировка... Фильтрация... А так впринципе зачем тогда СУБД созданы... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 08:11 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
Владимир САfortibransaпропущено... А что там такого? Просто пишется(перезаписывается) весь файл вот и все. Точно так же как и если работать с DataSet без SQL. Fill => DataSet.ReadXML Update => DataSet.WriteXML и делов-то.Просто задачка студенческая... Я бы хотел посмотреть на файл более 100тыс.записей... плюс полей более 10-15... Сортировка... Фильтрация... А так впринципе зачем тогда СУБД созданы...Начинается, смотрим начало топика. Вы вопрос ТС читайте, а потом балабольте о 100тысчах писей. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 08:14 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
fortibransaВладимир САпропущено... Хотел бы я увидеть код изменения данных и запись/UPDATE их в тхт-файл...А что там такого? Просто пишется(перезаписывается) весь файл вот и все. Точно так же как и если работать с DataSet без SQL. Fill => DataSet.ReadXML Update => DataSet.WriteXML и делов-то.Кстати, у ТС файл не формата XML... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 08:16 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
Короче нормальная схема: Создаешь проект 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.
Реализацию сам ковыряй. И вот у тебя будет DataTable, которую ты можешь пихать куда угодно и Биндить и пр и тд и тп ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 08:24 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
Владимир САfortibransaпропущено... А что там такого? Просто пишется(перезаписывается) весь файл вот и все. Точно так же как и если работать с DataSet без SQL. Fill => DataSet.ReadXML Update => DataSet.WriteXML и делов-то.Кстати, у ТС файл не формата XML...Знаю ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 08:24 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
Владимир СА Просто задачка студенческая... Я бы хотел посмотреть на файл более 100тыс.записей... плюс полей более 10-15... Сортировка... Фильтрация... А так впринципе зачем тогда СУБД созданы... ,.. в данном случае, может, и студенческая .. Но иногда приходится читать именно текстовый файл (точнее, стрим) на входе, например, как результат обращения к почтовому IMAP-серверу ... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 11:30 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
carrotikВладимир СА Просто задачка студенческая... Я бы хотел посмотреть на файл более 100тыс.записей... плюс полей более 10-15... Сортировка... Фильтрация... А так впринципе зачем тогда СУБД созданы... ,.. в данном случае, может, и студенческая .. Но иногда приходится читать именно текстовый файл (точнее, стрим) на входе, например, как результат обращения к почтовому IMAP-серверу ...Забавно. В 2002-м году, на пятом курсе института, проходил стажировку в CBOSS. Нужно было реализовать GUI на C++ для анализа текстовых логов коммутаторов сотовой связи. Помнится тогда нашёл на RSDN примеры как реализовать ListBox, поддерживающий Virtual Mode. Это я к тому, что задачка действительно из разряда студенческих. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 11:40 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
carrotik.ну, вообще-то у DataTable есть метод Select() - это по поводу фильтра Это не фильтр. Это отбор коллекции строк. Которую, конечно, можно использовать как DataSource, но это не самый лучший вариант ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 16:19 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
Владимир САХотел бы я увидеть код изменения данных и запись/UPDATE их в тхт-файл... Да без проблем. Нет такого кода стандартного. Не увидишь. Стандартный подход: Сначала все считал, изменил, потом все записал. Именно такой механизм используется при обработке данных на XML. Хотя, конечно, написать обработчики можно, но в здравом уме и полной памяти никто этого делать не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 16:28 |
|
Считывание таблицы из тхт
|
|||
---|---|---|---|
#18+
carrotikНо иногда приходится читать именно текстовый файл (точнее, стрим) на входе, например, как результат обращения к почтовому IMAP-серверу ... Читать приходится, и довольно часто, логи например. Но никому в голову не приходит править логи и сохранять изменения. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 16:29 |
|
|
start [/forum/topic.php?fid=20&msg=38213690&tid=1404887]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
63ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 316ms |
total: | 490ms |
0 / 0 |