Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.06.2013, 16:16
forum.sources.ru forum.sources.ru вне форума
Прохожий
 
Регистрация: 22.04.2013
Сообщения: 31
Версия Delphi: d2,4,6,7,8,xe
Репутация: 10
Вопрос Компонент для таблиц

Уважаемые, подскажите какой не визуальный компонент (тип) использовать для моей задачи:???
1. Имеется много текстовых файлов такого вида:
[['Name', 0.00, 33.00, 63.38, 126.76, 190.14, 253.52, 316.90, 380.28, 443.66, 507.04, 570.42, 633.80, 697.18, 760.56],
[90.0, 1803.0, 1795.0, 1783.0, 1772.0, 1761.0, 1750.0, 1740.0, 1731.0, 1722.0, 1715.0, 1707.0, 1700.0, 1695.0, 1690.0],
[91.0, 1817.0, 1809.0, 1797.0, 1785.9, 1774.9, 1764.0, 1754.0, 1744.9, 1735.9, 1728.8, 1720.9, 1713.9, 1708.8, 1703.8]];
(Здесь скопировал только 3 строки).
Таких таблиц в файле мбыть сколько угодно, число строк/столбцов варьируется. Первые - строка/столбец, являются заголовками (выделил - Ж).
2. Необходимо легко оперировать данными таблиц и находить нужный элемент в пересечении заданных значений (здесь, к примеру, [126.76,91.0]=1785.9).
3. Таблицы редактировать, а также выводить на экран не требуется.
4. Общее количество таблиц неизвестно (но - ограничено). Пока меньше 100.

ЗЫ// К глубокому сожалению, не приходилось работать с таблицами и БД Нужно когда-то начинать))

Последний раз редактировалось forum.sources.ru, 27.06.2013 в 17:19.
Ответить с цитированием
  #2  
Старый 27.06.2013, 16:53
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

че-то не понятно.
надо из текстовых файлов инфу запихать в таблицы что-ли?

если чисто по названию темы - StringGrid, таблицы БД - dbGrid
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
  #3  
Старый 27.06.2013, 17:26
forum.sources.ru forum.sources.ru вне форума
Прохожий
 
Регистрация: 22.04.2013
Сообщения: 31
Версия Delphi: d2,4,6,7,8,xe
Репутация: 10
По умолчанию

Цитата:
Сообщение от Mrak
че-то не понятно.
надо из текстовых файлов инфу запихать в таблицы что-ли?

Цитата:
2. Необходимо легко оперировать данными таблиц и находить нужный элемент в пересечении заданных значений...

+ это удобство заполнения компонента (если, это компонент)_ данными из таких документов.
Ответить с цитированием
  #4  
Старый 27.06.2013, 18:04
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

array of array of Variant
SetLength
Не плодите сущностей - всё проще...
Для "неправильных" (дробных) индексов используйте пару "индексных" массивов.
Функции для работы с таким делом пишутся за 10 минут.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj

Последний раз редактировалось PhoeniX, 27.06.2013 в 18:08.
Ответить с цитированием
Этот пользователь сказал Спасибо PhoeniX за это полезное сообщение:
forum.sources.ru (28.06.2013)
  #5  
Старый 27.06.2013, 18:11
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

если надо засунуть в базу, и если таблицы помещаются в памяти, то можно попробовать какой-нибудь скриптовый язык + eval
Код:
[[...],...];  =>  data([[...],...]);
в другом файле объявить функцию data, которая сохраняет в базу, и eval все эти файлы по очереди
__________________
>woweook<
Ответить с цитированием
  #6  
Старый 27.06.2013, 22:35
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от forum.sources.ru
(Здесь скопировал только 3 строки).
Судя по представленным данным, для такой задачи не стыдно и свой компонент написать. Я правильно понимаю, что там что-то вроде статистики или замеров?

Цитата:
Сообщение от forum.sources.ru
К глубокому сожалению, не приходилось работать с таблицами и БД Нужно когда-то начинать))
Если придется хранить это в БД, при условии, что число столбцов и самих таблиц (в СУБД это называется схема) неизвестно и может меняться от данных к данным, наиболее адекватной схемой будет полная декомпозиция и хранение по одному замеру в строке, с указанием, к какой таблице, строке и столбцу он относится и прочих метаданных. Схема, скажем так, не для новичков.
Ответить с цитированием
  #7  
