[РЕШЕНО] Запись/чтение TStringGrid .xml (обсудить)
Модератор: Модераторы
[РЕШЕНО] Запись/чтение TStringGrid .xml (обсудить)
Господа-граждане, всем доброго!
Впервые столкнулся с чтением из файла в TStringGrid - оказалось, все просто до безобразия (а также во время, да и после безобразия). Кидаем на форму StringGrid, заполняем чем надо ячейки и сохраняем - получаем файл .xml. Затем читаем оттуда - все заполняется как надо.
p.s. возможно, гуру посмеются, но для народа может быть полезно!
Впервые столкнулся с чтением из файла в TStringGrid - оказалось, все просто до безобразия (а также во время, да и после безобразия). Кидаем на форму StringGrid, заполняем чем надо ячейки и сохраняем - получаем файл .xml. Затем читаем оттуда - все заполняется как надо.
p.s. возможно, гуру посмеются, но для народа может быть полезно!
Последний раз редактировалось Владимир 05.07.2011 22:22:49, всего редактировалось 1 раз.
Из анабиоза? 
vada писал(а):Из анабиоза?
Это шутка такая или хамствие? Надо быть добрее.
Естественно шутка! 
Кстати, там не все так гладко. Если количество колонок и столбцев в гриде и XML не совпадает...
Зацените что получится.
Кстати, там не все так гладко. Если количество колонок и столбцев в гриде и XML не совпадает...
Зацените что получится.
vada писал(а):Если количество колонок и столбцев в гриде и XML не совпадает...
При загрузке есть специальная опция, которая пересоздаёт StringGrid заново, основываясь на XML-файле. Естественно, при выгрузке в файл, нужно её тоже указывать, чтобы в файле были все данные о создании StringGrid'а.
- dunin
- энтузиаст
- Сообщения: 634
- Зарегистрирован: 02.05.2007 13:18:11
- Откуда: Тољя††и
- Контактная информация:
вот чего подумалось... у разработчиков StringGreed-а не возникало мысли допилить этот генерируемый XML до полного соответствия формату *.ods файла? тогда фактически получился бы готовый компонент для работы с офисными документами. думаю понравилось бы многим.
Добавлено спустя 2 часа 30 минут 54 секунды:
В продолжение темы...

