Модераторы: mihanik

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Синхронизация текстового файла и таблицы excel, Текст. файл имеет определённую структуру 
:(
    Опции темы
klassik
Дата 4.7.2008, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть текстовый файл. У него есть определённая структура. Состоит из строковых и числовых значений. Надо сделать так, чтобы EXCEL открыл этот файл, расставил все значения по определённым столбцам и строкам. После изменения этих значений в EXCELe я мог бы сохранить в этот же текстовый файл с той же структурой.

Можно ли это сделать используя XML и XSD?

Стркутура примерно такая:

Код

узел БАЛЛОН
    масса 10
    теплоёмкость 8000
    степень черноты 0.7
конец узла БАЛЛОН

Можно, наверное, сделать и с помощью VBA, но мне показалось при чтении про XML, что это проще, или может быть более гибко. Т.е. при изменении структуры исходного файл, мне достаточно будет изменить файл XML или XSD.

И ещё может быть надо знать что-такое парсинг?

Это сообщение отредактировал(а) klassik - 4.7.2008, 17:19
PM   Вверх
LOPUH
Дата 4.7.2008, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Растение
*


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

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



Можно пояснить поподробнее:
Цитата(klassik @  4.7.2008,  21:43 Найти цитируемый пост)


узел БАЛЛОН
    масса 10
    теплоёмкость 8000
    степень черноты 0.7
конец узла БАЛЛОН

 Это в текстовом файле   до или после преобразования? Как вы хотите сохранить вашу информацию в Excel? Наиболее оптимально бы было воспользоваться деревьями, но боюсь, в VBA  такой возможности нет..  для написания парсеров надо бы полноценный язык программирования.. Но если вы владеете только VBA, скиньке образцы файлов- до и после преобразования, может что нибудь придумаем..



PM MAIL   Вверх
Akina
Дата 4.7.2008, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



Все это - только программно. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
klassik
Дата 4.7.2008, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(LOPUH @ 4.7.2008,  17:59)
Можно пояснить поподробнее:
Это в текстовом файле   до или после преобразования?

И до и после. Мне просто неудобно редактировать и анализировать этот файл в текстовом редакторе.
А в EXCELe я смог бы подбирать нужные характеристики прибора. 

Цитата(LOPUH @ 4.7.2008,  17:59)
Можно пояснить поподробнее:
Как вы хотите сохранить вашу информацию в Excel?

Не важно. Самое главное, чтобы на входе и навыходе был именно такой текстовый файл.
Хотя в будущем, возможно текстовый файл будет дополняться.

Цитата(LOPUH @ 4.7.2008,  17:59)
Можно пояснить поподробнее:
Наиболее оптимально бы было воспользоваться деревьями, но боюсь, в VBA  такой возможности нет..  для написания парсеров надо бы полноценный язык программирования.. Но если вы владеете только VBA, скиньке образцы файлов- до и после преобразования, может что нибудь придумаем..

Я владею больше С++. Правда только наподобие borland C++ 3.1. Но со временем я изучу С++ для Windows.

Присоединил файл, но там не все возможные характеристики.
Причём эти характеристики в новом варианте записываются немного в другой последовательности.

Это сообщение отредактировал(а) klassik - 9.7.2008, 13:32
PM   Вверх
LOPUH
Дата 7.7.2008, 05:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Растение
*


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

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



Судя по
Цитата

NODE BAK_3
................
................
END NODE BAK_3

 NODE RADIATOR
................
................
 END NODE RADIATOR

используется некая коллекция (стек ,очередь,дерево) объктов. Вышеописанные структуры так и напрашиваются на создание  виртуального родительского объекта, который бы  инкапсулировал  все возможные поля и ,соответственно ,
методы их хранения. Потом при считывании текстового файла  находим строчку 
Цитата

NODE ....

создаем объект-потомок, далее , пока не встретим 
Цитата

END NODE 
инициализируем в нем поля .
НО увы.. VBA лишен  наследования у пользовательских объектов.  Единственное  более-менее приемлимое решение -
использование XML.  Для работы  с ним в VBA предназначена библиотека MSXML ( Tools -> References ->Microsoft XML,v.5.0) Создаете  объект DOMDocument. У объекта DOMDocument есть методы CreateNode  и CreateElement, создающие узлы и элементы с соответствующими именами.Если захотите идти по  предложенному(кстати,вами) пути   использование XML, задавайте конкретные вопросы, постараюсь помочь..  
PM MAIL   Вверх
Akina
Дата 7.7.2008, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



Цитата(LOPUH @  7.7.2008,  06:10 Найти цитируемый пост)
Если захотите идти по  предложенному(кстати,вами) пути   использование XML

Исходный (и конечный) форматы у него заданы. Жестко. И этот формат - не XML. Настроить входной поток так, чтобы на входе в DOM преобразовывать имеющийся текст в XML (а MSXML к проблемам с форматом очень чувствителен) не выйдет.

В то же время обычный парсинг текстового файла никаких проблем не вызывает. Читай себе построчно, пихай куда надо. Список однонаправленный, невложенный, одного курсора достаточно... и не надо мудрить ни с XML, ни тем более с деревьями, которым тут вообще делать нечего.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
LOPUH
Дата 7.7.2008, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Растение
*


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

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



Проблема здесь не в том, чтобы считать текстовый файл построчно.
Цитата(klassik @  4.7.2008,  21:43 Найти цитируемый пост)
Надо сделать так, чтобы EXCEL открыл этот файл, расставил все значения по определённым столбцам и строкам. После изменения этих значений в EXCELe я мог бы сохранить в этот же текстовый файл с той же структурой.

Основная проблема придумать механизм храненения и редактирования данных. и последующего экспорта в текстовый файл. Так как мы имеем  жестко структурированные данные,  то придумать что то лучше XML сложно.

Цитата(Akina @  7.7.2008,  13:11 Найти цитируемый пост)
 Настроить входной поток так, чтобы на входе в DOM преобразовывать имеющийся текст в XML (а MSXML к проблемам с форматом очень чувствителен) не выйдет.

С XML я не работал как то не возникало нужды.. Но мне почему то кажется,  что больших проблем возникать не должно. Чисто из спортивного интереса, когда появится свободное время, постараюсь написать макрос для экспорта..
Но  насчет сроков пока ничего сказать не могу, ибо занят  smile 

PM MAIL   Вверх
krb
Дата 7.7.2008, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: -1
Всего: -3



У меня вопрос!!!
Есть Excel таблица с данными(информация о клиенте, даты, суммы и пр.). Нужно вытащить эти данные и поместить их Word документы. Расположение этих данных в Worde различаются.  
Как это сделать???

--------------------
  
PM MAIL WWW ICQ   Вверх
Akina
Дата 8.7.2008, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



Цитата(krb @  8.7.2008,  00:59 Найти цитируемый пост)
Как это сделать???

Не лезть в чужую тему, да к тому же не по делу, а создать свою. Это для начала.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
klassik
Дата 9.7.2008, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(LOPUH @ 7.7.2008,  05:10)

библиотека MSXML ( Tools -> References ->Microsoft XML,v.5.0) Создаете  объект DOMDocument.

Я нашёл:
DOMDocument
DOMDocument26
DOMDocument30
DOMDocument40
DOMDocument50
В чём различие?

Это сообщение отредактировал(а) klassik - 9.7.2008, 12:09
PM   Вверх
LOPUH
Дата 9.7.2008, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Растение
*


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

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



В версии.. лучше всего пользоваться 5.0 Да, кстати наверно можно обойтись без XML, я думаю  Akina прав.. Завтра постараюсь скинуть примерчик, хотя не гарантирую, может опять работа навалиться.. smile 

Это сообщение отредактировал(а) LOPUH - 9.7.2008, 12:35
PM MAIL   Вверх
klassik
Дата 9.7.2008, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Почему то справки нет по этому объекту.
PM   Вверх
LOPUH
Дата 9.7.2008, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Растение
*


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

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




Цитата(klassik @  9.7.2008,  17:31 Найти цитируемый пост)
Почему то справки нет по этому объекту

Ну это ActiveX  компонент, ее и не должно быть..  Погуглите...

PM MAIL   Вверх
klassik
Дата 9.7.2008, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(LOPUH @ 9.7.2008,  12:18)
Да, кстати наверно можно обойтись без XML, я думаю  Akina прав.. 

Так может с XML в дальнейшем будет удобнее.
Если у меня добавятся характеристики узла в текстовом файле.

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  1.rar 3,78 Kb
PM   Вверх
LOPUH
Дата 9.7.2008, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Растение
*


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

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



Ладно попорбуем с XML. Просто у меня появились определенные соображения как такие структуры можно хранить в VBA. И в этом свете добавка  новой структуры вполне реализуема..  

Это сообщение отредактировал(а) LOPUH - 9.7.2008, 13:50
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

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

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

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



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




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


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

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