Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

  • Список
  •  » Quest Soft Player
  •  » FAQ: Как нарезать строку типа "12_345_67" или "яблоко|персик|апельсин" на составляющие

0    0    #1
12.07.2011 18:29

Olegus t.Gl.
Участник (+1049, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2866
Вебсайт

Как нарезать строку типа "12_345_67" или "яблоко|персик|апельсин" на составляющие

Чтобы нарезать строку типа "12_345_67" или "яблоко|персик|апельсин" на составляющие ("12", "345", "67" или "яблоко", "персик", "апельсин") можно воспользоваться следующим методом:

1. Создаём локацию с именем, например, "НарезатьСтроку" и помещаем в неё следующий код:

Код:

!Параметры
    ! 1. 0 - Строка с данными (тип: строка)
    ! 2. 1 - Имя массива, в элементы которого будут помещены данные (тип: строка)
    ! 3. 2 - Разделитель элементов в строке (тип: строка)
    ARGS[3]=0
!----------
Result=0
!----------
if $ARGS[0]='': EXIT
!----------
$ARGS['Строка']=$ARGS[0]
$ARGS['Массив']=IIF($ARGS[1]='','otg_НарезкаСтроки',$ARGS[1])
$ARGS['Разделитель']=IIF($ARGS[2]='','|',$ARGS[2])
!----------
killvar $ARGS['Массив']
!----------
$ARGS['Строка']+=$ARGS['Разделитель']
:метка_перебор
ARGS['Поз']=instr(1,$ARGS['Строка'],$ARGS['Разделитель'])
if ARGS['Поз']>0:
    $ARGS['Элемент']=mid($ARGS['Строка'],1,ARGS['Поз']-1)
    if isnum($ARGS['Элемент']):
        dynamic "<<$ARGS['Массив']>>[]=<<val($ARGS['Элемент'])>>"
    else
        dynamic "$<<$ARGS['Массив']>>[]='<<replace($ARGS['Элемент'],'''','''''')>>'"
    end
    Result=-1
    !----------
    $ARGS['Строка']=mid($ARGS['Строка'],ARGS['Поз']+1)
    jump 'метка_перебор'
end

2. Вызываем эту локацию со следующими параметрами:

Код:

GS 'НарезатьСтроку', '12_345_67', 'МойМассив', '_'

или

Код:

GS 'НарезатьСтроку', 'яблоко|персик|апельсин', 'МойМассив', '|'

3. В результате получаем заполненный значениями массив "МойМассив":

Код:

МойМассив[0]=12
МойМассив[1]=345
МойМассив[2]=67

или

Код:

$МойМассив[0]='яблоко'
$МойМассив[1]='персик'
$МойМассив[2]='апельсин'

Примечание — переменная-массив (в примере "МойМассив") автоматически очищается.


Прикрепленные файлы:
qsp_explode_string.zip, Размер: 776 байт, Скачано: 430

Неактивен

  • Список
  •  » Quest Soft Player
  •  » Как нарезать строку типа "12_345_67" или "яблоко|персик|апельсин" на составляющие

Powered by PunBB
© copyright 2001–2022 iFiction.Ru