![]() |
Модераторы: mihanik |
![]() ![]() ![]() |
|
klassik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 20.10.2006 Репутация: нет Всего: нет |
Есть текстовый файл. У него есть определённая структура. Состоит из строковых и числовых значений. Надо сделать так, чтобы EXCEL открыл этот файл, расставил все значения по определённым столбцам и строкам. После изменения этих значений в EXCELe я мог бы сохранить в этот же текстовый файл с той же структурой.
Можно ли это сделать используя XML и XSD? Стркутура примерно такая:
Можно, наверное, сделать и с помощью VBA, но мне показалось при чтении про XML, что это проще, или может быть более гибко. Т.е. при изменении структуры исходного файл, мне достаточно будет изменить файл XML или XSD. И ещё может быть надо знать что-такое парсинг? Это сообщение отредактировал(а) klassik - 4.7.2008, 17:19 |
|||
|
||||
LOPUH |
|
|||
![]() Растение ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 15.2.2008 Где: Красноярск Репутация: 3 Всего: 4 |
Можно пояснить поподробнее:
Это в текстовом файле до или после преобразования? Как вы хотите сохранить вашу информацию в Excel? Наиболее оптимально бы было воспользоваться деревьями, но боюсь, в VBA такой возможности нет.. для написания парсеров надо бы полноценный язык программирования.. Но если вы владеете только VBA, скиньке образцы файлов- до и после преобразования, может что нибудь придумаем.. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Все это - только программно.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
klassik |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 20.10.2006 Репутация: нет Всего: нет |
И до и после. Мне просто неудобно редактировать и анализировать этот файл в текстовом редакторе. А в EXCELe я смог бы подбирать нужные характеристики прибора.
Не важно. Самое главное, чтобы на входе и навыходе был именно такой текстовый файл. Хотя в будущем, возможно текстовый файл будет дополняться.
Я владею больше С++. Правда только наподобие borland C++ 3.1. Но со временем я изучу С++ для Windows. Присоединил файл, но там не все возможные характеристики. Причём эти характеристики в новом варианте записываются немного в другой последовательности. Это сообщение отредактировал(а) klassik - 9.7.2008, 13:32 |
||||||
|
|||||||
LOPUH |
|
||||||
![]() Растение ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 15.2.2008 Где: Красноярск Репутация: 3 Всего: 4 |
Судя по
используется некая коллекция (стек ,очередь,дерево) объктов. Вышеописанные структуры так и напрашиваются на создание виртуального родительского объекта, который бы инкапсулировал все возможные поля и ,соответственно , методы их хранения. Потом при считывании текстового файла находим строчку
создаем объект-потомок, далее , пока не встретим
НО увы.. VBA лишен наследования у пользовательских объектов. Единственное более-менее приемлимое решение - использование XML. Для работы с ним в VBA предназначена библиотека MSXML ( Tools -> References ->Microsoft XML,v.5.0) Создаете объект DOMDocument. У объекта DOMDocument есть методы CreateNode и CreateElement, создающие узлы и элементы с соответствующими именами.Если захотите идти по предложенному(кстати,вами) пути использование XML, задавайте конкретные вопросы, постараюсь помочь.. |
||||||
|
|||||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Исходный (и конечный) форматы у него заданы. Жестко. И этот формат - не XML. Настроить входной поток так, чтобы на входе в DOM преобразовывать имеющийся текст в XML (а MSXML к проблемам с форматом очень чувствителен) не выйдет. В то же время обычный парсинг текстового файла никаких проблем не вызывает. Читай себе построчно, пихай куда надо. Список однонаправленный, невложенный, одного курсора достаточно... и не надо мудрить ни с XML, ни тем более с деревьями, которым тут вообще делать нечего. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
LOPUH |
|
|||
![]() Растение ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 15.2.2008 Где: Красноярск Репутация: 3 Всего: 4 |
Проблема здесь не в том, чтобы считать текстовый файл построчно.
Основная проблема придумать механизм храненения и редактирования данных. и последующего экспорта в текстовый файл. Так как мы имеем жестко структурированные данные, то придумать что то лучше XML сложно.
С XML я не работал как то не возникало нужды.. Но мне почему то кажется, что больших проблем возникать не должно. Чисто из спортивного интереса, когда появится свободное время, постараюсь написать макрос для экспорта.. Но насчет сроков пока ничего сказать не могу, ибо занят ![]() |
|||
|
||||
krb |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 25.5.2008 Репутация: -1 Всего: -3 |
У меня вопрос!!!
Есть Excel таблица с данными(информация о клиенте, даты, суммы и пр.). Нужно вытащить эти данные и поместить их Word документы. Расположение этих данных в Worde различаются. Как это сделать??? --------------------
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Не лезть в чужую тему, да к тому же не по делу, а создать свою. Это для начала. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
klassik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 20.10.2006 Репутация: нет Всего: нет |
Я нашёл: DOMDocument DOMDocument26 DOMDocument30 DOMDocument40 DOMDocument50 В чём различие? Это сообщение отредактировал(а) klassik - 9.7.2008, 12:09 |
|||
|
||||
LOPUH |
|
|||
![]() Растение ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 15.2.2008 Где: Красноярск Репутация: 3 Всего: 4 |
В версии.. лучше всего пользоваться 5.0 Да, кстати наверно можно обойтись без XML, я думаю Akina прав.. Завтра постараюсь скинуть примерчик, хотя не гарантирую, может опять работа навалиться..
![]() Это сообщение отредактировал(а) LOPUH - 9.7.2008, 12:35 |
|||
|
||||
klassik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 20.10.2006 Репутация: нет Всего: нет |
Почему то справки нет по этому объекту.
|
|||
|
||||
LOPUH |
|
|||
![]() Растение ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 15.2.2008 Где: Красноярск Репутация: 3 Всего: 4 |
||||
|
||||
klassik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 20.10.2006 Репутация: нет Всего: нет |
Так может с XML в дальнейшем будет удобнее. Если у меня добавятся характеристики узла в текстовом файле. Присоединённый файл ( Кол-во скачиваний: 6 ) ![]() |
|||
|
||||
LOPUH |
|
|||
![]() Растение ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 15.2.2008 Где: Красноярск Репутация: 3 Всего: 4 |
Ладно попорбуем с XML. Просто у меня появились определенные соображения как такие структуры можно хранить в VBA. И в этом свете добавка новой структуры вполне реализуема..
Это сообщение отредактировал(а) LOPUH - 9.7.2008, 13:50 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование, связанное с MS Office" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |