Вторник, 02.12.2008, 17:20
 
 
Приветствую Вас Проезжий | RSS
[ Новые сообщения · Участники · Правила форума · Поиск! · RSS ]
Статистика Форума
Последние ответы Популярные темы Лучшие пользователи TOP 7
  • Годовалая девочка... [Обо Всём]
  • В США две 14-летн... [Обо Всём]
  • GTA 4 уже можно с... [GTA 4]
  • Литвинко или Литв... [Обо Всём]
  • Кто лучше делает ... [Графика и дизайн]
  • Что первее, гром ... [Обо Всём]
  • Баннер [Платные файлы]
  • Вопрос - Ответ (Ответов: 959)
  • Обсуждение мода CityLi... (Ответов: 923)
  • Задавайте сюда ваши во... (Ответов: 919)
  • Помощь новечкам по скр... (Ответов: 608)
  • Обратный отщёт от 500 (Ответов: 512)
  • Пошли всех на хуй тут! (Ответов: 508)
  • Pen1 LS v1.4 by ONEhel... (Ответов: 386)
  • MiX (Сообщений: 2609)
  • AXE (Сообщений: 2262)
  • OKStyle™ (Сообщений: 1934)
  • fAkm4n (Сообщений: 1728)
  • RockStarGamer (Сообщений: 1608)
  • DarkByte (Сообщений: 1315)
  • MAK (Сообщений: 1293)
  • Страница 1 из 212»
    Модератор форума: XAOC 
    Форум о GTA Multiplayers. GTA SA-MP, MTA, VC-MP, IV-MP. » San Andreas MultiPlayer » Wiki-Samp-Rus » token_by_delim
    token_by_delim
    JIeXaДата: Воскресенье, 10.08.2008, 16:27 | Сообщение # 1
    Местный

    Группа: Продвинутые
    Сообщений: 719
    Город: Челябинск
    Статус: status
    Первая моя статья!
    Это очень полезная функция!!!
    Она мне помогла сделать кланы из файла!
    ПРиступим к описанию:
    1. Она вытаскивает Вам из строки символы от начала и до указанново вами символа.
    2. Ей можно делать самые разные функции. Допустим:

    new colorr[256], index, nameglava[256];//создаём переменные
    newf=fopen("clans.txt",io_read);//открываем файл в формате "read"
    while(fread(newf,string,256) > 0)//читаем весь файл
    {
    index = 0;//на всякий случай приравниваем индекс к 0
    index = token_by_delim(string,clanforp,'=',index);//берём символы из строки string, до символа "=", и затем засовываем это в clanforp
    if(index == (-1)) continue;//если функция удалась то продолжаем
    index = token_by_delim(string,colorr,'=',index+1);//берём символы из строки string, до символа "=", и затем засовываем это в colorr(не забываем к indexу прибавить 1!)
    if(index == (-1)) continue;//если всё получилось то продолжаем
    index = token_by_delim(string,nameglava,';',index+1);//берём символы из строки string, до символа ";", и затем засовываем это в nameglava(не забываем к indexу прибавить 1!)
    if(index == (-1)) continue;//это просто так, т.к. дальше продолжать уже некуда, что нам требовалось мы выполнили!
    //и теперь можно сделать с этими данными всё что угодно! Допустим присвоить игроку цвет из переменной colorr.
    SetPlayerColor(playerid, strval(colorr);
    //либо присоединить игрока к клану, записанному в переменной clanforp!
    GetPlayerName(playerid, string, 256);
    format(string, 256, "%s_%s", clanforp, string);
    SetPlayerName(playerid, string);
    }//закрываем функцию

    3. Сама функция:

    token_by_delim(const string[], return_str[], delim, start_index)
    {
    new x=0;
    while(string[start_index] != EOS && string[start_index] != delim) {
    return_str[x] = string[start_index];
    x++;
    start_index++;
    }
    return_str[x] = EOS;
    if(string[start_index] == EOS) start_index = (-1);
    return start_index;
    }

    Надеюсь моя статья кому-нибудь поможет! И я надеюсь профи нашего сайта ещё не видели этой функции :)


    My works:
    [FS]Otmichka
    [FS]Music
    [FS]Clans & Spawn
    [FS]Time and Date
    [FS]Fireworks
    [FS]FixRus
    [FS]Fond
    [FS]Kill
    [FS]Lop&veh
    Scripts Package
    My ICQ 444154563
     
    SpiritДата: Воскресенье, 10.08.2008, 17:10 | Сообщение # 2
    Освоившийся

    Группа: Продвинутые
    Сообщений: 129
    Город: Омск
    Статус: status
    думаю профи лепят её самостоятельно когда им это требуется :), но спс, может пригодится

    Любиш садизм люби и мазахизм :)
     
    JIeXaДата: Воскресенье, 10.08.2008, 17:41 | Сообщение # 3
    Местный

    Группа: Продвинутые
    Сообщений: 719
    Город: Челябинск
    Статус: status
    :)

    My works:
    [FS]Otmichka
    [FS]Music
    [FS]Clans & Spawn
    [FS]Time and Date
    [FS]Fireworks
    [FS]FixRus
    [FS]Fond
    [FS]Kill
    [FS]Lop&veh
    Scripts Package
    My ICQ 444154563
     
    [SFD]EvilRiazДата: Воскресенье, 10.08.2008, 20:24 | Сообщение # 4
    Советчик

    Группа: Разработчики
    Сообщений: 1103
    Город: City of Los Angeles
    Статус: status
    Опередил меня =)

    Но всё равно хорошо crazy


    Где моя репа 0_o???
    Мои работы

    Кто хочет такую штучку смотрим сюда
    Current Developments: [SFD] TDM Mode, [GolNet] Big City Life [GF Mod]
     
    JIeXaДата: Понедельник, 11.08.2008, 05:46 | Сообщение # 5
    Местный

    Группа: Продвинутые
    Сообщений: 719
    Город: Челябинск
    Статус: status
    кстати я вначале не мог понять что она делает, когда понял сразу побежал делать кланы crazy

    My works:
    [FS]Otmichka
    [FS]Music
    [FS]Clans & Spawn
    [FS]Time and Date
    [FS]Fireworks
    [FS]FixRus
    [FS]Fond
    [FS]Kill
    [FS]Lop&veh
    Scripts Package
    My ICQ 444154563
     
    OKStyle™Дата: Понедельник, 11.08.2008, 19:19 | Сообщение # 6
    Джэдай

    Группа: Разработчики
    Сообщений: 1934
    Город: Оренбург
    Статус: status
    То же самое, что и strtok, только ищет другой символ wink



    Мои работы

    * Меню цветов

    Слова окстайла всегда правда © HITMAN07

     
    JIeXaДата: Вторник, 12.08.2008, 05:24 | Сообщение # 7
    Местный

    Группа: Продвинутые
    Сообщений: 719
    Город: Челябинск
    Статус: status
    хорошо а как он работает? стрток

    My works:
    [FS]Otmichka
    [FS]Music
    [FS]Clans & Spawn
    [FS]Time and Date
    [FS]Fireworks
    [FS]FixRus
    [FS]Fond
    [FS]Kill
    [FS]Lop&veh
    Scripts Package
    My ICQ 444154563
     
    OKStyle™Дата: Вторник, 12.08.2008, 08:31 | Сообщение # 8
    Джэдай

    Группа: Разработчики
    Сообщений: 1934
    Город: Оренбург
    Статус: status
    JIeXa, считывает данные до указанного символа в одну переменну, затем до следующего знака во вторую и т.д. По стандарту это " " (пробел), поэтому и пишут: /heal id hp. Можно указать "$", тогда будут писать: /heal$id$hp.



    Мои работы

    * Меню цветов

    Слова окстайла всегда правда © HITMAN07

     
    JIeXaДата: Вторник, 12.08.2008, 11:35 | Сообщение # 9
    Местный

    Группа: Продвинутые
    Сообщений: 719
    Город: Челябинск
    Статус: status
    а где изменять знак?

    My works:
    [FS]Otmichka
    [FS]Music
    [FS]Clans & Spawn
    [FS]Time and Date
    [FS]Fireworks
    [FS]FixRus
    [FS]Fond
    [FS]Kill
    [FS]Lop&veh
    Scripts Package
    My ICQ 444154563
     
    [SFD]EvilRiazДата: Вторник, 12.08.2008, 20:21 | Сообщение # 10
    Советчик

    Группа: Разработчики
    Сообщений: 1103
    Город: City of Los Angeles
    Статус: status
    Code
    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= [b]' '[/b]))
    {
    index++;
    }
    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }

    Где ' ', например '$'


    Где моя репа 0_o???
    Мои работы

    Кто хочет такую штучку смотрим сюда
    Current Developments: [SFD] TDM Mode, [GolNet] Big City Life [GF Mod]


    Сообщение отредактировал [DPS]EvilRiaz - Вторник, 12.08.2008, 20:22
     
    JIeXaДата: Среда, 13.08.2008, 05:18 | Сообщение # 11
    Местный

    Группа: Продвинутые
    Сообщений: 719
    Город: Челябинск
    Статус: status
    нет...
    это я просто тупанул...
    вот:
    stock strtok(const string[], &index,seperator=' ')
    {
    new length = strlen(string);
    new offset = index;
    new result[MAX_STRING];
    while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }

    result[index - offset] = EOS;
    if ((index < length) && (string[index] == seperator))
    {
    index++;
    }
    return result;
    }
    сепаратор изменять


    My works:
    [FS]Otmichka
    [FS]Music
    [FS]Clans & Spawn
    [FS]Time and Date
    [FS]Fireworks
    [FS]FixRus
    [FS]Fond
    [FS]Kill
    [FS]Lop&veh
    Scripts Package
    My ICQ 444154563
     
    LuxurYДата: Пятница, 15.08.2008, 15:44 | Сообщение # 12
    Уверенный

    Группа: Продвинутые
    Сообщений: 268
    Город: OZ
    Статус: status
    хороший код. я бы добавил учет экстра символов типа ("Hello!!!!!!!!world"), идентацию :) и установку значения start_index по дефолту на 0.
    и один вопрос. сам делал? crazy

    www.gtascript.ru admin
    www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
     
    [SFD]EvilRiazДата: Пятница, 15.08.2008, 16:12 | Сообщение # 13
    Советчик

    Группа: Разработчики
    Сообщений: 1103
    Город: City of Los Angeles
    Статус: status
    LuxurY, отвечаю за него: Статья его(пример использования) а функция нет(не бейте lol ). Кстати эта функция есть в одном GM(vehicles) из "Беты 0.2.5". Там был пример загрузки тачки из файлов. :)

    Где моя репа 0_o???
    Мои работы

    Кто хочет такую штучку смотрим сюда
    Current Developments: [SFD] TDM Mode, [GolNet] Big City Life [GF Mod]
     
    LuxurYДата: Пятница, 15.08.2008, 17:09 | Сообщение # 14
    Уверенный

    Группа: Продвинутые
    Сообщений: 268
    Город: OZ
    Статус: status
    Quote (|DPS|EvilRiaz)
    LuxurY, отвечаю за него: Статья его(пример использования) а функция нет(не бейте lol ). Кстати эта функция есть в одном GM(vehicles) из "Беты 0.2.5". Там был пример загрузки тачки из файлов. :)

    вот я и думаю что не мог он такого написать. писал кто-нибудь с уровнем знания как у Y_Less'a или ниже. но на самом деле функция очень простая. это уже профессионализм ))

    www.gtascript.ru admin
    www.gtascript.ru - профессиональный скриптинг SA-MP, MTA
     
    ХоммкоДата: Суббота, 16.08.2008, 11:13 | Сообщение # 15
    Новенький

    Группа: Продвинутые
    Сообщений: 67
    Город: Tomsk
    Статус: status
    а по-моему, token_by_delim написан самми кейманом (не факт).

    зы не нашел полезности функции в топике.
    ззы не по теме, но если у меня в строке ДВА пробела, strtok поймет это? напр. строка /ban id


     
    Форум о GTA Multiplayers. GTA SA-MP, MTA, VC-MP, IV-MP. » San Andreas MultiPlayer » Wiki-Samp-Rus » token_by_delim
    Страница 1 из 212»
    Поиск:

    Copyright SAMP-RUS© 2008