Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Открыть текстовый файл с помощью TTable? 
:(
    Опции темы
Filimonov
  Дата 15.5.2002, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 15.5.2002

Репутация: нет
Всего: нет



Здравствуйте.
У меня есть таблица сохраненная в текстовом файле.
Однако я хочу вытащить ее в TDBGrid с помощью компонента TTable.
У меня получается, что содержимое таблицы отображается в одном поле.
Как отобразить таблицу в нормальном виде?
Спасибо.
PM MAIL   Вверх
podval
Дата 15.5.2002, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: нет
Всего: 62



Цитата(Filimonov @ 15.5.2002, 11:57)
У меня получается, что содержимое таблицы отображается в одном поле.

Как это в коде выглядит?
PM WWW ICQ   Вверх
Vit
Дата 15.5.2002, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
PM MAIL WWW ICQ   Вверх
Filimonov
Дата 20.5.2002, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 15.5.2002

Репутация: нет
Всего: нет



Каждый столбец в текстовом файле должен быть отдельным полем.
Данные в строке разделяются однотипным разделителем, например точкой.
Я хочу сделать, что - то вроде мастера подключений для текстовых файлов,
как в Excel, но используя компонент TTable, а не работая с текстовым файлом напрямую.
Можно ли вообще так сделать?
PM MAIL   Вверх
Vit
Дата 20.5.2002, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
PM MAIL WWW ICQ   Вверх
Filimonov
Дата 21.5.2002, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 15.5.2002

Репутация: нет
Всего: нет



Вы меня не совсем правильно поняли.
Объясню подробнее, что я хочу в результате получить.
Допустим, у меня есть таблица с числовыми данными, которые мне требуются
для анализа. Изменять их я не собираюсь. Когда работаю с базами данных
типа DBase, Paradox, Foxpro проблем особых нет. Но я хочу использовать этот же интерфейс доступа
и для текстовых файлов с  произвольными разделителями. И желательно сделать это так, чтобы
пользователю не пришлось возиться с настройкой ODBC драйверов.
Я делал так: в TableName указывал имя текстового файла, тип ASCII. Но у меня в TDBGrid создавалось
только одно поле строкового типа. Может быть сделать кучу вычисляемых полей в DBGrid и раскидать
данные по ним?
PM MAIL   Вверх
Vit
Дата 21.5.2002, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
PM MAIL WWW ICQ   Вверх
Vit
Дата 21.5.2002, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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) На форму кладем эти компоенты и подключаем, вот моя форма:

Код

object Form1: TForm1
 Left = 192
 Top = 107
 Width = 696
 Height = 480
 Caption = 'Form1'
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = 'MS Sans Serif'
 Font.Style = []
 OldCreateOrder = False
 PixelsPerInch = 96
 TextHeight = 13
 object DBGrid1: TDBGrid
   Left = 88
   Top = 120
   Width = 401
   Height = 193
   DataSource = DataSource1
   TabOrder = 0
   TitleFont.Charset = DEFAULT_CHARSET
   TitleFont.Color = clWindowText
   TitleFont.Height = -11
   TitleFont.Name = 'MS Sans Serif'
   TitleFont.Style = []
 end
 object KADaoDatabase1: TKADaoDatabase
   ComponentVersion = '5.20'
   Exclusive = False
   DatabaseLanguage = 'Neutral'
   DatabaseType = 'Text'
   Database = 'C:\1'
   ReadOnly = False
   LoginPrompt = False
   UserName = 'Admin'
   SystemDatabase = 'system.mdb'
   SaveUserName = True
   EngineType = 2
   PrivateEngine = True
   UsesDynaDao = True
   Version = '3.6'
   VersionDetails = '3.6'
   VersionInfo = '(In Access'#39'2000 mode)'
   Workspace = 'DaoWorkspace'
   DefaultCursorDriver = -1
   QueryTimeout = 60
   MdbVersionAutoDetect = False
   Connected = True
   Left = 64
   Top = 64
 end
 object KADaoTable1: TKADaoTable
   ComponentVersion = '5.20'
   CacheBlobs = False
   CacheMemos = False
   Database = KADaoDatabase1
   TableName = 'table#txt'
   QueryDefODBCMaxRecords = 0
   TableType = 2
   LockType = 3
   OpenOptions = []
   ReadOnly = False
   LockEdits = False
   MasterAutoActivate = True
   UseBrackets = True
   UseCaptions = False
   UseDaoProperties = True
   UseGetRecNo = True
   UseRecordCount = True
   WarnOnBadDatabase = False
   Filtered = False
   ParamCheck = True
   ProcessMessages = False
   Active = True
   Left = 112
   Top = 64
 end
 object DataSource1: TDataSource
   DataSet = KADaoTable1
   Left = 160
   Top = 64
 end
end


Кстати если поставить цифры то они будут интерпретироваться как цифры, если мешать и текстовые поля и цифровые то текстовые надо писать в кавычках.

У меня этот код вполне успешно показывал текстовый файл в 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
PM MAIL WWW ICQ   Вверх
Filimonov
Дата 22.5.2002, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 15.5.2002

Репутация: нет
Всего: нет



Попробовал я установить компоненты для работы с DAO, только отсылают меня к Майкрософт за лицензией, а без этого работать не хочет. Программы с этим компонентом будут работать только на машинах с лицензией?
PM MAIL   Вверх
Vit
Дата 22.5.2002, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
PM MAIL WWW ICQ   Вверх
Filimonov
Дата 23.5.2002, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 15.5.2002

Репутация: нет
Всего: нет



Кладу компонент на форму, а мне кукиш под нос подсовывают. Говорят, что этот компьютер не имеет лицензии на использование DAO, надо регистрировать лицензию в реестре. А за справками отсылают на домашнюю страницу.
PM MAIL   Вверх
Vit
Дата 23.5.2002, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
PM MAIL WWW ICQ   Вверх
Vit
Дата 23.5.2002, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
PM MAIL WWW ICQ   Вверх
Vit
Дата 23.5.2002, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1406 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.