Добавлено спустя 2 часа 30 минут 54 секунды:
В продолжение темы...
Код: Выделить всё
unit XMLConf;
...
{...
Copyright (c) 1999 - 2005 by Sebastian Guenther, sg@freepascal.org
Modified in 2007 by Sergei Gorelkin, sergei_gorelkin@mail.ru
...}dunin причём тут StringGrid? Сергей правит XML, но никак не сетку!
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Тут основная проблема в том, что модуль xmlconf работает вовсе не с xml, как бы странно это ни звучало. Xml подразумевает наличие структуры, которую можно каким-то образом описать (например, с помощью схемы или DTD), и которую можно преобразовать в другую произвольную структуру (например, с помощью xslt). С этой точки поддержка ods прямо в гриде лишена смысла: достаточно сохранять самый простой формат и дальше преобразовывать во что угодно с помощью xsl.
Но то, с чем работает xmlconf, структуры не имеет и не может иметь в принципе. И его в общем-то бесполезно допиливать, дешевле выкинуть и лепить нужный dom ручками...
Но то, с чем работает xmlconf, структуры не имеет и не может иметь в принципе. И его в общем-то бесполезно допиливать, дешевле выкинуть и лепить нужный dom ручками...
- dunin
- энтузиаст
- Сообщения: 634
- Зарегистрирован: 02.05.2007 13:18:11
- Откуда: Тољя††и
- Контактная информация:
Sergei I. Gorelkin писал(а):...Xml подразумевает наличие структуры, которую можно каким-то образом описать (например, с помощью схемы или DTD), и которую можно преобразовать в другую произвольную структуру (например, с помощью xslt). С этой точки поддержка ods прямо в гриде лишена смысла: достаточно сохранять самый простой формат и дальше преобразовывать во что угодно с помощью xsl.
Но то, с чем работает xmlconf, структуры не имеет и не может иметь в принципе. И его в общем-то бесполезно допиливать, дешевле выкинуть и лепить нужный dom ручками...
Ну ёпрст...
Сергей, подскажите куда фтыкать, чтобы толком понять про DTD, xslt и иже с ними... (линк на толковую литературу или что-то вроде). Спасибо.
==================
Если кто помнит, для дельфи был (или еще есть?) такой компонент ФормулаВан (Formula 1 или F1). Типа кидаешь на форму "грид от F1" - рисуешь там что тебе надо - жмак на кнопель - и готовый эксель файл того, что нарисовал. Дальше через shellexecute его вызываешь и бинго - отчет готов. Под лазарус, и, разумеется Open/LibreOffice, ничего такого не нашел, а очень хотелось бы.
dunin писал(а):Sergei I. Gorelkin писал(а):..
==================
Если кто помнит, для дельфи был (или еще есть?) такой компонент ФормулаВан (Formula 1 или F1). Типа кидаешь на форму "грид от F1" - рисуешь там что тебе надо - жмак на кнопель - и готовый эксель файл того, что нарисовал. Дальше через shellexecute его вызываешь и бинго - отчет готов. Под лазарус, и, разумеется Open/LibreOffice, ничего такого не нашел, а очень хотелось бы.
Доброго всем! Не думал, что обсуждение продолжится - вроде мелочь. Решаемая сохранением в файл задача у меня самая прозаическая - автосохранение (дабы не терять пользовательские данные на случай падения приложения).
Касаемо .ods или .odt - эти "файлы" суть zip-архивы. После распаковки получаем несколько каталогов и файлов, из которых за наполнение таблицы (шрифты, данные и т.д.) отвечает файл content.xml С помощью replace можно подставить в него свои данные, а затем снова сжать и читать в Open/Libre.
p.s. идея не моя, ссылку где-то здесь на форуме нашел
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
dunin писал(а):Сергей, подскажите куда фтыкать, чтобы толком понять про DTD, xslt и иже с ними... (линк на толковую литературу или что-то вроде).
Я что-то затрудняюсь подсказать с ходу. Сам обращался к первоисточникам на w3.org, но там, понятное дело, все по-английски.
Sergei I. Gorelkin писал(а):dunin писал(а):Сергей, подскажите куда фтыкать, чтобы толком понять про DTD, xslt и иже с ними... (линк на толковую литературу или что-то вроде).
Я что-то затрудняюсь подсказать с ходу. Сам обращался к первоисточникам на w3.org, но там, понятное дело, все по-английски.
GOOGLE очень помогает. Там все есть, и xml и dtd и shema и xslt. Все на самом деле довольно просто. Можно и с апачей инглиш почитать даже если только в школе его учил. Сильно поможет translate.google.ru. Переводит сносно для понимания технического текста, да и исходный текст показывает...
Да и книжки на русском есть в магазинах или в инете зваказать.
- dunin
- энтузиаст
- Сообщения: 634
- Зарегистрирован: 02.05.2007 13:18:11
- Откуда: Тољя††и
- Контактная информация:
vada писал(а):...GOOGLE очень помогает. Там все есть...
Кэп, спасибо.
Ни кто ни когда не задумывался, почему при всемогущем гугле, общение на тематических форумах по прежнему живет и процветает? Да потому, что всемогущий гугл и прочие поисковики заставят вас перекидать лопатой кучу сами знаете чего, прежде чем доберетесь до чего-то стоящего. А тематические форумы как правило объединяют людей в данной тематике разбирающихся, которые, возможно ни чем вам не помогут, но и оправлять вас... (куда читайте выше) не будут.
Хотя... мы же не знаем, кто по ту сторону монитора... может школьник, или блондинко какой, впервые узнавший, что есть что-то еще акромя вконтакта и одноклассников. Можно лишний раз и разъяснить что такое поисковая машина и онлайн переводчик... Почему нет?
Но это так, отвлечение... извините за оффтоп...
