Чтобы нарезать строку типа "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]='апельсин'
Примечание — переменная-массив (в примере "МойМассив") автоматически очищается.
Неактивен