Описание вспомогательной функции


_ArrayToString

Объединяет ячейки массива в одну строку, разделяя указанным разделителем.

_ArrayToString($var_array[,$var_sdelim="|"[,$var_istart=0[,$var_iend=0]]])

Параметры

$var_array Массив для объединения
$var_sdelim [необязательный] Разделитель между элементами (один или несколько символов), по умолчанию |
$var_istart [необязательный] Индекс массива, от которого начинать объединение
$var_iend [необязательный] Индекс массива, в котором закончить объединение

Возвращаемое значение

Успех:Возвращает строку, которая содержит объединённые выбранные ячейки разделённые разделителем.
Ошибка:Возвращает "" (пустую строку), устанавливает @error:
@error:1 - Массив $var_array не является массивом
2 - $var_istart больше $var_iend
3 - Массив $var_array не является одномерным массивом

Функцию можно подключить через команду exect

См. также

StringSplit, _ArrayToClip

Примеры:
 Как создать кнопку?


exect=$var_aa=StringSplit('AAA|BBB|CCC|DDD|EEE|FFF','|',2)||_ArrayDisplay($var_aa)||$var_ss=_ArrayToString($var_aa,@TAB,1,5)||MsgBox(4096+64,'Результат','$var_ss') ;; пример объединение ячеек массива в одну строку, разделяя @TAB

exect=$var_s=##[input=BOX72]||$var_ap=_ArrayPermute(StringSplit('$var_s',Null,2))||_ViewValues($var_ap)||$var_ss=_ArrayToString($var_ap,@CRLF,1)||_ViewValues('$var_ss ')||FileWrite('c:\Test\anagam.txt','$var_ss') ;; создание анаграммы в введённого слова в диалоге, просмотр результата на каждом этапе и сохранение в файл anagam.txt (В анаграмму входят слова, с перестановкой всех букв заданного слова без повторов букв и точной длины)
exect=$var_s=##[input=BOX72]||FileWrite('c:\Test\anagam.txt',_ArrayToString(_ArrayPermute(StringSplit('$var_s',Null,2)),@CRLF,1)) ;; создание анаграммы в введённого слова в диалоге и сохранение в файл anagam.txt

exect=$var_s=##[input=BOX72]||FileWrite('c:\Test\anagam_'&'$var_s'&'.txt',_ArrayToString(_ArrayPermute(StringSplit('$var_s',Null,2)),@CRLF,1)) ;; создание анаграммы в введённого слова в диалоге и сохранение в файл anagam_слово.txt

imgpr=1 exect=$var_s=ClipGet()||$var_sz=(_ArrayToString(_ArrayPermute(StringSplit('$var_s','"''"',2)),'~~',1)) bufsr=##$var_sz||formt<sps36> ;; записать в буфер обмена анаграмму слова, находящегося в буфере обмена и разбить по 10 слов в строке. Если в слове более 10 символов, то для создание анаграммы понадобится длительное время

imgpr=1 exect=$var_sz=(_ArrayToString(_ArrayPermute(StringSplit(ClipGet(),'"''"',2)),'~~',1)) bufsr=##$var_sz||formt<sps36> ;; записать в буфер обмена анаграмму слова, находящегося в буфере обмена и разбить по 10 слов в строке. Если в слове более 10 символов, то для создание анаграммы понадобится длительное время
imgpr=1 exect=$var_s=##[input=BOX72]||$var_ap=_ArrayPermute(StringSplit('$var_s','"''"',2),'"''"',1)||$var_af=FileReadToArray('C:\dictionary.txt')||$var_ae=_ArrayDublElem($var_ ap,$var_af,1)||$var_s=_ArrayToString($var_ae,@CRLF) bufsr=##$var_s ;; отправить в буфер обмена все слова анаграммы введённого в диалоге слова, которые входят в состав словаря dictionary.txt (В список входят слова, с перестановкой всех букв заданного слова без повторов букв и точной длины)
exect=$var_s=##[input=BOX73]||$var_ar=StringRegExp(FileRead(@CRLF&'C:\dictionary.txt'&@CRLF),'[\r\n](['&'$var_s'&']+)[\r\n]',3)||_ViewValues($var_ar)||$var_s=_ArrayToString($var_ar,@CRLF) bufsr=##$var_s ;; отправить в буфер обмена все слова, составленные из введённых в диалоге букв, которые входят в состав словаря dictionary.txt (В список входят слова, с перестановкой всех букв заданного набора с повторами букв без точной длины)
exect=$var_s=##[input=BOX73]||$var_ar=StringRegExp(@CRLF&FileRead('C:\dictionary.txt')&@CRLF,'[\r\n](['&'$var_s'&']{3,6})[\r\n]',3)||_ViewValues($var_ar)||$var_s=_ArrayToString($var_ar,@CRLF) bufsr=##$var_s ;; отправить в буфер обмена все слова, составленные из введённых в диалоге букв, которые входят в состав словаря dictionary.txt (В список входят слова, с перестановкой всех букв заданного набора с повторами букв и длина 5 символов)
exect=$var_s=##[input=BOX73]||$var_ar=StringRegExp(@CRLF&FileRead('C:\dictionary.txt')&@CRLF,'[\r\n](['&'$var_s'&']{5})[\r\n]',3)||_ViewValues($var_ar)||$var_s=_ArrayToString($var_ar,@CRLF) bufsr=##$var_s ;; отправить в буфер обмена все слова, составленные из введённых в диалоге букв, которые входят в состав словаря dictionary.txt (В список входят слова, с перестановкой всех букв заданного набора с повторами букв и длина от 3 до 6 символов)
exect=$var_s=##[input=BOX73]||$var_ar=StringRegExp(@CRLF&FileRead('C:\dictionary.txt')&@CRLF,'[\r\n](['&'$var_s'&']{[input=BOX74],[input=BOX75]})[\r\n]',3)||_ViewValues($var_ar)||$var_s=_ArrayToString($var_ar,@CRLF) bufsr=##$var_s ;; отправить в буфер обмена все слова, составленные из введённых в диалоге букв, которые входят в состав словаря dictionary.txt (В список входят слова, с перестановкой всех букв заданного набора с повторами букв и длина задаётся в диалоге)
sends=c:\файл-список№1.txt??-1 exect=$var_s='' <FOR> 1 <TO> GLOBALSENDS<0> xends=c:\документ№2.txt??-1||formt<0!!(?m)(GLOBALSENDS<:INDEX:>.+)> exect=$var_s=GLOBALXENDS<0>>=6?'$var_s'&_ArrayToString($GLOBALXENDS,@CRLF,1)&@CRLF:'$var_s' <NEXT> asave=var_s||c:\документ№2_rez.txt||noarray<1> ;; извлечь все строки из файла c:\документ№2.txt в которых есть фразы из файла c:\файл-список№1.txt (количество строк равно или более 6-ти) и записать результат в файл c:\документ№2_rez.txt

sends=1,2,3??-6, GLOBALSENDS<a> exect=_ViewValues(_ArrayToString($GLOBALSENDS,'++',1)) ;; получить массив в строку с заданным разделителем


© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru