БАГ Не работает регулярное выражение в списке



  • @BabloUser Я не могу ничего объяснить не видя этого. Старый проект в этой версии БАС работает?



  • @Denis_krsk
    Этот проект написан был на этой версии.
    Сейчас переустановлю бас посмотрю как себя поведет.
    В чем прикол что попробовал изменить в кубике "читать фаил в список" путь к другому файлу и регулярка перестала работать даже если в него скопировать опять те же два кубика из рабочего проекта. Теперь чтобы заработало нужно рабочий проект пересохранять и чистить все кроме этих двух кубиков.



  • @BabloUser увы, но @Denis_krsk прав. Регулярные выражения работают только со строками, без исключений.

    А теперь тест на внимательность! Вот два идентичных тестовых скрипта:
    Первый и Второй.

    Вопрос: Почему в первом скрипте регулярка не срабатывает, а во втором срабатывает?



  • @Fox
    Как вот это понимать?

    alt text

    в обоих случаях регулярка \d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}

    рабочий это скопированый и в нем все удалено

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



  • @Fox Интересно конечно и именно из-за этого я на 50% перешел на js т.к. в js я понимаю как работают методы, а в БАС экшенах одному разрабу известно. Была текстовая подробная документация в место видео помне было бы лучше.



  • @BabloUser Не заваливайте тест на внимательность.
    Если скопировать экшены из второго проекта в новый, то они тоже будут работать.
    Вопрос: Почему?



  • @Denis_krsk Не разочаровывайте меня, всё дело как раз в js. BAS тоже работает на JavaScript.

    Ну или скажите, если тема с загадками тухлая..



  • @Fox
    https://prnt.sc/is4cwj

    как вот это понимать? без загадок



  • @Fox Скопировал не работает :)



  • ребята объясните нормально что за фигня твориться почему в одном работает а в другом не работает? По человечески без загадок.

    в архиве приложено два проекта они подписаны
    0_1521218303030_2.zip

    Рабочий - Это скопираванный проект в котором регулярка работает в нем все удалено кроме 3 кубиков читаем, получаем данные регуляркой, вывыгодим в лог.
    Не рабочий - Это тот проект который создавался как новый, и все 3 кубика прописаны руками то есть не копированные из рабочего проекта.
    Функционал идентичный
    как вам такая загадка )
    p.s
    бас переустанавливал с полной очисткой от прежней версии, без результативно



  • This post is deleted!


  • @BabloUser Одному @Fox Известно :) Я не настолько хорошо знаю js, читаю по маленьку :)



  • @Denis_krsk это явный баг, либо в функционале самого баса либо на стороне моего компа.



  • первый

    var regexp_result = native("regexp", "first", JSON.stringify({
        text: VAR_NEW_LIST,
        regexp: "\u005cd"
    })) 
    if (regexp_result.length == 0) regexp_result = []
    else regexp_result = JSON.parse(regexp_result) VAR_ALL_MATCH = regexp_result.pop() 
    if (typeof(VAR_ALL_MATCH) == 'undefined' || !VAR_ALL_MATCH) VAR_ALL_MATCH = ""
    VAR_GROUP1 = regexp_result[0]
    if (typeof(VAR_GROUP1) == 'undefined' || !VAR_GROUP1) VAR_GROUP1 = ""
    VAR_GROUP2 = regexp_result[1]
    if (typeof(VAR_GROUP2) == 'undefined' || !VAR_GROUP2) VAR_GROUP2 = ""
    VAR_GROUP3 = regexp_result[2]
    if (typeof(VAR_GROUP3) == 'undefined' || !VAR_GROUP3) VAR_GROUP3 = ""
    if (regexp_result.length == 0) {
        VAR_GROUP1 = VAR_ALL_MATCH
    }
    

    второй

     VAR_NEW_LIST = (VAR_NEW_LIST).join(",") 
     var regexp_result = native("regexp", "first", JSON.stringify({
         text: VAR_NEW_LIST,
         regexp: "\u005cd"
     })) 
     if (regexp_result.length == 0) regexp_result = []
     else regexp_result = JSON.parse(regexp_result) VAR_ALL_MATCH = regexp_result.pop() 
     if (typeof(VAR_ALL_MATCH) == 'undefined' || !VAR_ALL_MATCH) VAR_ALL_MATCH = ""
     VAR_GROUP1 = regexp_result[0]
     if (typeof(VAR_GROUP1) == 'undefined' || !VAR_GROUP1) VAR_GROUP1 = ""
     VAR_GROUP2 = regexp_result[1]
     if (typeof(VAR_GROUP2) == 'undefined' || !VAR_GROUP2) VAR_GROUP2 = ""
     VAR_GROUP3 = regexp_result[2]
     if (typeof(VAR_GROUP3) == 'undefined' || !VAR_GROUP3) VAR_GROUP3 = ""
     if (regexp_result.length == 0) {
         VAR_GROUP1 = VAR_ALL_MATCH
     }
    

    во втором список всклеевается в строку, джойн об этом недвусмысленно намекает



  • @ruzne почему он так генерируется? где загвоздка?



  • @BabloUser said in БАГ Не работает регулярное выражение в списке:

    @ruzne почему он так генерируется? где загвоздка?

    VAR_NEW_LIST = (VAR_NEW_LIST).join(",") 
    

    VAR_NEW_LIST во втором не список, не объект и не коллекция, а строка



  • @ruzne так это понятно так почему редактор баса генерирует код неправильно из кубика?
    да и списки тут как бы не причем так как чтение из списка читается правильно в переменной список а не строки в одну строку. Если смотреть в редакторе.



  • @ruzne Блин, а я все пересмотрел, а на список даже не глянул и в голову не пришло, что стандартный кубик список может быть изменен. Только не пойму это вручную изменили или в какой-то версии БАС он так работал, или просто глюк :)



  • @BabloUser я не смотрел кубики я, это долго



  • @ruzne это баг именно порится через редактор в этом весь смысл.


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.