Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 10 из 10
  1. #1
    Аватар для somebodies
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.01.2017
    Сообщений
    30
    Репутация:
    0 ±

    strcmp и русские символы

    Привет! есть проблема связанная с функцией strcmp.
    Она некорректно сравнивает строчки, которые состоят из русских букв.
    эта проблема имеется во всех С-подобных языках, как я узнал из поисковика.
    однако решения на pawn не нашел.
    надеюсь на помощь, заранее благодарю.

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. #3
    Аватар для somebodies
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.01.2017
    Сообщений
    30
    Репутация:
    0 ±
    В инклудах этой библиотеки эту функцию искал, но эта функция указана лишь в списке функций, а фактически ее нет. Даже при подключении инклуда и прописывании memcmp при компиляции пишет: error 017: undefined symbol "memcmp"
    Либо я слепой, либо я что-то не так делаю, либо автор инклуда забыл вписать функцию?

  4. #4
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Цитата Сообщение от somebodies Посмотреть сообщение
    В инклудах этой библиотеки эту функцию искал, но эта функция указана лишь в списке функций, а фактически ее нет. Даже при подключении инклуда и прописывании memcmp при компиляции пишет: error 017: undefined symbol "memcmp"
    Либо я слепой, либо я что-то не так делаю, либо автор инклуда забыл вписать функцию?
    Код:
    stock
    	memcmp(const string1[], const string2[], n)
    {
    	// Converts the value to bytes.
    	#emit load.s.pri n // pri = n
    	#emit shl.c.pri 2 // pri <<= 2
    	#emit stor.s.pri n // n = pri
    	// Addresses..
    	#emit load.s.pri string1 // pri = string1
    	#emit load.s.alt string2 // alt = string2
    	// Compare the memory blocks
    	#emit cmps n
    	// Returns zero if the blocks are equal.
    	#emit retn
    	return 0;
    }

  5. Пользователь сказал cпасибо:
    somebodies (05.06.2017)
  6. #5
    Аватар для somebodies
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.01.2017
    Сообщений
    30
    Репутация:
    0 ±
    Цитата Сообщение от VVWVV Посмотреть сообщение
    Код:
    stock
    	memcmp(const string1[], const string2[], n)
    {
    	// Converts the value to bytes.
    	#emit load.s.pri n // pri = n
    	#emit shl.c.pri 2 // pri <<= 2
    	#emit stor.s.pri n // n = pri
    	// Addresses..
    	#emit load.s.pri string1 // pri = string1
    	#emit load.s.alt string2 // alt = string2
    	// Compare the memory blocks
    	#emit cmps n
    	// Returns zero if the blocks are equal.
    	#emit retn
    	return 0;
    }
    Спасибо. Впринципе, понял как работает функция, но для чего нужен аргумент "n"? не сильно разбираюсь в АМХ-конструкциях
    Последний раз редактировалось somebodies; 05.06.2017 в 02:27. Причина: переформулировка

  7. #6
    Аватар для somebodies
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.01.2017
    Сообщений
    30
    Репутация:
    0 ±
    К сожалению, данная функция также не помогла.
    Просьба о помощи все еще актуальна :c

  8. #7
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Код покажи, что-то мне подсказывает, что проблема не в этом.

  9. #8
    Аватар для somebodies
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.01.2017
    Сообщений
    30
    Репутация:
    0 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Код покажи, что-то мне подсказывает, что проблема не в этом.
    Я уже отдельно дебажил все части кода, которые участвуют в процессе сравнения (там данные для сравнения получаются из разных источников). Все работает. Но как дело доходит до сравнения, то все. Пиши пропало. Однако, может я кривой ( вероятнее всего ).
    Напишу в ЛС вам.
    Ибо участки там довольно запутанные, и придется расписывать скорее всего, а здесь это делать не совсем кошерно

  10. #9
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от somebodies Посмотреть сообщение
    Я уже отдельно дебажил все части кода, которые участвуют в процессе сравнения (там данные для сравнения получаются из разных источников). Все работает. Но как дело доходит до сравнения, то все. Пиши пропало. Однако, может я кривой ( вероятнее всего ).
    Напишу в ЛС вам.
    Ибо участки там довольно запутанные, и придется расписывать скорее всего, а здесь это делать не совсем кошерно
    Мог и здесь написать. В общем, проблема, скорее всего, связана с PVar. Подробнее здесь: http://pro-pawn.ru/showthread.php?13...править

  11. Пользователь сказал cпасибо:
    somebodies (05.06.2017)
  12. #10
    Аватар для somebodies
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.01.2017
    Сообщений
    30
    Репутация:
    0 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Мог и здесь написать. В общем, проблема, скорее всего, связана с PVar. Подробнее здесь: http://pro-pawn.ru/showthread.php?13...править
    Я уже натыкался на эту тему. В первый раз вставил функцию не в тот stock.
    Попробовал сейчас с другой функцией. Работает. спасибо, что навел на эту мысль снова.
    Можно закрывать.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •