Ну ладно, вопрос попроще...
От: Holms США  
Дата: 05.12.01 11:06
Оценка:
Есть txt файл (экспортированный из SQL, между столбцами какой-то разделитель).
Вопрос.
Как отсортировать этот файл по определенному столбцу. (чтоб получилось как в обычной таблице).
ЗЫЖ только не предлагайте сортитровать вначала в SQL а потом экспортировать.
The life is relative and reversible.
Re: Ну ладно, вопрос попроще...
От: KoraK Россия http:\\none.ru
Дата: 05.12.01 11:34
Оценка:
Здравствуйте Holms, Вы писали:

H>Есть txt файл (экспортированный из SQL, между столбцами какой-то разделитель).

H>Вопрос.
H>Как отсортировать этот файл по определенному столбцу. (чтоб получилось как в обычной таблице).
H>ЗЫЖ только не предлагайте сортитровать вначала в SQL а потом экспортировать.
Вычитывай в STLый контейнер — sort()
потом савь
Re: Ну ладно, вопрос попроще...
От: bo Россия  
Дата: 05.12.01 11:42
Оценка:
Здравствуйте Holms, Вы писали:

H>Есть txt файл (экспортированный из SQL, между столбцами какой-то разделитель).

H>Как отсортировать этот файл по определенному столбцу. (чтоб получилось как в обычной таблице).

Запускаешь Excel и открываешь его как текстовый файлик, дальше — полет фантазии...
Но так как данный форум называется С++ — лучше поработать ручками...
В человечишке все должно быть прекрасненьким: и одёжка, и душенка, и мордочка, и мыслишки.
Re[2]: Ну ладно, вопрос попроще...
От: Holms США  
Дата: 05.12.01 11:48
Оценка:
Здравствуйте bo, Вы писали:

bo>Запускаешь Excel и открываешь его как текстовый файлик, дальше — полет фантазии...

bo>Но так как данный форум называется С++ — лучше поработать ручками...

2bo: Интересно а я для чего вопрос задавал. Нужны идеи.
2KoraK: Проблема в том как загрузить. Ведь надо сначала разбить по столбцам и сортировать по одному из них. Получится что-то типа список списков.

list<list<CString>> l;


И как сортировать такой список. Или может как-то по другому?
The life is relative and reversible.
Re[3]: Ну ладно, вопрос попроще...
От: bo Россия  
Дата: 05.12.01 12:17
Оценка:
Здравствуйте Holms,

А что, у твоей таблицы из SQL переменное число столбцов?
Сделай
typedef struct{
CString field1;
CString field2;
.....
} MYRECORDSTRUCT;

list<MYRECORDSTRUCT> lst; а вот процедуру сортировки по нужному полю структуры воткни сам (qsort, например, подойдет).
В человечишке все должно быть прекрасненьким: и одёжка, и душенка, и мордочка, и мыслишки.
Re[3]: Ну ладно, вопрос попроще...
От: Lexey Россия  
Дата: 05.12.01 12:19
Оценка:
Здравствуйте Holms, Вы писали:

H>Здравствуйте bo, Вы писали:


bo>>Запускаешь Excel и открываешь его как текстовый файлик, дальше — полет фантазии...

bo>>Но так как данный форум называется С++ — лучше поработать ручками...

H>2bo: Интересно а я для чего вопрос задавал. Нужны идеи.

H>2KoraK: Проблема в том как загрузить. Ведь надо сначала разбить по столбцам и сортировать по одному из них. Получится что-то типа список списков.

H>
H>list<list<CString>> l;
H>


А зачем так?

typedef Struct
{
    string field1;
    string filed2;
    ...
} MyRecordStruct;

list<MyRecordStruct> bla;


И еще нужно будет ниписать свою функцию сравнения для MyRecordStruct.

H>И как сортировать такой список. Или может как-то по другому?


А потом обычно сортировать.
Re[4]: Ну ладно, вопрос попроще...
От: Holms США  
Дата: 05.12.01 12:21
Оценка:
Здравствуйте bo, Вы писали:

bo>Здравствуйте Holms,


bo>А что, у твоей таблицы из SQL переменное число столбцов?

bo>Сделай
bo>typedef struct{
bo> CString field1;
bo> CString field2;
bo> .....
bo>} MYRECORDSTRUCT;

