функции Функциите са вътрешни и външни Тук е даден списък на вътрешните функции. SIN (x) синус COS (x) косинус TAN (x) тангенс ARCTAN (x) аркустангенс LN (x) естествен логаритъм EXP (x) експонента ROUND (x) най-близкото цяло число до x ABS (x) абсолютна стойност на x INT (x) цялата част на аргумента RND (n) случайно число между 0 и n-1 RU (c) връща числото записано в колона c от реда, установен с командата НАРЕД UCELL(n) връща стринг от колона к от реда установен с командата НАРЕД COUNTRR(0) брой на редовете в текущата таблица COUNTCC(0) брой на колоните в текущата таблица COUNTR(c) брой непразни елементи в колона c COUNTC(r) брой непразни елементи в ред r POZI(x) ако x>0 връща x, иначе връща 0 NEGA(x) ако x<0 връща x, иначе връща 0 BLOCKR(1) първи ред от текущия блок BLOCKR(2) последен ред от текущия блок BLOCKC(1) първа колона от текущия блок BLOCKC(2) последна колона от текущия блок LENBASE(n) ако n=0 връща общата ширина на таблицата, иначе връща ширината до колона n. LENCELL(n) връща ширината на колона n CURR(0) връща текущия ред CURC(0) връща текущата колона FPARAM(n) ако n=0 връща брой подадени параметри при повикване на програмата, иначе връща параметър номер n DIV (a,b) резултат от целочислено деление MOD (a,b) остатък при целочислено деление TYP(r,c) връща типов код на елемент (r,c) от текущата таблица: 0 - празен 1 - текст 2 - цяло число 3 - десетична дроб 4 - дата * Забележка ако r е отрицателно число, връща дължината на думата (позицията на десния й край) записана в клетка (-r,c) SUM(r1,c1,r2,c2) блок-сума между клетките (r1,c1) и (r2,c2) COUNTRNZ(c1,c2) преброява непразните елементи в текущия ред между колони c1,c2 COUNTCNZ(r1,r2) преброява непразните елементи в текущата колона между редовете r1,r2 BCOUNT(р1,к1,р2,к2) Преборява колко непразни полета има в дадения блок. SORTED(р1,к1,р2,к2,кс,код$) Връща единица ако дадения блок р1,к1,р2,к2 е сортиран по колона кс и дадения код. код$ трябва да е от символите + - > <. EQU(r1,c1,r2,c2) връща 1 ако в клетките r1,c1 и r2,c2 има еднакви текстове и 0 в противен случай EXIST(r,c) връща 1 ако в клетката (r,c) има записано име на съществуващ файл EXISTP(р,к) Връща 1 ако в клетка (р,к) е записано името на съществуваща директория. EXISTFS(name) връща 1 ако файл посоченото име съществува (name е стринг). EXISTPS(name) връща 1 ако дирктория с посоченото име съществува (name е стринг). CBASENAME(n) Връща стринг- име на базовия файл ако n=0 текущата таблица; ако n=1 предпоследната (от стека на отваряните) ако n=2 ... от стека POSIT(r1,c1,r2,c2) прочита двете думи от клетки r1,c1 и r1,c2. Връща позицията от която първата се съдържа във втората или 0, ако не се съдържа. PRESENT (d$,r,c,код) прочита колона c от текущата таблица, започвайки от ред r. Връща реда, в който е намерена думата d$, или нула, ако я няма. "код" е указание за точно съвпадение. ако код=0, търси позизионно съвпадение; ако код=1, търси точно съвпадение. SCELL (r,c) връща стринг - прочетен от текущата таблица, клетка r,c. (без интервалите отдясно) MENU (0) Тук програмата спира, излъчва меню - прозорец и чака за натиснат бутон. Функцията Връща число - номер на бутон. Точките в менюто се прочитат от първа колона на текущата таблица. Тя трябва да има две колони и от 2 до 8 реда. Първия ред е служебен. Там е надписа на менюто. От втори (най-много до 8 ) ред в първа колона са точките, с които се надписват бутоните. Втора колона съдържа два надписа: В първи ред е заглавието на прозореца. Втори ред е за ключова дума в хелпа. SRESULT$ Това служебна променлива за резултат от изпълнението на последната програма. WEEK (n) Връща стринг - ден от седмицата ако n = 0, връща "Неделя" ако n = 1..6, връща "Понеделник".."Събота". MONTH (n) Връща стринг - месец n = 1..12. ако n = 1, връща "Януари" ... ако n = 12, връща "Декември". GWEEK (д,м,г) Връща ден от седмицата (0..6) за дадения ден (ден,месец,година). Ако д/м/г е нула, се взема стойност от текущата дата. DMONTH (м,г) Връща число - колко дни има в посочения месец (месец,година) ако месец или година =0 се взема текущия. PMENU(име, x,y) тук програмата спира и излъчва PopUp меню от координати x,y, записано в текстов файл с посоченото име. Ако в менюто има записани команди, те се изпълняват. Функцията връща 1 при успех. пример за меню - текст --------- начало -------------- Покупки (1) Регистър купени стоки (1,1) база REG_K_S Регистър фактури за покупки (1,2) база REG_K_F Продажби (2) Регистър продадени стоки (1,1) база REG_P_S Регистър фактури за продажби (1,2) база REG_P_F ---------край------------------- LENSTR(d$) Връща дължината на стринга d$. GETWIND(d$) Връща стринг- директория ако d$='' връща директорията на Windows. ако d$='%C' - текущата директория ако d$='%B' - инсталационната директория на Б4 (C:\B4W) *** Изключение ако d$='%XNAME' - проверява дали NAME е валидно име на файл и ако не е валидно, връща празен стринг '' GETOK(d1$,d2$,c) ============== ako c=1, Връща 1/0 отговор на запитване в двете думи Първата е заглавие на диалоговия прозорец, Втората се изобразява над бутона "Да" Бутонът "Помощ" задействува BHELP.EXE с втората дума и файл "USERHELP.TXT" ПРИМЕР: ..... е_съгласен GETOK( 'Да изтрия ли таблицата' , Име_на_табл,1) ако е_съгласен то изтр @Име_на_табл иначе стоп (1) ..... ============== ako c=2, излъчва кутийка, надписана с d1$, и разказ озаглавен с d2& разказа се прочита от текстов файл по следния начин: думата d2& трябва да съдържа някъде в средата си символа & и тогава лявата страна е заглавие на разказа, а дясната трябва да е точното име на текстов файл-съдържание. В този случай функцията връща винаги резултат 1 ПРИМЕР: разкажи GETOK( 'Грешка','Как да направим нов & HOWTOCREATE.TXT',2) ============== ako c=3, Връща 1 Показва съобщение от двете думи Първата е заглавие на диалоговия прозорец, Втората се изобразява над бутона "Да" ПРИМЕР: кажи GETOK( 'Проверката е извършена','Няма грешки',3) ============== ako c=5, Връща 1,2,3 Показва въпрос с три възможни отговора "да","не","отказ". ако е натиснат "не" връща 1 ако е натиснат "отказ" връща 2 ако е натиснат "не" връща 3 ПРИМЕР: кажи GETOK('Внимание','Текущата програма ще бъде обновена',5) --------- край на функцията GETOK------------ MONTHN(s$) Връща номер на месеца зададен като дума например MONTHN('Април') връща 4; ако името не е валидно, връща 0 WEEKN(s$) Връща номер на деня от седмицата, зададен като дума например WEEKN('Сряда') връща 3 ако името не е валидно, връща -1 забележка: WEEKN('неделя') връща 0 DATETODMYW(d$,код) Връща число, в завивисмост от кода d$ е стринг - дата във вид 'дд.мм.гггг'; ако кода е 1 - връща само дата ( ден от месеца 1..31) 2 - връща само месеца ( 1..12 ) 3 - връща само годината (1..3500) 4 - връща ден от седмицата (0..6) DMYTODATE(d,m,y) Връща стринг -дата, във вид 'дд.мм.гггг', където са зададени числата d ден m месец y година RTOST (r) превръща числото r в стринг STTOR (s) превръща стринга s в число LOCALSRVADR(0) връща стринг-адрес на локалния нет сървър WORDN(d$,n) d$ е стринг, а n-число. функцията връща стринг - дума номер n от стринга d$ SCOPY(d$,p,len) връща стринг, извлечен от позиция p на стринга d$ с дължина len CHECKBULEGN(d$) връща 1 ако ЕГН-то е възможно CHECKBULSTAT(d$) връща 1 ако Булстата е възможен CONTAINSL(d$,код) при код 1, връща 1 ако в думата се среща латинска буква при код 2, връща 1 ако в думата се среща кирилска буква при код 3, връща 1 думата е само от латински букви при код 4, връща 1 думата е само от кирилски букви FORMATN(n,l,d,c) връща стринг-числото n като l е общата дължина на числото d е брой десетични знаци след точката ако c=0, формата е xx.xx ако c=1,2, се слагат нули отляво, докато дължината стане l ако c=2,3, числото се съкращава отдясно до десетична точка или цяло число NICKADDR(nick$,authorized) връща стринг-IP адреса на дадения nick или празен стринг ако няма такъв authorized е входен параметър =0; ако authorized е 1, функцията работи само за отключени адреси (с права за команден достъп) CONNECTEDADDR Връща стринг - IP адрес на сървъра към който е свъразн клиента. Ако няма връзка, връща, празен стринг. USERSCONNECTED Връща текущия брой участници в клиенския прозорец. LASTSENDER Връща ника на последния участник, който е подавал команда или съобщение по мрежата. ===================край=====================