![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Filimonov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 15.5.2002 Репутация: нет Всего: нет |
Здравствуйте.
У меня есть таблица сохраненная в текстовом файле. Однако я хочу вытащить ее в TDBGrid с помощью компонента TTable. У меня получается, что содержимое таблицы отображается в одном поле. Как отобразить таблицу в нормальном виде? Спасибо. |
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: нет Всего: 62 |
Как это в коде выглядит? |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
А как таблица сохранена?
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Filimonov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 15.5.2002 Репутация: нет Всего: нет |
Каждый столбец в текстовом файле должен быть отдельным полем.
Данные в строке разделяются однотипным разделителем, например точкой. Я хочу сделать, что - то вроде мастера подключений для текстовых файлов, как в Excel, но используя компонент TTable, а не работая с текстовым файлом напрямую. Можно ли вообще так сделать? |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Не должно быть особых проблем. Есть такие файлы, называются csv - "Comma-separated File" - текстовый файл в котором на каждую запись отводится 1 строка, поля разделяются запятыми. В ODBC есть драйвер для этих файлов. Делаешь DSN на каталог с этими файлами используя текстовый драйвер для csv. После этого у тебя DSN становится доступным и для BDE как alias( после перезапуска BDE программы, или повторной инициализации сессии), тепеть ты с таким файлом можешь работать как с обычной BDE таблицой, только на быструю скорость не расчитывай, при сколь-нибудь большом размере тормозить будет сильно.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Filimonov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 15.5.2002 Репутация: нет Всего: нет |
Вы меня не совсем правильно поняли.
Объясню подробнее, что я хочу в результате получить. Допустим, у меня есть таблица с числовыми данными, которые мне требуются для анализа. Изменять их я не собираюсь. Когда работаю с базами данных типа DBase, Paradox, Foxpro проблем особых нет. Но я хочу использовать этот же интерфейс доступа и для текстовых файлов с произвольными разделителями. И желательно сделать это так, чтобы пользователю не пришлось возиться с настройкой ODBC драйверов. Я делал так: в TableName указывал имя текстового файла, тип ASCII. Но у меня в TDBGrid создавалось только одно поле строкового типа. Может быть сделать кучу вычисляемых полей в DBGrid и раскидать данные по ним? |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Настройку ODBC драйверов сделать не проблема из программы (где-то я даже приводил пример как сделать DSN из Дельфей - посмотри в нашем FAQ), опять-таки выходов только 2 если ты хочешь использовать интерфейс баз данных - или ты используешь имеющийся текстовый драйвер ODBC (кстати он по-моему поддерживает настройку разделителя, или какой другой драйвер) или ты пишешь свой драйвер, что по моему мнению гораздо сложнее. Вычисляемые поля в такой базе ИМХО ты не сделаешь, а с цифровыми проблем не должно быть - все должно работать.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
С легкостью сделал с помощью DAO:
1) Надо качнуть компоненты для работы с DAO, можно с моего сайта: http://chicago.lastplanet.com/delphi/delphi.htm 2) Создаем каталог (у меня "с:\1") в нем текстовый файл (у меня "c:\1\table.txt"), сам файл я заполнил примерно так: ddddddddd,ssssss,eeeee,rrrrrrr,ttttttt wqeqwdesd,qweqwe,afusy,gnfkxcl,vnjdjsd Первая строка интерпретируется как название полей, вторая уже как текст 3) На форму кладем эти компоенты и подключаем, вот моя форма:
Кстати если поставить цифры то они будут интерпретироваться как цифры, если мешать и текстовые поля и цифровые то текстовые надо писать в кавычках. У меня этот код вполне успешно показывал текстовый файл в DBGrid. Но не думай что эта штука будет работать полностью как база данных - никаких проверок, размеров полей, индексов, ограничений, ключей, транзакций и т.п. поддерживаться не может. Только простейшие квери, отображение результатов, чтение и запись. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Filimonov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 15.5.2002 Репутация: нет Всего: нет |
Попробовал я установить компоненты для работы с DAO, только отсылают меня к Майкрософт за лицензией, а без этого работать не хочет. Программы с этим компонентом будут работать только на машинах с лицензией?
|
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Впервые в жизни слышу о лицензии на DAO. А офис микрософтовский стоит с MS Access? Дело в том что DAO специально задумывался для Access и поддержка остальных баз это только побочный продукт. Даже не знаю что и сказать, если будет время попробую то же самое сделать через ODBC. Подробнее можно сказать что именно требует лицензии?
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Filimonov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 15.5.2002 Репутация: нет Всего: нет |
Кладу компонент на форму, а мне кукиш под нос подсовывают. Говорят, что этот компьютер не имеет лицензии на использование DAO, надо регистрировать лицензию в реестре. А за справками отсылают на домашнюю страницу.
|
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
У тебя на этом компьютере MS Office установлен? Если нет попробуй установить. Достаточно установить только MS Access в минимальной конфигурации - он должен поставить все компоненты необходимые для DAO...
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Попробовал через ADO и ODBC - не хочет нормально работать, что-то драйвер глючит. Прийдется тебе все-таки повозится с установкой DAO, и скорее всего установка офиса должна решить проблемы.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Кстати у тебя должна быть где-то DAOxxx.DLL (вместо xxx - номер ейной версии), попробуй ее зарегистрировать как ActiveX...
PS. Кстати какая у тебя версия виндов и не бета ли? -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |