функции


Функциите са вътрешни и външни
Тук е даден списък на вътрешните функции.


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
      Връща ника на последния участник, който е
      подавал команда или съобщение по мрежата.
  

===================край=====================