![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| DimassS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 12.4.2006 Где: Россия, Иркустк Репутация: 1 Всего: 2 |
Проблема в следующем: Файлы формата "DAT" , имеют сложную структуру, сдвоенные ячейки, разные форматы данных и т.д. Хотелось бы написать запрос или что-то в этом роде, чтобы данные этого файла отображались в Delphi, причем чтобы не только просто посмотреть, но и осуществлять редактирование...
Натолкните на мысль, заранее благодарю! |
|||
|
||||
| StayAtHome |
|
|||
![]() Домосед ![]() ![]() Профиль Группа: Участник Сообщений: 456 Регистрация: 26.1.2004 Где: Украина Репутация: 1 Всего: 16 |
Не совсем понял что требуется... Типизированные файлы? http://vingrad.ru/DELPHI-DELPHI-002029
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Т.е. ты хочешь работать с каким-то левым файлом, как с базой?
Тогда тебе придется писать драйвер для этого формата... |
|||
|
||||
| DimassS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 12.4.2006 Где: Россия, Иркустк Репутация: 1 Всего: 2 |
А не подскажешь, этот драйвер есть смысл писать, и не подкинешь информации как написать этот драйвер, надо попробовать...
Спасибо за мысль, есть над чем поразмыслить... |
|||
|
||||
| DimassS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 12.4.2006 Где: Россия, Иркустк Репутация: 1 Всего: 2 |
Вот что получилось - на форме есть компонент Edit, и две кнопки вот на них обработчики:
При нажатии на первую выбираем файл формата "TTL", это какбы оглавление таблицы данных При нажатии на вторую кнопку происходит считывание шапки таблицы, и непосредственный перевод в Excel. Не получается почему-то определить тип, конструкция CASE выкидывает сообщение: "Ordinal Type required", возможно ли обойти эту ошибку? Или заменить эту конструкцию чем-то другим? Заранее благодарю! Это сообщение отредактировал(а) Girder - 26.4.2006, 10:04 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
case не применим к строкам.
Используй if then begin ... end else if then begin ... end else... Добавлено @ 11:06 P.S. А вообще лучше используй класс TWriter, TReader - там все уже сделано. |
|||
|
||||
| DimassS |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 12.4.2006 Где: Россия, Иркустк Репутация: 1 Всего: 2 |
Не подходит, слишком много нужно обработать типов данных...
Не можешь поподробнее об этом рассказать, как применять, если можно с примером... Спасибо что откликнулся! |
||||
|
|||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Пример:
Если порядок следования данных не известен, то придется подождать. Я как раз над этим работаю. |
|||
|
||||
| DimassS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 12.4.2006 Где: Россия, Иркустк Репутация: 1 Всего: 2 |
А можно обойтись без записи в файл первой кнопкой, скажем у мены есть файл типов, с обозначение типа каждого столбца, при нажатии на первую кнопку я открываю этот файл. И имеется второй файл с самими данными, соответствующие типам из первого файла, при нажатии на вторую кнопку, я запускаю два цикла и опледеляю тип данных и выдаю результат в ячейки Excel, перевод из Delphi в Excel я уже сделал, сейчас бы разобраться как добыть данные из файла...
Посмотрел вашу программу - вот если бы просто прочитать второй кнопкой файл.... Спасибо за беспокойство!! |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Да собственно тут нет проблем.
Я написал примеры для 3-х типов. А закатать в файл можно любой. В том числе и Variant. WriteVariant, ReadVariant. Гони в файл варианты, читай из файла варианты. Передавай ехелю варианты. А какой тип действительно сидит в варианте это уж пускай TReader сам разбирается. Вобщем просто используй тип Variant и будет тебе щастя. |
|||
|
||||
| DimassS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 12.4.2006 Где: Россия, Иркустк Репутация: 1 Всего: 2 |
Не всё так просто, у меня в таблице есть шапка, с объединенными ячейками, необходимо понять в Delphi, что они объединены и объединить их в Excel, сегодня посматривал эти таблицы на Fortran-е было весело.. прийдётся посидеть подольше... Уже сейчас моя программа разраслась до таких размеров, сразу и не просмотришь. . .
Это сообщение отредактировал(а) DimassS - 27.4.2006, 10:15 |
|||
|
||||
| DimassS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 12.4.2006 Где: Россия, Иркустк Репутация: 1 Всего: 2 |
Есть вопрос как прописать в Type переменную которая будет в последующем содержать в себе три типа выглядит примерно так:
Type TtyValue = (dInteger, dFloat, dString); может так: TtyValue : array of (dInteger, dFloat, dString); Почемуто выкидывает ошибку! Это сообщение отредактировал(а) DimassS - 28.4.2006, 05:14 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Так и прописывать:
|
|||
|
||||
| DimassS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 12.4.2006 Где: Россия, Иркустк Репутация: 1 Всего: 2 |
Вот блин я заламирился, не в тех Type-ах писал, весь день парился, а оказываетсЯ что надо внутри процедуры писать...
Спасибо что помог, сам бы наверное не допёр... |
|||
|
||||
| DimassS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 12.4.2006 Где: Россия, Иркустк Репутация: 1 Всего: 2 |
Есть вопрос вот прописал массив типов в Type
Может надо сначала как-нибудь их заполнить, ну типа MyVal[I].Add? Это сообщение отредактировал(а) Girder - 9.5.2006, 20:16 |
|||
|
||||
![]()
|
| Правила форума "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. |