Меню

Синтаксическая ошибка basic неожиданный символ

Любимая мозоль

Автор Серж, 5 июня 2013, 09:55

0 Пользователи и 1 гость просматривают эту тему.

Друзья! Кто-нибудь встречался с ошибкой «Синтаксическая ошибка BASIC. Неожиданный символ: CRLF»?

Раньше мне приходилось часто ее видеть. Возникает после копирования кода из pdf или doc. Устраняется перенабором части кода и то не всегда.
Как я понимаю, связана с присутствием в коде какого-то непечатного символа.

Недавно опять встретил. Может кто сможет объяснить суть оного в более аргументированном виде.


Это одна строка разбита на две строки


+1
Это случается, когда длинные строки кода в угоду форматированию переносится со строки на строку. В редактор они так и вставляются — разными строками.
Нужно или символ подчеркивания добавить в конце первой строки, в качестве указания, что оператор еще не закончился, или просто разрыв строк удалить.
Кстати, это не единственная ошибка в этой серии. Если разрыв прошел по параметрам метода, можно нарваться и на сообщение вида «Синтаксическая ошибка BASIC. Неожиданный символ: ,.»


Да, действительно, возникает именно в местах, где текстовый редактор разделил одну строчку кода на две строки текста. Спасибо.


  • Форум поддержки пользователей LibreOffice, Apache OpenOffice

  • Главная категория

  • Basic

  • Любимая мозоль

vladimirr_B

0 / 0 / 0

Регистрация: 10.06.2017

Сообщений: 3

1

OpenOffice/LibreOffice

20.01.2021, 08:10. Показов 1164. Ответов 5

Метки нет (Все метки)


Добрый день! Возникла необходимость разработки макроса по LibbreOffice.
При попытке описания пользовательского типа при запуске возникает ошибка «Синтаксическая ошибка BASIC. Ожидается символ.»

Код:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Type tPerson
  Name As String
  Age As Integer
  Weight As Double
End Type
 
Sub Main
dim asd as string
dim a As tPerson
asd = "adasdad"
a= len (asd)
End Sub

Порывшись в интернете нигде не нашел что пользовательские типы не поддерживаются. В чем может быть проблема?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



badakhshan

Заблокирован

20.01.2021, 09:44

2

vladimirr_B, дело в том, что переменной a (As tPerson) нельзя присвоить число, имхо…

Попробуйте так:

Visual Basic
1
a.Weight = Len(asd)



0



vladimirr_B

0 / 0 / 0

Регистрация: 10.06.2017

Сообщений: 3

26.01.2021, 07:28

 [ТС]

3

Откорректировал. Но та же ошибка.

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
Type tPerson
  Name As String
  Age As Integer
  Weight As Double
End Type
 
Sub Main
dim asd as string
dim a As tPerson
asd = "adasdad"
a.Weight = len (asd)
End Sub



0



Alex77755

11464 / 3757 / 675

Регистрация: 13.02.2009

Сообщений: 11,097

26.01.2021, 09:46

4

Скорей всего зарезервированное имя name

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Type tPerson
  aName As String
  Age As Integer
  Weight As Double
End Type
 
Sub Main
dim asd as string
dim a As  tPerson
asd = "adasdad"
a.aName=asd
a.Age= len(asd)
a.weight=len(asd)/2
msgbox a.aname & chr(10) & a.age & chr(13) & a.weight
 
End Sub

Миниатюры

Проблема с пользовательским типом VBA
 



0



11464 / 3757 / 675

Регистрация: 13.02.2009

Сообщений: 11,097

26.01.2021, 09:50

5

И бейсик показывает разной подсветкой



0



11464 / 3757 / 675

Регистрация: 13.02.2009

Сообщений: 11,097

26.01.2021, 09:52

6

вот

Изображения

 



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

26.01.2021, 09:52

Помогаю со студенческими работами здесь

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