bo>list<MYRECORDSTRUCT> lst; а вот процедуру сортировки по нужному полю структуры воткни сам (qsort, например, подойдет).


Функция должна быть универсальна, для любых любых текстовых файлов, где элементы в строчках либо имеют фиксированую ширину либо разделенны разделителем.

Не так уж эта жизнь проста, ребята
The life is relative and reversible.
Re[3]: Ну ладно, вопрос попроще...
От: VVV Россия  
Дата: 05.12.01 12:35
Оценка:
Здравствуйте Holms, Вы писали:

...
H>2bo: Интересно а я для чего вопрос задавал. Нужны идеи.
H>2KoraK: Проблема в том как загрузить. Ведь надо сначала разбить по столбцам и сортировать по одному из них. Получится что-то типа список списков.

такая идея: коннектишься к этому файлу через ODBC (ADO или что-то другое по вкусу) через драйвер Microsoft Text Driver (*.txt;*.csv), делаешь обычный SQL запрос с нужным ORDER BY, читаешь записи и пишешь куда надо.
Re[5]: Ну ладно, вопрос попроще...
От: Lexey Россия  
Дата: 05.12.01 12:35
Оценка:
Здравствуйте 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. И опять же, напиши для нее функцию сравнения.
Re[4]: Ну ладно, вопрос попроще...
От: Holms США  
Дата: 05.12.01 12:44
Оценка:
Здравствуйте VVV, Вы писали:

VVV>такая идея: коннектишься к этому файлу через ODBC (ADO или что-то другое по вкусу) через драйвер Microsoft Text Driver (*.txt;*.csv), делаешь обычный SQL запрос с нужным ORDER BY, читаешь записи и пишешь куда надо.


Идея хороша, не спорю, но как передать запросу параметры о том как разделенны столбцы. Ведь разделитель вводит узер.

2Lexey: А мне неизвестно количество полей в структуре заранее.
The life is relative and reversible.
Re[5]: Ну ладно, вопрос попроще...
От: VVV Россия  
Дата: 05.12.01 12:50
Оценка:
Здравствуйте Holms, Вы писали:

H>Здравствуйте VVV, Вы писали:


VVV>>такая идея: коннектишься к этому файлу через ODBC (ADO или что-то другое по вкусу) через драйвер Microsoft Text Driver (*.txt;*.csv), делаешь обычный SQL запрос с нужным ORDER BY, читаешь записи и пишешь куда надо.


H>Идея хороша, не спорю, но как передать запросу параметры о том как разделенны столбцы. Ведь разделитель вводит узер.


H>2Lexey: А мне неизвестно количество полей в структуре заранее.


это просто чудо, но этот драйвер сам по первой строке (где описаны все столбцы) разбирается с разделителями и делает ещё много другого полезного (например, определяет тип данных в этом столбце, но это уже по первой (???) строчке данных — в файле вторая, определяет количество столбцов (а как же без этого?) и т.д.).
Re[6]: Ну ладно, вопрос попроще...
От: Holms США  
Дата: 05.12.01 12:58
Оценка:
Здравствуйте VVV, Вы писали:

VVV>это просто чудо, но этот драйвер сам по первой строке (где описаны все столбцы) разбирается с разделителями и делает ещё много другого полезного (например, определяет тип данных в этом столбце, но это уже по первой (???) строчке данных — в файле вторая, определяет количество столбцов (а как же без этого?) и т.д.).


В мире чудес не бывает. А если первой строчкой идут имена столбцов (а их может и небыть, узер потом сам вбивает), а если узеру нужна фиксированная ширина столбцов, а если ... , не думаю что драйвер поймет все намеки узера.
Все это у меня реилизоввано, вопрос был в том как сортировать такой файл.
The life is relative and reversible.
Re: Ну ладно, вопрос попроще...
От: VladD2 Российская Империя www.nemerle.org
Дата: 05.12.01 16:38
Оценка:
Здравствуйте Holms, Вы писали:

H>Есть txt файл (экспортированный из SQL, между столбцами какой-то разделитель).

H>Вопрос.
H>Как отсортировать этот файл по определенному столбцу. (чтоб получилось как в обычной таблице).
H>ЗЫЖ только не предлагайте сортитровать вначала в SQL а потом экспортировать.

Можно вручную (програму написать), а можно в Ёксель засунуть и там отсортировать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.