Есть txt файл (экспортированный из SQL, между столбцами какой-то разделитель).
Вопрос.
Как отсортировать этот файл по определенному столбцу. (чтоб получилось как в обычной таблице).
ЗЫЖ только не предлагайте сортитровать вначала в SQL а потом экспортировать.
Здравствуйте Holms, Вы писали:
H>Есть txt файл (экспортированный из SQL, между столбцами какой-то разделитель). H>Вопрос. H>Как отсортировать этот файл по определенному столбцу. (чтоб получилось как в обычной таблице). H>ЗЫЖ только не предлагайте сортитровать вначала в SQL а потом экспортировать.
Вычитывай в STLый контейнер — sort()
потом савь
Здравствуйте Holms, Вы писали:
H>Есть txt файл (экспортированный из SQL, между столбцами какой-то разделитель). H>Как отсортировать этот файл по определенному столбцу. (чтоб получилось как в обычной таблице).
Запускаешь Excel и открываешь его как текстовый файлик, дальше — полет фантазии...
Но так как данный форум называется С++ — лучше поработать ручками...
В человечишке все должно быть прекрасненьким: и одёжка, и душенка, и мордочка, и мыслишки.
Здравствуйте bo, Вы писали:
bo>Запускаешь Excel и открываешь его как текстовый файлик, дальше — полет фантазии... bo>Но так как данный форум называется С++ — лучше поработать ручками...
2bo: Интересно а я для чего вопрос задавал. Нужны идеи.
2KoraK: Проблема в том как загрузить. Ведь надо сначала разбить по столбцам и сортировать по одному из них. Получится что-то типа список списков.
list<list<CString>> l;
И как сортировать такой список. Или может как-то по другому?
Здравствуйте Holms, Вы писали:
H>Здравствуйте bo, Вы писали:
bo>>Запускаешь Excel и открываешь его как текстовый файлик, дальше — полет фантазии... bo>>Но так как данный форум называется С++ — лучше поработать ручками...
H>2bo: Интересно а я для чего вопрос задавал. Нужны идеи. H>2KoraK: Проблема в том как загрузить. Ведь надо сначала разбить по столбцам и сортировать по одному из них. Получится что-то типа список списков.
H>
Здравствуйте bo, Вы писали:
bo>Здравствуйте Holms,
bo>А что, у твоей таблицы из SQL переменное число столбцов? bo>Сделай bo>typedef struct{ bo> CString field1; bo> CString field2; bo> ..... bo>} MYRECORDSTRUCT;
bo>list<MYRECORDSTRUCT> lst; а вот процедуру сортировки по нужному полю структуры воткни сам (qsort, например, подойдет).
Функция должна быть универсальна, для любых любых текстовых файлов, где элементы в строчках либо имеют фиксированую ширину либо разделенны разделителем.
... H>2bo: Интересно а я для чего вопрос задавал. Нужны идеи. H>2KoraK: Проблема в том как загрузить. Ведь надо сначала разбить по столбцам и сортировать по одному из них. Получится что-то типа список списков.
такая идея: коннектишься к этому файлу через ODBC (ADO или что-то другое по вкусу) через драйвер Microsoft Text Driver (*.txt;*.csv), делаешь обычный SQL запрос с нужным ORDER BY, читаешь записи и пишешь куда надо.
Здравствуйте Holms, Вы писали:
bo>>А что, у твоей таблицы из SQL переменное число столбцов? bo>>Сделай bo>>typedef struct{ bo>> CString field1; bo>> CString field2; bo>> ..... bo>>} MYRECORDSTRUCT;
bo>>list<MYRECORDSTRUCT> lst; а вот процедуру сортировки по нужному полю структуры воткни сам (qsort, например, подойдет).
H>Функция должна быть универсальна, для любых любых текстовых файлов, где элементы в строчках либо имеют фиксированую ширину либо разделенны разделителем.
Ну ладно, сделай так:
typedef vector<string> MyRecordStruct. И опять же, напиши для нее функцию сравнения.
Здравствуйте VVV, Вы писали:
VVV>такая идея: коннектишься к этому файлу через ODBC (ADO или что-то другое по вкусу) через драйвер Microsoft Text Driver (*.txt;*.csv), делаешь обычный SQL запрос с нужным ORDER BY, читаешь записи и пишешь куда надо.
Идея хороша, не спорю, но как передать запросу параметры о том как разделенны столбцы. Ведь разделитель вводит узер.
2Lexey: А мне неизвестно количество полей в структуре заранее.
Здравствуйте Holms, Вы писали:
H>Здравствуйте VVV, Вы писали:
VVV>>такая идея: коннектишься к этому файлу через ODBC (ADO или что-то другое по вкусу) через драйвер Microsoft Text Driver (*.txt;*.csv), делаешь обычный SQL запрос с нужным ORDER BY, читаешь записи и пишешь куда надо.
H>Идея хороша, не спорю, но как передать запросу параметры о том как разделенны столбцы. Ведь разделитель вводит узер.
H>2Lexey: А мне неизвестно количество полей в структуре заранее.
это просто чудо, но этот драйвер сам по первой строке (где описаны все столбцы) разбирается с разделителями и делает ещё много другого полезного (например, определяет тип данных в этом столбце, но это уже по первой (???) строчке данных — в файле вторая, определяет количество столбцов (а как же без этого?) и т.д.).
Здравствуйте VVV, Вы писали:
VVV>это просто чудо, но этот драйвер сам по первой строке (где описаны все столбцы) разбирается с разделителями и делает ещё много другого полезного (например, определяет тип данных в этом столбце, но это уже по первой (???) строчке данных — в файле вторая, определяет количество столбцов (а как же без этого?) и т.д.).
В мире чудес не бывает. А если первой строчкой идут имена столбцов (а их может и небыть, узер потом сам вбивает), а если узеру нужна фиксированная ширина столбцов, а если ... , не думаю что драйвер поймет все намеки узера.
Все это у меня реилизоввано, вопрос был в том как сортировать такой файл.
Здравствуйте Holms, Вы писали:
H>Есть txt файл (экспортированный из SQL, между столбцами какой-то разделитель). H>Вопрос. H>Как отсортировать этот файл по определенному столбцу. (чтоб получилось как в обычной таблице). H>ЗЫЖ только не предлагайте сортитровать вначала в SQL а потом экспортировать.
Можно вручную (програму написать), а можно в Ёксель засунуть и там отсортировать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.