Написать программу, работающую с пользовательским типом, состоящим из 6 полей
Написать программу, работающую с пользовательским типом, состоящим из 6 полей:
— имя (15 символов)…

Работа с файлами прямого доступа с определенным пользовательским типом данных
Доброго времени суток. Недавно начал изучать C# до этого изучал Delphi. В Delphi при работе с…

Как вывести данные на консоль из вектора, параметризованного пользовательским типом, с помощью std::cout?
Добрый день, друзья!
Имеется структура
struct OMNOMNOM
{
Vector X;
double F;
}
которая…

Проблема с типом string
Выдаёт ошибку, как исправить

Проблема с типом string
Здравствуйте, мне нужно посимвольно пройтись по string commandCdWay, и пока цикл не дойдет до…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

6

Howdy, I’m not having much luck in attempting to get this a Sub Module in an embedded macro to work in this document. This document (attached) was given to me by a professor for an Options & Futures MBA class, to try to visualize option pricing, look at the ‘Greeks’, etc.. I realize this was intended to be run on a Windows machine, but the code doesn’t look too far off from VBA to try to get it working in OO. I’m currently running version 3.1, on Mac 0S 10.5.8.

The first problem, is that I opened the document as .xls, and resaved as .ods. since I hear that might help resolve the #NAME? errors that appear in the document. When I go to Tools->Macros->Organize Macros->OO Basic, and then click the Module 2 macro under OptionTradingWoorkbook2->Standard->Module2 (Edit) I get the following error when I go to try to compile the code:

BASIC Syntax Error
Expected: Sub

I attempted to verify the VBA code as OO Basic first by using an on-line converter, and there was no difference (verified by the unix diff command). I’ve never used VBA or macros in Excel, so I’m not sure what the problem here is..

Any pointers, suggestions, etc., on how to make this work would be very helpful, I have a quiz due Tuesday that depends on getting this working. If I can’t get it to work here, the next option will be to try to get Parallels working on my mac, but I’d like to see if it’s possible to get this working on OO first.

  • Печать

Страницы: [1]   Вниз

Тема: Правила BASIC не работают в макросах LibreOffice, или почему не едут лыжи?  (Прочитано 8960 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
MAMOHT

Дорогому All-у доброго времени суток и года!
«Всё было хорошо пока не занялся программированием…»
                                        «МАМОНТ. Copyright 11:21 29.06.2012 г.»
Как древний виндузятник порочащий весь и вся Человечную ОС по воле судьбы был приговорён к освоению софта под Линукс. И вот, при попытке написания макросов под LibreOffice, столкнулся с такими вот траблами:

При создании книжного макроса:

Sub MyCursor
  Dim Doc As Object
  Dim Cursor As Object
  Dim sPath As String

  Doc = StarDesktop.CurrentComponent
  Cursor = Doc.Text.createTextCursor()

Вот здесь выскакивает окно сообщения с надписью: «Свойство или метод не найдены: Text»

…..........
…........
  sPath = CurDir$
  MsgBox sPath
А здесь в сообщении чётко указана моя домашняя директория, но НЕ ТА директория в которой СЕЙЧАС открыт документ.

…......
End Sub

Проблема:
Из чьей кожи надо сделать бубен и какие изучить PAS, чтобы при составлении макроса на BASIC в LibreOffice 3.5.4.2 ID сборки: 350m1(Build:2) системы Ubuntu 10.04.4 всё-таки РАБОТАЛО правило Cursor = Doc.Text.createTextCursor() и как мне получить ТУ ТЕКУЩУЮ директорию в которой сейчас открыт АКТИВНЫЙ документ?

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

« Последнее редактирование: 29 Июня 2012, 15:56:47 от Чистый »


Оффлайн
Señor_Gaga

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

Если мне изменяет память — бейсик идет только для msWord.
Для ОО и LO есть свой скриптовый язык.


Оффлайн
MAMOHT

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

Если мне изменяет память — бейсик идет только для msWord.
Для ОО и LO есть свой скриптовый язык.

Вторую часть КАК-БЫ проблемы КАК-БЫ решил. Правда использованием не кратчайшего пути: это КАК-БЫ проехать в Париж через Владивосток. Нашёл описание на 114 странице книги Эндрю Питоньяк (Andrew Pitonyak)OpenOffice.org pro. Автоматизация работы.

Теперь к Señor_Gaga. Здесь точно КТО-ТО ошибается!!!

Переписываю дословно окно сообщения:
«Ошибка времени выполнения BASIC.
Свойство или метод не найдены: TEXT»


Оффлайн
brij

Не могу сейчас точно ответить на Ваш вопрос, но просто вспомнил, что у Питоньяка есть много чего по макросам ЛО. Наверняка, Вам уже это известно, но все же на всякий пожарный  ;) Если дружите с английским, то здесь http://www.pitonyak.org/oo.php/ можно найти очень много полезного, особенно мне когда-то сильно помог его «Macro document» http://www.pitonyak.org/oo.php/AndrewMacro.pdf. Там кстати, есть и его еще незаконченный список параллелей с VBA. Может пригодится.


