Почему(?) Бейсик "думает", что у меня там брякпоинт, хотя его там нет! Вопрос на засыпку))

Charles Weyland

В упор не понимаю! С бейсиком ковыряюсь больше 10 лет! И сталкиваюсь с совершенно мне непонятным явлением!!Я запускаю свою же программу, и она останавливается на одной из строк, не выдавая ошибок! Нажимаю "Продолжить выполнение" - и она продолжает выполнение корректно. При повторном запуске это не выдаётся. Понаблюдайте сами. cкачать
22 ответа

Charles Weyland

вот, на какой строке у меня выдаётся ошибка:А вот второй кусок архива: cкачать


Charles Weyland

> Автор: Charles Weyland> вот, на какой строке у меня выдаётся ошибка:Наверное в ff меньше 8 символов ;)


Charles Weyland

Не, ff = "Вопрос: Какая операция позволяет размножить выделенный фрагмент документа"


Charles Weyland

> Автор: Charles Weyland> Не, ff = "Вопрос: Какая операция позволяет размножить выделенный фрагмент документа"У меня все работает, как надо.З.Ы. Немного критики:
  • Текст вопроса и вариантов ответов плохо читается из-за такого выбора цвета и шрифта;
  • Как я должен догадатся(не подсматривая в текстовичек ) что на вопрос:
    При редактировании слова "МАА" (курсор находится перед второй буквой А). Необходимо получить слово "МАМА". В режиме ЗАМЕНА количество введенных букв должно быть равно:
    Ответ должен быть:
    дв
    ?????
  • при неправильном ответе, мне выдало сообщение:
    Используйте общеупотребимые термины.
    А где взять список этих самых терминов? И если уж так ставится вопрос, то я не знаю режимов отображения документа в ворде, как:
  • электрон
  • обычн
  • структ
  • размет

  • Charles Weyland

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


    Charles Weyland

    Я не знаю режимов отображения документа в ворде, как:
    .. а зря)) Ведь они есть)))Вот только я нигде не нашёл, что именно это называется "режимом отображения документа".Я вообще нигде ни нашёл, как это вообще называется))P.S. описанная ситуация возникает в Excel 2007. По всей видимости, у тебя Excel постарше, а там эта ошибка не возникает. Видимо, баг в Excel 2007 SP1.


    Charles Weyland

    "Charles Weyland" <[removed_email]> сообщил/сообщила в новостях следующее: news:[removed_email]...> Автор: Charles Weyland> .. а зря)) Ведь они есть)))Нет, есть Разметка страницы, а не размет и т.д> P.S. описанная ситуация возникает в Excel 2007. По всей видимости, у тебя Excel постарше, а там эта ошибка не > возникает. Видимо, баг в Excel 2007 SP1.Тогда поубирай от функций символ $возможно в 2007 и ещё и СП1 его наконец-то вывели, как собирались давным давно


    Charles Weyland

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


    Charles Weyland

    ...Кстати. Бакс означает, что возвращаемый результат будет строковым (string), а его отсутствие - Variable. Поэтому в VBasic многие функции работы со строками дублируются: есть str - типа variable, и есть str$ - типа string. Lcase и Lcase$ и т.д. - та же фигня.


    Charles Weyland

    > Автор: Charles Weyland> ...Кстати. Бакс означает, что возвращаемый результат будет строковым (string), а его отсутствие - Variable. > Поэтому в VBasic многие функции работы со строками дублируются: есть str - типа variable, и есть str$ - типа string. > Lcase и Lcase$ и т.д. - та же фигня.Да?
    LCase FunctionReturns a String that has been converted to lowercase.


    Charles Weyland

    Ткнул F2 и убедился - ты прав.По всей видимости, такая фигня была раньше, поскольку я о ней читал в журнале MS на англ.языке в году, эдак, 2003.P.s. над знаниями английского стебаться не надо, они у меня отличные. MSDN переводил, который прошлой весной вышел.


    Charles Weyland

    > Автор: Charles Weyland> Ткнул F2 и убедился - ты прав.Мне больше интересно, помогло или нет> По всей видимости, такая фигня была раньше, поскольку я о ней читал в журнале MS на англ.языке в году, эдак, > 2003.А тут ты прав, раньше такая фигня была, но потом МС начало искоренять это. Вот я и сказал, что может быть таки они сделали что хотели> P.s. над знаниями английского стебаться не надо, они у меня отличные. MSDN переводил, который прошлой весной > вышел.Абсолютно не думал, даже. Потому, что знания английского у меня как раз и не очень


    Charles Weyland

    Игорь ГорбоносПопробуйте:Debug.Print LCase(Null) Debug.Print LCase$(Null)


    Charles Weyland

    > Автор: AndrF> Игорь ГорбоносДа то что оно работает, во всяком случае и на 2003-й версии офиса, я знаю.но почему останавливается на коде при отсутствии брекпоинта
    If LCase$(Left(ff, <b>8</b>)) = "вопрос: " Then
    варианты или в переменной ff меньше 8 символов или я предположил, что МС что-то сделало с поддержкой старых функций, которые оканчивались спец-символами, указывавших на тип возвращаемого значения.
    Не, ff = "Вопрос: Какая операция позволяет размножить выделенный фрагмент документа"
    На второе предположение пока ответа нет. Какие ещё варианты я упустил?


    Charles Weyland

    Да то что оно работает, во всяком случае и на 2003-й версии офиса, я знаю.
    Э... Вообще-же я код привел для того чтобы показать что функции работают по разному. В Help-е на LCase ошибка - должно быть:Returns a Variant (String) ...То бишь LCase может обработать и возвратить Variant в виде Null, а LCase$ уже нет, так как возвращает только строку.


    Charles Weyland

    [quot Игорь Горбонос]То бишь LCase может обработать и возвратить Variant в виде Null, а LCase$ уже нет, так как возвращает только строку.
    Да, это-же касается Left и Left$, ну и так далее.


    Charles Weyland

    О! Молодца! отличный пример.Значит, тенденция, описанная мной, всё-таки сохранилась.


    Charles Weyland

    > Автор: AndrF> Э... Вообще-же я код привел для того чтобы показать что функции работают по разному. В Help-е на LCase ошибка - > должно быть:>> Returns a Variant (String) ...Посыпаю голову пеплом, я думал пример именно для показа что обе функции есть в языке.>


    Charles Weyland

    Функции с символом $ справа не занимаются преобразованиями типов, поэтому они работают быстрее. Но таким функциям нужно явно скармливать только строковые аргументы, о чем должен позаботиться тот, кто пишет код (программист, наверное ;) , а не компилятор


    Charles Weyland

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


    Charles Weyland

    Да дело в том, что он стопится только один раз: только при запуске этого примера.Если(!) я войду в редактор кода до того, как запустить прорамму, а потом перейду в excel, и запущу - то нифига не стопится! Просто глюк)


    Charles Weyland

    По топеку: сталкивался с таким глюком раза три. Помогало просто тупое удаление строки и набивка её заново.