Menu

#34 В LibreOffice 5.3.1.2 - ошибки бейсика

2.9999
open
nobody
None
2023-05-11
2017-03-21
Igor Velkov
No

Версия: 5.3.1.2
ID сборки: e80a0e0fd1875e1696614d24c32df0f95f03deb2
Потоков ЦП: 4; Версия ОС: Windows 6.1; Отрисовка ИП: по умолчанию; Способ разметки: новый;
Локаль: ru-RU (ru_RU); Calc: group

Обновил офис. Теперь ничего не работает: принажатии на кнопки выскакивает окно ошибки бейсика
Например, кнопка расстановка ударений - "Синтаксическая ошибка BASIC.
Expected: )."
В функции AutoCode:
' сохраняем списки
With oACDlg.Model
Dim aArrayPS() As String : aArrayPS = .ParaStyleFindListBox.StringItemList
SaveArray( aArrayPS(), getOOoFBToolsSettingsDir() & sConstWorkParaStyle
Dim aArrayPF() As String : aArrayPF = .ParaFontFindListBox.StringItemList
SaveArray( aArrayPF(), getOOoFBToolsSettingsDir() & sConstWorkParaFont
Dim aArrayCS() As String : aArrayCS = .CharStyleFindListBox.StringItemList
SaveArray( aArrayCS(), getOOoFBToolsSettingsDir() & sConstWorkCharStyle
Dim aArrayCF() As String : aArrayCF = .CharFontFindListBox.StringItemList
SaveArray( aArrayCF(), getOOoFBToolsSettingsDir() & sConstWorkCharFont
End With

На вид и правда скобочек не хватает. И так почти на многих кнопках.

Discussion

  • LRN

    LRN - 2017-04-02

    Тыкаешь в кнопку, открывается окно редактора Basic, он выделяет в тексте место, где не хватает скобки. Смотришь вниз, на строку состояния, там написан номер строки. Смотришь влево, на дерево файлов, там выделен файл. Записываешь и то, и другое. Жмёшь ОК. Появляется следующая ошибка. Записываешь опять. И так до тех пор, пока ошибки не кончатся. Потом проходишься по файлам, и добавляешь везде скобки. Потом тыкаешь кнопку ещё раз. Снова появятся ошибки, но уже в других местах. Повторяешь процесс, пока ошибки не кончатся.

     
  • Igor Velkov

    Igor Velkov - 2017-04-02

    Потом проходишься по файлам, и добавляешь везде скобки.

    как это сделать?

     
    • LRN

      LRN - 2017-04-03

      Тыкаешь в файл в дереве файлов слева, прокручиваешь его содержимое до нужной строки, дописываешь в конце строки правую скобку ")". Изменения тривиальные, поскольку раньше интерпретатор позволял именно незакрытые скобки в конце строки (незакрытые скобки в другом месте - это уже семантическая и/или синтаксическая ошибка).

       

      Last edit: LRN 2017-04-03
      • Starikov Sergey

        Starikov Sergey - 2017-04-07

        Пара вопросов:

        Не поделитесь докой на предмет идеальной спецификации (и столь же идеального направления эволюции) Basic'а?

        Как ниже сообщает разработчик, вероятный источник проблемы в самодеятельности редактора одной из версий офиса.
        Откуда следуют вопросы о возможных альтернативах и интеграции с СКВ, хотя бы не в общем случае, а в популярной реинкарнации git.
        Вы явно больше меня в теме, не поделитесь опытом?

         
        • LRN

          LRN - 2017-04-07

          Не поделитесь докой на предмет идеальной спецификации (и столь же идеального направления эволюции) Basic'а?

          Не поделимся. Наше утверждение было предположением, которое мы сделали исходя из сделанных нами наблюдений (ooofbtools не обновляли и не редактировали; LibreOffice обновили - ooofbtools сломался; сломался примерно одиаковым образом независимо у двух человек - значит дело в интерпретаторе в новой версии), а не на основе знания спецификации.

          Вы явно больше меня в теме, не поделитесь опытом?

          Не уверен, что от нас требуется. Мы всегда пользовались обычным текстовым редакторм для редактирования исходников, а git использовали через MSYS (конкретнее - MSYS2). Но, если честно, мы и на BASIC'е ничего не разрабатывали, был лишь короткий эпизод разработки расширения на Python'е, если речь идёт именно о деятельности, связанной с LibreOffice.

           
          • Starikov Sergey

            Starikov Sergey - 2017-04-07

            Я оперирую более полной моделью:
            В некоторой версии OOoFBTools редактором некоторой версии офиса был написан потенциально проблемный код. Правильно написан.
            При некоторой операции редактирования в редакторе другой версии офиса имитация искусственного интеллекта редактора преобразовала код из потенциально проблемного в проблемный.
            Но всё работало благодаря особенностям реализации интерпретатора.
            Потом отдельно пришло обновление офиса, в котором вышеупомянутый компромисс выпилили.
            Здравствуй сюрприз.

            Дык вся хитрость вопроса и заключается в интеграции с СКВ разработки в конкретном BASIC'е. ☺

             
            • Mike Kaganski

              Mike Kaganski - 2023-05-11

              :) Много лет прошло, я понимаю...
              Всё же - вот объяснение того, что произошло тогда: https://mikekaganski.wordpress.com/2019/11/09/when-legacy-justifies-errors/

              Из-за большого количества кода, переставшего работать из-за исправления в версии 5.3.1, мы откатили корректную проверку закрывающих скобок в 5.3.3, и восстановили в 6.3, причём только если компиляция кода идёт из IDE.

              И всё-таки это была ошибка в плагине. Ну нельзя серьёзно утверждать, что незакрытые скобки - это реально фича языка. В блоге есть пример кода, который при автозакрытии работает не так, как ожидает автор.

               
  • Igor Velkov

    Igor Velkov - 2017-04-03

    У меня эти файлы не редактируются.

     
    • LRN

      LRN - 2017-04-03

      Странно. Тогда попробуй редактировать их руками, в C:\Users\IgorVelkov\AppData\Roaming\LibreOffice\4\user\uno_packages\cache\uno_packages\<random name>\OOoFBTools.oxt\OOoFBTools\

       
      • Starikov Sergey

        Starikov Sergey - 2017-04-07

        Можно объяснить деятельностью антивируса.

         
  • dikbsd

    dikbsd - 2017-04-04

    Спасибо за сообщение. Я посмотрю, в чем там проблема.
    Беда, когда разработчики Офиса меняют многое в ядре и в StarBasic - масса кода "слетает".
    Будем править

     
  • dikbsd

    dikbsd - 2017-04-04

    Странно, куда-то исчезли многие скобки - видимо в прежней версии Офиса был какой-то сбор в редакторе Starbasic, но ТА версия StarBasic не была столько "принципиальной" к скобкам.
    Будем лечить.

     
  • Igor Velkov

    Igor Velkov - 2017-04-05

    Вот и ура - в 2.50 всё снова работает
    Спасибо!

     
  • dikbsd

    dikbsd - 2017-04-06

    Был какой-то сбой в редакторе Офиса, который поудалял много чего нужного в коде.. Странно все это...

     

Log in to post a comment.