Проблема с массивом

Тема в разделе "Программирование / Скриптинг", создана пользователем Vit_ amin, 21 янв 2016.

  1. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.051
    Симпатии:
    345
    1. Имеется какой-то массив, с размером 128
    2. С помощью функции я получаю SteamID игрока и заношу его в новый массив с 32 размером (к примеру)
    3. С помощью какой-то функции я вырезаю все из нового массива, кроме 4ех последних цифр STEAM ID
    4. Проверяю, если есть эти 4 цифры в массиве размером 128, тогда делаю что-то, иначе что-то делаю и заношу эти 4 цифры в массив.
    P.S. Можете набросать код, туго идет с данным алгоритмом ...
     
  2. selax

    selax

    Сообщения:
    1.044
    Симпатии:
    211
    Vit_ amin, ну вы и задачку задали... :)
    В пункте 2 обязательно заносить Steam ID или тоже можно 4 цифры?
     
  3. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    всмысле если 28,29,30,31 элементы совпадают с 124,125,126,127 элементами ?
     
  4. gibs

    gibs Фитиль народного волненья

    Сообщения:
    536
    Симпатии:
    133
    Какой-то упоротый метод хранения данных)
     
  5. selax

    selax

    Сообщения:
    1.044
    Симпатии:
    211
    Я правда не знаю что я написал, но как то примерно так оно будет...
    Код если что 100% нерабочий, просто набросок... :)

    PHP:
    char steamid_128    128 ] [ ];
    char steamid        32 ] [ 32 ];

    void CheckSteamID ( )
    {
        
    // Заносим steamid из какойта функции в массив
        
    for ( int i 1<= MaxClientsi++ )
        {
            
    ev.GetString "networkid",    steamid ], sizeof steamid ] ) );
        }
        
        
    // узнаем номер ячейки последнего символа
        
    for ( int i 032i++ )
        {
            
    int size 0;
            
            
    // перебираем массив из 32 steamid по 32 (не всегда) символа
            // Нужно, так как размер steamid бывает разный на сколько я знаю;
            
    for ( int x 032x++ )
            {
                if ( 
    steamid ] [ ] = '\0' )
                {
                    
    // не уверен что -1 нужно делать
                    
    size--;
                    break;
                }
            }
            
            
    // отрезаем у массива переднюю часть, оставляя 4 символа последних
            
    strcopysteamid ], sizeofsteamid ] ), steamid size ] );
        }
        
        
    // перебираем массив из 32 steamid по 4 символа
        
    for ( int i 032i++ )
        {
            
    // перебираем массив из 128 steamid по 4 символа
            
    for ( int x 0128x++ )
            {
                
    // Если символы совпадают переходим к следующему steamid
                
    if ( StrEqual steamid_128 ], steamid ], false ) )
                {
                    
    // тут вы можете делать что то если строки не совпали
                    
    break;
                }
                
                
    // Если строчка пустая - значит предыдущая запись была последней
                // Следовательно можем занести в эту
                
    if ( StrEqual steamid_128 ], ""false ) )
                {
                    
    // на сколько я знаю так нельзя делать, для примера просто
                    
    steamid_128 ] = steamid ];
                    
                    
    // тут вы можете делать что то если строки не совпали
                
    }
            }
        }
    }
     
  6. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.051
    Симпатии:
    345
    Спасибо, попробую.
     
    Последнее редактирование: 21 янв 2016