Старый 28.06.2013, 00:55
forum.sources.ru forum.sources.ru вне форума
Прохожий
 
Регистрация: 22.04.2013
Сообщения: 31
Версия Delphi: d2,4,6,7,8,xe
Репутация: 10
По умолчанию

Цитата:
Сообщение от PhoeniX
array of array of Variant

Думал насчет реализации с помощью массивов, но хотелось более "прозрачный" способ. Есть библиотека для поиска/выдачи элемента таблицы, при условии 1 файл - 1 таблица (писалась для другой задачи). Она, как раз с использованием массивов. Согласен, что можно переписать под новую задачу, но если есть более простой и явный способ, нужно использовать его.
Ответить с цитированием
  #8  
Старый 28.06.2013, 02:36
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от forum.sources.ru
Думал насчет реализации с помощью массивов...
Так это массив 3Х15 и есть, где первая строка индексы вертикальных колонок, а первые ячейки - индексы горизонтальных строк...

З.Ы. Перечитал первый пост, выходит это не три строки, а одна. Вам что, нужно объединить её с другими или обрабатывать каждую такую строку отдельно, но как бы вместе?

З.Ы.З.Ы. Посмотрите пжлст такой пример, а то может я не так задачу понял, надо же как то подпись свою оправдывать

Последний раз редактировалось Alegun, 28.06.2013 в 04:39.
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
forum.sources.ru (01.07.2013)
  #9  
Старый 28.06.2013, 13:31
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

Цитата:
Сообщение от Freeman
хранение по одному замеру в строке, с указанием, к какой таблице, строке и столбцу он относится и прочих метаданных.
+1, можно даже обойтись одной таблицей
__________________
>woweook<
Ответить с цитированием
  #10  
Старый 01.07.2013, 02:34
forum.sources.ru forum.sources.ru вне форума
Прохожий
 
Регистрация: 22.04.2013
Сообщения: 31
Версия Delphi: d2,4,6,7,8,xe
Репутация: 10
По умолчанию

пример бодрый такой!) Обрабатывать нужно поочередно в зависимости от промежуточных результатов.. а на экран выводить ничего не нужно (им.вв.-таблицы). Значит лучше остановиться на создании массива? Таблицами кажется быстрее было б и удобнее, нет?
Ответить с цитированием
  #11  
Старый 01.07.2013, 07:14
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от forum.sources.ru
...Обрабатывать нужно поочередно в зависимости от промежуточных результатов.. а на экран выводить ничего не нужно (им.вв.-таблицы). Значит лучше остановиться на создании массива? Таблицами кажется быстрее было б и удобнее, нет?
У вас информация текстовая? - текстовая, значит и обрабатывать её в таком виде проще всего. Считывать можно и без вывода на экран, через напр. класс TStringList, храня в виде одной строки в БД, акцесс прям просится сюды. Почему хранить строкой, потому как
Цитата:
...Таких таблиц в файле мбыть сколько угодно, число строк/столбцов варьируется...
, а при считывании на размерность можно и не обращать внимания, функция любую в себя возьмёт, только с индексами для поиска определиться, а так всё.
Ответить с цитированием
  #12  
Старый 09.07.2013, 10:21
forum.sources.ru forum.sources.ru вне форума
Прохожий
 
Регистрация: 22.04.2013
Сообщения: 31
Версия Delphi: d2,4,6,7,8,xe
Репутация: 10
По умолчанию

Взял ваш пример на вооружение. Остановился на заполнении массива(double) и таблицы (последние данные) для визуальной оценки. Поиск реализовал через массив. + поставил))


з.ы. жаль TTable прошел мимо) ну, как-нибудь в следующий раз..

з.ы.2. дальше по плану работа с набором БД с хранением текстовой и графической инфы, ссылку датите?- спасибо. Нет-сам разберусь.
Ответить с цитированием
  #13  
Старый 09.07.2013, 10:57
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от forum.sources.ru
...з.ы.2. дальше по плану работа с набором БД с хранением текстовой и графической инфы, ссылку датите?- спасибо. Нет-сам разберусь.
Может и пригодится это
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:29.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter