1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Разбить текстовый файл на части и отправить в эксель

Тема в разделе "Программирование", создана пользователем HELL'o, 16.12.08.

Статус темы:
Закрыта.
  1. HELL'o

    HELL'o Активный участник

    5.125
    240
    Есть прибор, который измеряет пары параметров. Результаты записывает в файлы (приведу ниже).
    Задача - разделить строки файла на параметры с соответствующими значениями и единицами измерения, отправить их в таблицу эксель. В итоге надо построить графики.
    Или может другие предложения будут? Главное - построить графики.
     

    Вложения:

  2. panda-34

    panda-34 Активный участник

    1.589
    2
    Ето ж rtf файлы. Зачем их в txt? Открывай в wordе, преобразовать текст в таблицу, заменить точки на запятые в числовых столбцах, скопировать вставить в Excel. Если файлов много и делать надо часто - написать скриптик.
     
  3. HELL'o

    HELL'o Активный участник

    5.125
    240

    А вот с этого места поподробнее
     
  4. panda-34

    panda-34 Активный участник

    1.589
    2

    Чего подробнее? Всю последовательность действий я описал, только запрограммировать ее и все.
    Типа:

    var word = new ActiveXObject("Word.Application");
    var doc = word.Documents.Open('c:\\Temp\\11.rtf');
    doc.Paragraphs(1).Range.Delete();
    doc.Range().ConvertToTable(',');

    Ну и так далее.
     
  5. HELL'o

    HELL'o Активный участник

    5.125
    240
     
  6. panda-34

    panda-34 Активный участник

    1.589
    2
    Ну... не знаю... в документации... Доки по jscript и vba входят в состав MS Office. Или в msdn.

    добавлено через 2 минуты
    Если разбираться с объектами wordа, excelя то удобнее всего через Object Browser (Alt+F11, F2) а из него уже help смотреть.
     
  7. Pasha

    Pasha Активный участник

    4.442
    1
    HELL'o,
    или, если разбираешься в ЯП общего назначения, можешь написать стороннее приложение, которое парсит входной файл (или как вариант, открывает его в word и тупо берет данные уже оттуда), а затем экспортирует все в Excel.
    Все начинается с магических строк
    ExcelApp := CreateOleObject('Excel.Application');

    Гугл тебе в помощь
     
  8. Сер-Аджани

    Сер-Аджани Активный участник

    2.032
    10
    А зачем для посадки мелких кустарников использовать экскаватор?
    в Екселе вообще можно открыть txt файл просто через OpenFile и на заинтересованный вопрос о разделителе сказать шо это , (как я понял из предложенного файла) и вуаля, перед вами таблица, которую можно сохранить с расширением xls и делать с ней что душе угодно...
     
  9. Pasha

    Pasha Активный участник

    4.442
    1
    Да, кстати, ест очень удобный формат файлов, называется CSV.
    Простой текстовый формат, разделители между колонками - точка с запятой, а между строками - перенос строки. Остается привести исходный файл в такой вид (своим парсером например) и открыть екселем. Сам часто пользуюсь, но сейчас вылетело из головы ;)
     
  10. panda-34

    panda-34 Активный участник

    1.589
    2
    Открыть rtf файл в Excele? Это что-то новенькое, мой Excel так не умеет.:( Колитесь, где взяли такой?
     
  11. Pasha

    Pasha Активный участник

    4.442
    1
    panda-34,
    а кто написал, что можно открыть РТФ в экселе?
     
  12. panda-34

    panda-34 Активный участник

    1.589
    2
    HELL'o требуется из rtf файла создать таблицу в Excel. Я предложил rtf открыть в Worde, преобразовать в таблицу и скопировать в Excel. Сер-Аджани считает, что это использование экскаватора для посадки кустарника. Вопрос: как он прелагает октрывать rtf файлы в Excel без использования экскаватора?
     
  13. HELL'o

    HELL'o Активный участник

    5.125
    240

    Да мне, собственно, все равно - будет там экскаватор или бульдозер. Главное результат. А вообще, надо начинать с того, чтобы ПО самого прибора до ума довести. 70 или 50 тр отдали за прибор несколько лет назад, а оно сырое. Исходников нет, поэтому выкручиваемся.
     
  14. Сер-Аджани

    Сер-Аджани Активный участник

    2.032
    10

    На счет ртфности этого файла могу поспорить. Скорее это всё же некий псевдоrtf, поскольку структура соблюдается лишь отчасти и в области непосредственно данных абсолютно не соответствует стандарту RTF. И Экселем открывается на ура, как любой текстовый файл с разделителями (по умолчанию этот формат называется CSV, как справедливо заметил Pasha , хотя на самом деле расширение файла абсолютно не имеет никакого значение, его может и вовсе не быть, ексель проверяет структуру внутри файла). Выложить результат или не надо?
     
  15. panda-34

    panda-34 Активный участник

    1.589
    2
    Сер-Аджани,
    Согласен, эти конкретные файлы можно октрыть сразу в Excel, но там все-равно надо обрезать заголовки и подвалы, лишние столбцы, делать поиск-замену. Через word просто меньше телодвижений надо будет сделать (ну может также). И где гарантия, что все файлы во всех случаях подойдут под один шаблон? Если rtf генерится внешней библиотекой (на 99% это так), то формат служебных тэгов может измениться, скажем, при установке другой версии rich text control. Содержимое самого rtf не изменится при этом и через word он будет также открываться. Короче, wordу - wordово (rtf), excelю - exceлево. Хотя можно сделать и наоборот, конечно.:)
     
  16. HELL'o

    HELL'o Активный участник

    5.125
    240
    Сер - Арджани, получается не совсем то, что нужно. Panda -34 прав. Завтра будет время почитать книжонку про работу с ОЛЕ, потом отчитаюсь:) .
     
  17. Kot.85

    Kot.85 Активный участник

    4.796
    10
    HELL'o , так у вас строки данных начинаются с одного и того же значения: "\par", вот их и выдергивать из файла. в самих же строках разделителем считается ",", а потом формировать из этого набора файл эксэля. остальные данные(шапки записей, еденицы измерения)можно не брать в обработку.
     
  18. AlTk

    AlTk Читатель

    10.692
    0
    Kot.85,
    "... Завтра будет время почитать книжонку про работу с ОЛЕ ..."
    за 21 день которое?
    ну-ну. ;)

    а вообще не занимайтесь ерундой, попробуйте найти обработчик текстовых файлов, который может в пакетном режиме работать, а потом готовый файл в Экселе открывайте.
    можете там даже макрос написать по построению диаграмм.
    а вот Вам и обработчик http://www.vknoware.com/afr/index.htm
     
  19. Kot.85

    Kot.85 Активный участник

    4.796
    10
    AlTk, что за книжка?

    добавлено через 6 минут
    дюже заморочено, я про программу. проще и быстрее написать прогу, которая будет выбирать нужные данные и кидать их в эксель. можно сразу ее озадачить и графики строить там же.
     
  20. Pasha

    Pasha Активный участник

    4.442
    1
    И что там сложного в этом ОЛЕ? Для выполнения задания такого уровня (экспорт данных из БД в эксель) мне было достаточно двух дней практики.

    А программу для преобразования этого файла в CSV могу написать за пару часов ( с обедами и чаями ), если автору это надо. Хотя, как я думаю, Kot.85 предлагает вполне хороший вариант.
     
  21. AlTk

    AlTk Читатель

    10.692
    0
    Kot.85,
    Книга: Программирование OLE. Освой самостоятельно за 21 день
    Авторы: Лоуренс Харрис
    Издательство: "Бином"
    Переплет: мягкий, год издания: 1995, страниц: 464
    ISBN: 5-7503-0056-0, 0-672-30568-2, тираж: 12000 экз.,
    но ни в коем случае не рекомендую ничего по ней изучать. просто прочитать один раз и все, а иначе мозг взорвется.

    лучше начать с Д.Роджерсона. "Основы СОМ"

    "... проще и быстрее написать прогу ..."
    с некоторых пор я не уверен в этом.

    Pasha,
    "... И что там сложного в этом ОЛЕ ..."
    ну-ну.
    мы про разное "оле" говорим ;)

    добавлено через 1 минуту
    Pasha,

    "... Kot.85 предлагает вполне хороший вариант ..."
    да согласен. но я предлагаю лучше. ;)
     
  22. Kot.85

    Kot.85 Активный участник

    4.796
    10
    поподробней механизм расписать можно что предлагается?
     
  23. AlTk

    AlTk Читатель

    10.692
    0
    Kot.85,
    "... что предлагается? ..."
    предлагается возможность декларативной настройки изменения структуры файла для правильного его открытия в Excel.
    без привязки к какому-либо языку программирования, без знания объектных моделей приложений и т.д. и т.п.
    без перепрограммирования в случае изменения структуры файла.
     
  24. Kot.85

    Kot.85 Активный участник

    4.796
    10
    AlTk, задумка хорошая, но думаю к данной ситуации она сложно применима, эт получается из пушки по воробьям, да и думаю ресурсов она будет кушать много, а если написать маленькую прогу, которую можно будет в шелдер закинуть, то думаю будет самый оптимальный вариант.
     
  25. AlTk

    AlTk Читатель

    10.692
    0
    Kot.85,
    это не задумка. это реалии.

    "... но думаю к данной ситуации она сложно применима, эт получается из пушки по воробьям, да и думаю ресурсов она будет кушать много, а если написать маленькую прогу, которую можно будет в шелдер закинуть, то думаю будет самый оптимальный вариант. ..."
    мне почему-то кажется, что мне трудно будет Вам объяснить преимущества моего варианта.
     
  26. Kot.85

    Kot.85 Активный участник

    4.796
    10
    AlTk, попробуйте. просто из опыта работы: в больщенстве случаев используют решения "тупые как кирпич" вместо чего-то персективного и лучшего. причин много, от технической невозможности внежрения, до нежелания персонала/начальства разбираться в чем-то новом, если старое работает хорошо.
     
  27. AlTk

    AlTk Читатель

    10.692
    0
    попробую.
    1. ресурсы не важны. сейчас за копейки можно купить много оесурсов. к тому же та обработка текста, о которой мы говорим, не является ресурсоемким приложением
    2. зачем вообще писать прогу, зачем тратить ресурсы программиста на написание маленькой проги? программиста может не быть. на чем писать прогу? как быть с поддержкой этой проги? что делать если прогу надо по какой-либо причине изменить
    3. да какая разница где эта прога торчит. пусть хоть на весь экран. лишь бы свое дела лелала.

    ПС. ну и чем же предлагаемое Вами решение перспективнее и лучше? зря Вы не нажали на приведенную мной ссылку. или нажали и не посмотрели или не знаете о чем идет речь.
    короче Вам хватит 2250 долларов для того, чтобы реализовать весь приведенный функционал?
    если Вы скажете, что весь функционал не нужен, и сделаете дешевле, то тогда мой впрос будет звучать так: на какой хрен мне поделка студента-программиста, которая с трудом может обработать файл определенного вида, если я за 39 долларов получу полноценный функционал, реализованный в фирменном продукте, завоевавшем множество наград, плюс техподдержку, пусть и для работы на одном компьютере?
     
  28. Kot.85

    Kot.85 Активный участник

    4.796
    10
    AlTk, ох как! эт как ресурсы не важны? а куда же деть оптимизацию? для чего тогда писались архиваторы? вот тут я с вами категорически не согласен. купить их за копейки... ну это уже от конкретной задачи стоимость будет формироваться. про обработку текста: сама обработка мало требует, а вот софтина которая ее обрабатывает может быть довольно прожорливой.
    по пункту 2 и 3. по вашему программер должен только глобальные проекты делать? ресурсы программера тратятся на написание проги, а уж маленькая она или большая - пофих. по поводу изменения программы - если исходник менять, то да, без программера никак, а если есть возможность подключать плагины/модули? существует много способов расширения. и еще, где прога "торчит" имеет очень большое значение, относящиеся к тем же ресурсам.

    п.с. прогу по вашей ссылке я скачал, посмотрел и попробовал. ничего сверхъестественного в ней нет.
    я скажу, что весь функционал мне не нужен, а нужно лиш то, то и то, тогда вопрос звучит так, а на какой хрен мне платить 40 бакинских за то чем я пользоваться не буду? и почему студент-программист напишет "поделку"? почему софт будет с трудом работать? откуда столько негатива сразу?
     
  29. Pasha

    Pasha Активный участник

    4.442
    1
    эээ... это как? оптимизацию не девают, а ее придумывают и внедряют
    Т.е. интерфейс более ресурсоемкий, чем обработка данных? Что-то тут не так...
    Ну, я думаю, главное преимущество - какая-то надежда на продолжение поддержки и усовершенствование платного варианта программы. Со студентом все посложнее конечно, потому что гарантий он никаких не даст... А с остальным - согласен, приложения могут быть разработаны в профессиональном смысле грамотно, и в данном конкретном случае еще и под конкретную задачу. Главное - грамотный студент ;)


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

    AlTk, Kot.85,
    я думаю, что Вы предложили уже достаточно обоснованные точки зрения, чтобы автор топика смог исходя из них выбрать более подходящее для него решение - может, ему главное сделать это быстро и бесплатно, или ориентироваться на долгосрочное использование.
     
  30. HELL'o

    HELL'o Активный участник

    5.125
    240
    Спасибо всем за нужные советы.
     
Статус темы:
Закрыта.