Оффлайн
Dixi257


  • Печать

Страницы: [1]   Вверх

  • Summary

  • Files

  • Reviews

  • Support

  • Mailing Lists

  • Tickets ▾

    • bugs
    • Feature Requests
    • google_tickets
  • Wiki

  • Discussion

  • Donate

Menu

#39 Не работает в LibreOffice 6.4.0.3 (x64)



Status:
closed

Owner:
nobody

Labels:
None

Updated:


2020-03-05

Created:

2020-03-04

Private:
No

В LibreOffice 6.4.0.3 (x64) не работает ни один скрипт.

Сначала:

Синтаксическая ошибка Basic.
Переменная sID уже определена.

Потом:

Синтаксическая ошибка Basic.
Переменная oDocControlFrame уже определена.

И в самом конце:

Синтаксическая ошибка Basic.
Переменная oDoc уже определена.

Discussion

  • Starikov Sergey

    Какую версию расширения Вы используете?
    В 2.57 были исправления для совместимости с LibreOffice 6.4.

  • fb2_user

    Спасибо, проверю. Просто на странице загрузки последняя версия 2.56 🙂
    Да, 2.57 работает!

     

    Last edit: fb2_user 2020-03-04

  • Starikov Sergey

    • status: open —> closed
  • Starikov Sergey

    Исправил умолчательный файл.


Log in to post a comment.

Поговорим о новичке! Я не могу скомпилировать свою первую строку. Основная синтаксическая ошибка: ожидается символ

REM  *****  BASIC  *****
Type xyz
    Dim sheet as object
    Dim cell as object
    dim range as object
End Type


Sub Main

End Sub

Версия: 6.0.2.1 (x64) Идентификатор сборки: f7f06a8f319e4b62f9bc5095aa112a65d2f3ac89

Инструменты-> макросы-> редактировать макросы>

Компиляции

1 ответ

Лучший ответ

Dim объявляет локальные переменные внутри подпрограмм. В операторах типа он не используется.

Причина, по которой эту ошибку было сложно диагностировать, заключается в том, что похоже, что проблема в Type xyz, но с этой частью все в порядке. IDE выделяет все, что находится перед первым оператором Dim, что может быть незначительной проблемой синтаксического анализатора. Следующий код показывает, что даже комментарий может быть выделен!

Type xyz
    'This comment will be highlighted because of the Dim error.
    Dim sheet as object
End Type

Эта неточность обычна для любого компилятора. Сообщения об ошибках часто указывают на проблемы, а не говорят точно, в чем и где проблема.


0

Jim K
26 Май 2020 в 20:54

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Система poka yoke защита от ошибок error proofing
  • Синтаксическая ошибка basic метка arg1 уже определена