Прива, чатлане!
Желаю нашему форуму в грядущем году роста аудитории, интересных идей и успешных их реализаций!!! А Джону Енотовичу -- не менее продуктивного года работы, полную норку добычи и прочих енотских радостей =)
Вот хотел к празднику выкатить скриптец, способный самостоятельно определять день недели на основе текущей/вводимой даты (первый
алгоритм отсюда). Уже прописал переменные, записал исходные данные в массивы (по крайней мере, намеревался), дохожу до того места, где пора уже считывать данные.. Ан нет, функция ГетУер захлёбывается, когда подсовываешь ей кавычки:
Подскажите кто-нибудь секрет, как вы организовываете доступ к виртуальным переменным/массивам, которые нужно задать не явно, не напрямую, а к примеру скопом по шаблону. Схожий трабл у меня возникает временами и с другими строковыми функциями (на месте кавычек -- нераспознанные символы). Кстати, впервые сегодня создаю скрипт в 4.13.007 (после перехода с .003).
Собсна, большая часть написана, осталась пара шагов до завершения, и.. вот такой казус)
[spoiler=PerpetualCalendar.cms]
// 29.12.2017
#name "Montana"
//nd: DelPoMod,concatArrayFunc,matrixTranspond,varPrn-EdCtx,
logshow(1)
logclear
$dte=$_date_str
if($dte=0)
$dte=strconcat($_date_d,".",$_date_m,".",$_date_y)
end_if
$dt=strconcat($_date_d,".",$_date_m,".",$_date_y)
//$_time_str
$divdr=strcut(strfilter($_date_str,"0123456789",0),1,1)
//$divdr2=strcut(strfilter($_date_str,"0123456789",0),2,1)
//print(" ",$_date_str," ",strlen($_date_str)," ",$divdr," ",$dt)
strseparate($dte,$divdr,$fecha)
//print($fecha[2])
//jfmamjjasond
$jan="1,2,3,4,6,7,1,2,4,5,6,7,2,3,4,5,7,1,2,3,5,6,7,1,3,4,5,6"
$feb="4,5,6,7,2,3,4,5,7,1,2,3,5,6,7,1,3,4,5,6,1,2,3,4,6,7,1,2"
$mar="4,5,6,1,2,3,4,6,7,1,2,4,5,6,7,2,3,4,5,7,1,2,3,5,6,7,1,3"
$avr="7,1,2,4,5,6,7,2,3,4,5,7,1,2,3,5,6,7,1,3,4,5,6,1,2,3,4,6"
$may="2,3,4,6,7,1,2,4,5,6,7,2,3,4,5,7,1,2,3,5,6,7,1,3,4,5,6,1"
$nio="5,6,7,2,3,4,5,7,1,2,3,5,6,7,1,3,4,5,6,1,2,3,4,6,7,1,2,4"
$lio="7,1,2,4,5,6,7,2,3,4,5,7,1,2,3,5,6,7,1,3,4,5,6,1,2,3,4,6"
$aug="3,4,5,7,1,2,3,5,6,7,1,3,4,5,6,1,2,3,4,6,7,1,2,4,5,6,7,2"
$sep="6,7,1,3,4,5,6,1,2,3,4,6,7,1,2,4,5,6,7,2,3,4,5,7,1,2,3,5"
$oct="1,2,3,5,6,7,1,3,4,5,6,1,2,3,4,6,7,1,2,4,5,6,7,2,3,4,5,7"
$nov="4,5,6,1,2,3,4,6,7,1,2,4,5,6,7,2,3,4,5,7,1,2,3,5,6,7,1,3"
$dec="6,7,1,3,4,5,6,1,2,3,4,6,7,1,2,4,5,6,7,2,3,4,5,7,1,2,3,5"
$mes="jan,feb,mar,avr,may,nio,lio,aug,sep,oct,nov,dec"
//strcut(strfilter(strconcat("$",$meses[$mth]),",",0),$wk,1)
strseparate($mes, ",", $meses)
for($mth=0,$mth<12)
$mName=$meses[$mth]
for($wk=0,$wk<28)
SETVAR (strconcat("$m",$mth+1,"[",$wk,"]"), strcut(strfilter(strconcat("$",$meses[$mth]),",",0),$wk,1))
end_cyc
end_cyc
//strseparate($jan, ",", $m1)
if(strlen($fecha[2])=2)
$yr=$fecha[2]+2000
else
if(strlen($fecha[2])=4)
if(($fecha[2]>1900)&($fecha[2]<2097))
$yr=$fecha[2]
else
print("Year is out of bounds! (1901-2096) ")
halt
end_if
else
print("Year must have 2 or 4 digits!")
halt
end_if
end_if
$monthy=$fecha[1]
$dy=$fecha[0]
$rest=$yr-1900
$quantor=int($rest/28)
$shift=$rest-(28*$quantor)
print("Rest=",$rest," K=",$quantor," Shift=",$shift)
$row=strconcat("$m",$monthy,"[",$shift-1,"]")
$delta=getvar("$row")
//print(getvar("m12[4]"))
$tmpvar=getvar("$m12[4]")
print(" Tmp=",$tmpvar)
print(" m12[4]=",$m12[4])
print(" Row=",strconcat("m",$monthy,"[",$shift-1,"]")," / ",$row," Delta=",$delta)
halt
и подстановка в функции SetVar/GetVar с кавычками
[/spoiler]