Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 3 из 4 ПерваяПервая 1 2 3 4 ПоследняяПоследняя
Показано с 21 по 30 из 35

Тема: strcmp

  1. #21
    Аватар для PawnoNoob
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±
    Цитата Сообщение от Anton Styazhkin Посмотреть сообщение
    Это точно ошибка в коде. Потому что даже тот вариант, что я скинул, работает хорошечно.
    Вот этот?
    PHP код:
    new str1[7] = "Строка",
        
    str2[7] = "qwerty";
        
    if (
    isnull(str2))
    {
        print(
    "Я вызываюсь, чтобы пустые строки сравнивать чтоле?!");
    }
    else
    {
        if (!
    strcmp(str1str2))
        {
            print(
    "Строки одинаковы!");
        }
        else
        {
            print(
    "Строки разные!");
        }

    - - - Добавлено - - -

    Чтобы не создавать курилку в данной теме, просто для примера напишу систему (не ту, что хотел реализовать я, из совпадений лишь запрос и паблик), в которой всё конкретно будет расписано:
    PHP код:
    CMD:test(playerid
    {
    new 
    query[много-много];
    format(querysizeof(query), "SELECT * FROM `accounts` WHERE `number` = '%i'"PlayerInfo[playerid][number]);
    mysql_function_query(mysqlquerytrue"Название""i"playerid);

    теперь сам паблик:
    PHP код:
    public Название(playerid)
    {
    new 
    rowsfields;
    cache_get_data(rowsfields);
    if(
    rows)
    {
    // здесь нужно сравнить с нулём, допустим, PlayerInfo[playerid][Test].
    // если PlayerInfo[playerid][Test] равно нулю, то показываем определённый диалог.
    if....
    {
    ShowPlayerDialog....
    }
    // если же не равно нулю, то выполняем другое действие.
    else
    {
    SendClientMessage...
    }
    return 
    1;
    }

    Теперь немного о PlayerInfo[playerid][Test]:
    • Загружается при авторизации после ввода пароля.
    • В базе данных имеет значение по умолчанию 0.

    Вот, вроде бы всё. :) Не могу понять, что нужно сделать, чтобы найти 0 в PlayerInfo[playerid][Test].
    В общем, всё подробно расписано вот здесь, ну и вот тута видно, что это "дело" загружается из базы данных при авторизации и оно равно нулю.

  2. #22
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от PawnoNoob Посмотреть сообщение
    Вот этот?
    PHP код:
    new str1[7] = "Строка",
        
    str2[7] = "qwerty";
        
    if (
    isnull(str2))
    {
        print(
    "Я вызываюсь, чтобы пустые строки сравнивать чтоле?!");
    }
    else
    {
        if (!
    strcmp(str1str2))
        {
            print(
    "Строки одинаковы!");
        }
        else
        {
            print(
    "Строки разные!");
        }

    - - - Добавлено - - -

    Чтобы не создавать курилку в данной теме, просто для примера напишу систему (не ту, что хотел реализовать я, из совпадений лишь запрос и паблик), в которой всё конкретно будет расписано:
    PHP код:
    CMD:test(playerid
    {
    new 
    query[много-много];
    format(querysizeof(query), "SELECT * FROM `accounts` WHERE `number` = '%i'"PlayerInfo[playerid][number]);
    mysql_function_query(mysqlquerytrue"Название""i"playerid);

    теперь сам паблик:
    PHP код:
    public Название(playerid)
    {
    new 
    rowsfields;
    cache_get_data(rowsfields);
    if(
    rows)
    {
    // здесь нужно сравнить с нулём, допустим, PlayerInfo[playerid][Test].
    // если PlayerInfo[playerid][Test] равно нулю, то показываем определённый диалог.
    if....
    {
    ShowPlayerDialog....
    }
    // если же не равно нулю, то выполняем другое действие.
    else
    {
    SendClientMessage...
    }
    return 
    1;
    }

    Теперь немного о PlayerInfo[playerid][Test]:
    • Загружается при авторизации после ввода пароля.
    • В базе данных имеет значение по умолчанию 0.

    Вот, вроде бы всё. :) Не могу понять, что нужно сделать, чтобы найти 0 в PlayerInfo[playerid][Test].
    В общем, всё подробно расписано вот здесь, ну и вот тута видно, что это "дело" загружается из базы данных при авторизации и оно равно нулю.
    А так не сработает?

    PHP код:
    public Название(playerid)
    {
        new 
    rowsfields;
        
    cache_get_data(rowsfields);
        if(
    rows)
        {
            if (
    isnull(PlayerInfo[playerid][Test]))
            {
                
    // пусто
            
    }
            else
            {
                
    // не пусто
            
    }
        }
        return 
    1;

    Можно в БД указывать на "пустую строку" некое слово, 'none' например))

  3. Пользователь сказал cпасибо:
    PawnoNoob (17.08.2016)
  4. #23
    Аватар для PawnoNoob
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±
    Цитата Сообщение от Anton Styazhkin Посмотреть сообщение
    А так не сработает?

    PHP код:
    public Название(playerid)
    {
        new 
    rowsfields;
        
    cache_get_data(rowsfields);
        if(
    rows)
        {
            if (
    isnull(PlayerInfo[playerid][Test]))
            {
                
    // пусто
            
    }
            else
            {
                
    // не пусто
            
    }
        }
        return 
    1;

    Можно в БД указывать на "пустую строку" некое слово, 'none' например))
    Я пробовал так делать, выполнялся else всё равно
    Насчёт слова думаю, что пусть будет ноль лучше

  5. #24
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от PawnoNoob Посмотреть сообщение
    Я пробовал так делать, выполнялся else всё равно
    Насчёт слова думаю, что пусть будет ноль лучше
    Узнай тогда первый символ строки, может он и не пустой вовсе.

    PHP код:
    printf("%c"PlayerInfo[playerid][Test][0]) 

  6. Пользователь сказал cпасибо:
    PawnoNoob (17.08.2016)
  7. #25
    Аватар для Nash_Brigers
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.03.2016
    Адрес
    Moscow
    Сообщений
    167
    Репутация:
    44 ±
    Проще можно сделать, если в строке только "символы и буквы":
    PHP код:
    new
        
    string_1[10] = "привет",
        
    string_2[10];

    if(
    string_1[1])
    {
        
    //второй символ занят - выдаст истину
    }
    else{}

    if(
    string_2[1]){}
    else
    {
        
    //второй символ не занят - выдаст false

    Это мой личный загон, не навязываю метод)
    p.s. не обязательно именно с вторым символом мутить, смысл думаю ясен.
    Последний раз редактировалось Nash_Brigers; 16.08.2016 в 11:58.
    Член сообщества Green Square.

  8. Пользователь сказал cпасибо:
    PawnoNoob (17.08.2016)
  9. #26
    Аватар для PawnoNoob
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±
    Цитата Сообщение от Anton Styazhkin Посмотреть сообщение
    Узнай тогда первый символ строки, может он и не пустой вовсе.

    PHP код:
    printf("%c"PlayerInfo[playerid][Test][0]) 
    Дык он нулю равен, не пустой.

  10. #27
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от PawnoNoob Посмотреть сообщение
    Дык он нулю равен, не пустой.
    Тогда смысла на пустой символ сравнивать нет. Можно тупо тогда
    PHP код:
    if (хз[0] == '0')
    {


    Или по методу Nash_Brigers можно.

  11. Пользователь сказал cпасибо:
    PawnoNoob (16.08.2016)
  12. #28
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от Nash_Brigers Посмотреть сообщение
    Проще можно сделать, если в строке только "символы и буквы":
    PHP код:
    new
        
    string_1[10] = "привет",
        
    string_2[10];

    if(
    string_1[1])
    {
        
    //второй символ занят - выдаст истину
    }
    else{}

    if(
    string_2[1]){}
    else
    {
        
    //второй символ не занят - выдаст false

    Это мой личный загон, не навязываю метод)
    p.s. не обязательно именно с вторым символом мутить, смысл думаю ясен.
    Подойдёт только для массивов, в которых 2 и более ячеек.
    Если же в массиве всего одна ячейка - выйдешь за его пределы.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  13. Пользователь сказал cпасибо:
    PawnoNoob (17.08.2016)
  14. #29
    Аватар для PawnoNoob
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±
    Цитата Сообщение от Anton Styazhkin Посмотреть сообщение
    Тогда смысла на пустой символ сравнивать нет. Можно тупо тогда
    PHP код:
    if (хз[0] == '0')
    {


    Или по методу Nash_Brigers можно.
    Хм, если честно, то я даже и не знал, что можно вставлять значения в кавычки.
    Сделал вот так:
    PHP код:
    if(PlayerInfo[playerid[Test] != '0')
    {
    // здесь выполняем действие.
    }
    else
    {
    // а здесь показываем диалог.

    Правильно ли будет?
    (за табуляцию извиняйте, в браузере вроде как незя)

  15. #30
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от PawnoNoob Посмотреть сообщение
    Хм, если честно, то я даже и не знал, что можно вставлять значения в кавычки.
    Сделал вот так:
    PHP код:
    if(PlayerInfo[playerid[Test] != '0')
    {
    // здесь выполняем действие.
    }
    else
    {
    // а здесь показываем диалог.

    Правильно ли будет?
    (за табуляцию извиняйте, в браузере вроде как незя)
    А попробовать? Можно так.

    PHP код:
    main()
    {
        new 
    str[3] = "qw";
        if (
    str[0] != 'q')
        {
            print(
    "Первый символ - не \'q\'");
        }
        if (
    str[0] == 'q')
        {
            print(
    "Первый символ - \'q\'");
        }

    Поэкспериментируй)

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Подойдёт только для массивов, в которых 2 и более ячеек.
    Если же в массиве всего одна ячейка - выйдешь за его пределы.
    Если массив с предопределенным размером, то ничего страшно не будет.
    Последний раз редактировалось Desulaid; 16.08.2016 в 14:30.

  16. Пользователь сказал cпасибо:
    Nash_Brigers (18.08.2016)
 

 
Страница 3 из 4 ПерваяПервая 1 2 3 4 ПоследняяПоследняя

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

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

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

Ваши права

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