BlackTDN Search

sábado, 7 de fevereiro de 2009

Protheus :: Obtendo Array com as "Internal Functions" usando __FunArr()


Semelhante à __ClsArr() [ que retorna as classes para uso em Advpl ], __FunArr() retornará as "Internal Functions" funções essas que não são escritas em Advpl mas sim em C++ ou Assembler.

Sua sintaxe é muito simples: __FunArr( ) -> aFunArray.

Ex.:

Local aIntFunctions :=
__FunArr()

e terá o seguinte retorno ao avaliarmos a variável aInfFunctions:

aIntFunctions[1][1] -> AnsiToEem //Nome da Função
aIntFunctions[1][2] -> CR //Parâmetro da Função.

A pilha de "Internal Functions" varia de acordo com novas implementações. Abaixo a saída com todas as "Internal Functions" constantes até a Build 7.00.080806P - Nov 4 2008 - 13:18:43. O Primeiro elemento corresponde ao nome da função e o segundo elemento aos seus parâmetros.

A primeira vista os parâmetros, para um leigo, parecerão ininteligíveis, pois não temos sua declaração formal mas apenas o seu tipo. Mas com um pouco de paciência e experiência no uso das funções poderemos deduzí-los. Por Exeplo, sabemos que a Função AnsiToOem() converte uma "string" de caracteres do padrão ANSI (Windows) para o OEM (DOS), sendo assim só pode receber um parâmetro do típo Caractere, ou seja o parâmetro "CR" da AnsiToOem é do tipo caractere [ A inversa de AnsiToOem() é OemToAnsi() ]. Mas caso não tenha tanta paciência assim para desvendar os parâmetros retornados por __funArr() pesquise a função no google digitando o nome da função ou efetuando uma pesquisa mais abrangente como "funções em clipper". Se ela for uma função "herdada" do CA-Clipper ou do FiveWin obterá os seus parâmetros formais.

Função Parâmetro


AnsiToOem CR
asort *RNONOBO
ChkBmpRlt CR
GetMv CRLO*O
IntIncProc *O
OemToAnsi CO
qout *O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
Randomize NRNR
SysRefresh
type CR
__ExecMacro CR
aadd AR*R
aadd4glrec ARORCR
abs NR
aclone *R
ACL_DisableUser OR
ACL_EnableUser OR
ACL_GetCurrentCompany
ACL_GetUserActions OO
ACL_Grant OROROR
ACL_HasAccess OR
ACL_Logout
ACL_Revoke OROROR
acopy ARARNONONO
aCos NR
AddCssRule COCO
AddFontAlias COCO
adel ARNR
adir COAOAOAOAOAO
aeval ARBRNONO
afields AOAOAOAO
afill AR*RNONO
ains ARNR
alias NO
AllwaysFalse *O*O*O
AllwaysTrue *O*O*O
AlwaysFalse *O*O*O
AlwaysTrue *O*O*O
APGenTemplate CRCRARCRCR
AppBringToFront
arc4 CRCR
array NR*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
asc CR
ascan *R*RNONO
ascanx *R*RNONO
aSin NR
asize ARNR
at CRCRNO
atail AR
aTan NR
aTn2 NRNR
ax_exprvalid CR
ax_rightscheck LO
ax_rlock *O
ax_transac NO
ax_unlock *O
ax_userlockid NO
bin2i CR
bin2l CR
Bin2Str CR*OLO
bin2w CR
BitOn CRNRNRNR
BmpToJpg CRCR
bof
BTVCanOpen CRCO
BTVCreateDDFs ARCR
BTVDropFileIdxs CR
BTVDropIdxs
BTVTables
B_AND *R*R
B_OR *R*R
B_XOR *R*R
CalcFieldSize CONONOCOCO
CallDll CR*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
cdow DR
Ceiling NR
cGetFile COCONOCOLONOLO
ChdClsArr CR
ChkRpoChg
chmod CRNRNO
chr NR
ClassDataArr OR
ClearGlbValue CR
ClearVarSetGet CR
cmonth DR
compress CRNRCRNR
ComputerName
ConfImpres
ConOut *O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
ConvertBackTTS
Cos NR
CpyS2T CRCRLO
cpys2tex CRCR
CpyT2S CRCRLO
CreateSession CRORCRCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCOCO
CSSDictAdd CRCR
CTCanOpen CR
CTDeleteRec
CTDelFileIdxs CRLO
CTFlush
CTMainDB
CTMemCheck CO
CTMemFileDiff CRCO
ctod CRCO
CTreeDelIdxs
CTreeDelInt CR
CtreeIntCleaner
CTSerialNumber
CTUpdateIntName CR
curdir CO
CursorArrow
CursorWait
cValToChar *R
date
day DR
DBAlterDefEx CRARAO
dbappend LO
dbchangealias CRCR
dbclearallfilter
dbclearfilter
dbclearindex
dbcloseall
dbclosearea
dbcommit
dbcommitall
dbcreate CRARCO
DBCreateDefEx CRARAO
DBCreateEx CRCOCR
dbcreateindex CRCRBOLO
dbdelete
DBDeleteEx
dbeval BRBOBONONOLO
dbf
dbfieldinfo NRNR
dbfilter
dbfiltercb
dbgobottom
dbgoto NR
dbgotop
dbinfo NR
DBInInsert
DBInsertEx
DBNewRecEx
DBNickIndexKey CR
dborderinfo NRCO*O
DBOrderNickName CR
DBRDDEx CRCR
dbrecall
dbrecordinfo NRNO*O
dbreindex
dbrlock NO
dbrlocklist
dbrunlock NO
dbseek *RLOLO
dbsetdriver CO
dbsetfilter BRCR
dbsetindex CR
DBSetNickName CRCO
dbsetorder NO
DBSetOrdEx CR
dbskip NO
dbstruct
dbunlock
dbunlockall
DBUpdateEx
dbusearea LOCOCRCOLOLO
DBUseEx LOCRCOLOLOCR
Decode64 CR
DecodeUtf8 CR
DEC_ADD FRFR
DEC_CREATE *RNRNR
DEC_DIV FRFR
DEC_MOD FRFR
DEC_MUL FRFR
DEC_POW FRFR
DEC_RESCALE FRNRNO
DEC_SUB FRFR
DelClassIntf
deleted
DeleteKeyIni CRCRCR
DeleteSectionIni CRCR
DelObjData ORCR
descend CR
DevOut *R
DevOutPict *RCR
DevPos NRNR
directory CRCONO
dirremove CRNO
diskspace NO
dow DR
dtoc DRCO
dtos DR
elaptime CRCR
embaralha CRNR
empty *R
Encode64 CR
EncodeUtf8 CR
EncryptRSA CRCRLO
eof
ErrorBlock *O
eval BR*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
ExecInClient NRAO
ExecInDllClose NR
ExecInDllOpen CR
ExecInDllRun NRNRCR
ExeDllRun2 NRNRCR
ExeDllRun3 NRNRCR
ExistDir CR
exp NR
ExUserException CR
fclose *O
fcount
fcreate CRNONO
FechaRel
ferase CRNO
ferror
field NR
fieldblock CR
fieldget NR
fieldname NR
fieldpos CR
fieldput NR*R
fieldwblock CRNR
file CRNO
FindFunction CR
FldClearTrigger *R
FldSetTrigger *RNRBR
flock
fopen CRNONO
fopenPort CRCRNO
found
fread NRCRNR
freadstr NRNR
FreeLibrary NR
FreeObj OR
frename CRCRNO
frenameex CRCRNO
fseek NRNRNO
FtpVersion
ft_feof
ft_fgoto NR
ft_fgotop
ft_flastrec
ft_freadln
ft_frecno
ft_fskip NO
ft_fuse CO
fwrite NRCRNO
GenSql CR
getapoinfo CR
GetApoRes CR
GetBuild
GetCBSource BR
GetClassName OR
GetClientDir
GetClientIP
GetClsArray CR
GetComputerName
GetConnStatus
GetCredential
GetDBExtension
GetDtoDate CR
GetDtoVal CR
getenv CR
GetEnvHost
GetEnvServer
GetFocus
GetFontList
GetFontPixWidths CRNRLOLOLO
GetFuncArray CR
getfuncprm CR
GetGlbValue CR
GetGlbVars CR*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
GetHardwareId
GetHeightFont CRNRLOLOLO
GetImpInf CRNO
GetImpWindows LR
GetIniSessions CRNO
GetMailObj CR
GetPortActive LR
GetPrgTag CR
GetProcAddress NRCRLRNRNONONONONONONONONONONONONONONONONONONONONONONONONONONONONONO
GetProfInt CRCRNR
GetProfString CRCRCRLO
GetPvProfileInt CRCRNRCRNO
GetPvProfString CRCRCRCRNO
GetRemoteIniName
GetRemoteType CO
GetResArray CR
GetRmtDate
GetRmtInfo
GetRmtTime
GetScreenRes
GetSenhAp CRCRCR
GetServerIP
GetServerType
GetSrcArray CR
GetSrvInfo
GetSrvProfString CRCR
GetTempPath L*
GetUserInfoArray
GetWebJob
GetWebLicense CR
GetWndDefault
GlbLock
GlbUnlock
GUICommand NRNR*O*O*O*O*O
HasVVSpeak
header
HttpCache CR
httpCountSession
HttpCTDisp CO
HttpCTLen NO
HttpCTType CO
HttpExitProc CR
httpFreeSession
HttpGet CRCONOAOCO
HttpGetPart
HttpGetStatus *R
HttpIsAPW
HttpIsConnected
httpLeaveSession
HttpLogonUser
HttpOtherContent
HttpPost CRCOCONOAOCO
HttpPostXml CRCOCRNO
HttpPragma CR
HttpQuote CRCRCOCONOAOCO
HttpRCTDisp
HttpRCTLen NO
HttpRCTType
HttpSend CR
HttpSetPart LR
HttpSetPass CRCR
HttpSSLClient NRNRNRCRCRCR
i2bin NR
indexext
indexkey NO
indexord
InitPrint NOCOCOLOCO
int NR
InteropAgt LOLOCONO
IPCCount CR
IPCGo CR*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
IPCWait NR*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
IPCWaitEx CRNR*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
isalpha CR
IsCisaSyncOn
isdigit CR
islower CR
IsPlugin
IsPrinter2 *OLONONO
IsSecure
IsSrvUnix
isupper CR
JobInfo
KillApp LO
KillUser CRCRNRCR
l2bin NR
lAnd NRNRNONONONONONONONONONONONO
lastrec
left CRNR
LoadLibrary CR
localToUtc CRCRNO
log NR
Log10 NR
LogUserName
Look4Bit CRNRNRNR
lOr NRNRNONONONONONONONONONONONO
LS_ChangeFreeNum CRCR
LS_ChangeLicense NRLO
LS_ChangeUsedNum CRCRCR
LS_ConfirmNum CRCR
LS_CreateNum CRCR
LS_GetAvailable NRLO
LS_GetClientID CR
LS_GetFreeNum
LS_GetID
LS_GetLicense NRLO
LS_GetNum CR
LS_GetTotal NRLO
LS_GetUsedNum
LS_LockName CR
LS_RollBackNum CRCR
LS_UnlockName CR
lupdate
MailVersion
makedir CRNO
mathC *RCR*R
max *R*R
MD5 CRNO
memoline CRNONONOLO
memoread CR
MemoTran CRCOCO
memowrit CR*R
memowrite CR*R
MemVarBlock CR
MessageBox *R*RNR
min *R*R
mlcount CRNONOLO
mod NRNR
month DR
mqclose NRNRNRNRNR
mqconnect CRCRCRNRNRNR
mqdisconnect NRNRNR
mqget NRNRNRNRNRCRNRCO
mqopen NRCRNRNRNRNRCO
mqput NRNRNRNRNRCRCO
MSCalculator
mscompress *RCOCO
mscrc32 CR
mscrc32str CR
msdecomp CRCOCONO
MsgAlert *R*R
MsgInfo *R*R
MsgNoYes *R*R
MsgRetryCal *R*R
MsgRun CRCOBO
MsgStop *R*O
MsgWait CRCONO
MsgYesNo *R*R
msparse CRCRLO
msparseerror
nAnd NRNRNONONONONONONONONONONONO
neterr LO
NewClassData CRCRNO
NewClassIntf CRCR
NewClassMethod CRCR
NFeSign CRCRCRCRCRCR
nOr NRNRNONONONONONONONONONONONO
notbit CRNR
ntol NR
ordbagname *R
ordcondset COBOLOBOBONONONONOLOLOLOLOLOLO
ordcreate COCOCRBOLO
orddescend *OCOLO
OrderBy *O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
ordfor *RCO
ordkey *RCO
ordlistadd CRCO
ordlistclear
ordlistrebui
ordname NRCO
ordnumber CRCO
ordsetfocus *OCO
pad *RNRCO
padc *RNRCO
padl *RNRCO
padr *RNRCO
pcount
PEMGetCert CRCO
PEMGetKey CRCO
PEMInfo CRCO
PFXCA2PEM CRCRCRCO
PFXCert2PEM CRCRCRCO
PFXInfo CRCO
PFXKey2PEM CRCRCRCO
PlayWave CR
PreparePrint LRCRLRCRLONO
prepch CRCR
PrintOut NRNR*OCOOO
PrivSignRSA CRCRNRCO
PrivVeryRSA CRCRNRCR
PrnFlush
ProcessMessages
procline NO
procName NO
PtGetSessions
PtGetTheme
PtInternal NRCR
PtKillSession CR
PTMessage NR*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
PtRunInSession CRCR
PtsetAcento LR
PtSetTheme CR
PutGlbValue CRCR
PutGlbVars CR*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
qqout *O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
rat CRCR
RawPrintOut CR
rddname
rddsetdefault CO
RealRDD
recc
reccount
recn
recno
recsize
ReleaseProgs
RemoteXCLSID
RemoteXVersion
replicate CRNR
Resource2File CRCRNO
RetImgType CR
right CRNR
rlock
RmvToken CRCR
seconds
sele CO
select CO
SendtoFore
SerialNumber CO
set NR*OLO
SetConnStatus LR
SetCorretor CRCO
SetCSS CR
SetDefCaption CR
SetDefFont *O
SetFlatControls LR
SetFocus NO
SetImgDict CRCR
SetKey NRBOCOCO
SetKeyBlock BO
SetMailObj CR*R
SetPrc NRNR
SetProgsUnmovable
SetProxy CRNRCOCO
SetRmtDate DR
setStyle NR
SetTransparentColor NRNR
SetVarNameLen NO
SetWndDefault *O
SHA1 CRNO
ShellExecute CRCRCRCRNR
ShowHelpCpo CO*O*O*O*O
ShowHelpDlg CO*O*O*O*O
Sin NR
sleep NR
SndPlaySound CONO
SndToPrnWin CRLRLRNRNR
SoapRAction
socketconn CRNRCRNR
spac NR
space NR
SPF_CanOpen CR
SPF_Close CR
SPF_CopyTo CRCR
SPF_Delete CRNR
SPF_GetFields CRNRCOCOCOCO
SPF_GoTop CRNR
SPF_Insert CRCRCOCOCR
SPF_RecCount CRNR
SPF_Seek CRCRNR
SPF_Skip CRNRNR
SPF_Update CRNRCRCOCOCR
SplitPath CRCOCOCOCO
sqrt NR
StartJob CRCRLR*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
str NRNONO
strtokarr CRCR
strtran CRCRCONONO
stuff CRNRNRCR
StuffBit CRNRNRNR
SysErrorBlock BO
TagPatch CRCR*R
Tan NR
TCAlter CRARARNO
TCCanOpen CRCO
TCCommit NR*O
TCConType CR
TCDelFile CR
TCFilterEx CRNR
TCGenQry *O*OCR
TCGetBuild
TCGetDB
TCInternal NRCONO
TCIsConnected NO
TCIsvLock
TCLink CRCRNO
TCMaxMap NR
TCQuit
TCRefresh CR
TCSetBuff CRNOLO
TCSetConn NR
TCSetDummy LR
TCSetField CRCRCRNONO
TCSetParam CRCR
TCSpExec CR*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
TCSpExist CR
TCSqlError
TCSqlExec CRNO
TCSqlFilter
TCSqlSetFilter CR
TCSrvBuff CR*R
TCSrvMap CRCOLO
TCSrvType
TCSysExe CR
TCUnique CRCO
TCUnLink NO
TCvLock CR
TCvUnLock CO
ThreadCount
ThreadId
time
TMQCreateMessage
TMQFreeConnection NR
TMQGetConnection CR
TMQGetProperty CR
TMQSend NRNRCR
TMQSetProperty NRCR*R
TMQSubscribe
TMQUnsubscribe
Tone NONO
tran *RCR
trans *RCR
transf *RCR
transfo *RCR
transfor *RCR
transform *RCR
uncompress CRNRCRNR
UnStuff CRNRNRNR
used
UserException CR
utcToLocal CRCR
valtype *R
VarNToArr CRNR
VarRef *R*R
VarSetGet CRBRLO
VVSpeak CR
w2bin NR
WaitRun CRNO
WaitRunSrv CRLRCR
WebEncript CRLOLO
WGetTickCount
WinExec CRNO
word NR
WritePProString CRCRCRCR
WriteProfString CRCRCRLO
WriteSrvProfString CRCR
WSClassNew CR
WSDescData CRLO
WSDescMeth CR
WSDL2Parser CR*R*R*RCRCR
WSDLParser CR*R*R*R*R*R*R*RCRCR
XmlC14N CRCRCRCR
XmlC14NFile CRCRCRCR
XmlChildCount OR
XmlChildEx ORCR
XmlCloneNode *RCR
XmlDelNode ORCR
XmlFVldDTD CRCRCRCR
XmlFVldSch CRCRCRCR
XmlGetChild ORNR
XmlGetParent OR
XmlNewNode ORCRCRCR
XmlNode2Arr ORCR
XmlParser CRCRCRCR
XmlParserFile CRCRCRCRNO
XmlSVldSch CRCRCRCR
year DR
_DBSkipper NO
_GetThreadUsedMem
_Inkey NO
_PCol
_PRow
_SetNamedPrvt CR*OCR
_SetOwnerPrvt CR*O
__begintran
__ChangeQuery CR
__chsave CRCR
__ClearRmt
__clsarr
__compstr CR
__copyfile CRCRNO
__dbapp CRAOBOBONO*OLOCO
__dbcopy CRAOBOBONONOLOCO
__dbcopystruct CRAO
__dbdelim LRCRCOAOBOBONONOLO
__dblocate1 BOBONO*OLO
__dbpack
__dbsdf LRCRAOBOBONONOLO
__dbzap
__DeleteRmt CR
__Eject
__endtran
__EvalGPI NRARNRCRARARAR
__execstr CR
__fdhtons *O*O
__fhtons NR
__fnstodh NRCO
__fnstoh NR
__funarr
__GV2STR CR*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
__hrs2min *R
__ListRmt
__LoadRmt CR*O*O*O*O*O*O*O*O*O*O
__min2hrs NRLO
__mpop LR
__mpush CRCRLR
__mrestore CRLR
__msave CRCRLR
__noround NRNONONO
__PV2STR *O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O
__Quit
__rollbacktran
__runcb BRLO
__SaveRmt CR*O*O*O*O*O*O*O*O*O*O
__SetCentury CO
__SetPicture CO
__Soma1 CRNOLO
__timesub *R*R
__timesum *R*R
__vrestore CR
__vsave *RCR
__wait
__xchghcons AR

7 comentários:

  1. Cara, essa função não ta rolando aqui...é necessário ter a licensa da totvs no ide??

    ResponderExcluir
  2. Robson, não precisa ter a licença da totvs/microsiga no ide não. Basta digitar __FunArr() para obter o array com as "Internal Functions" verifique se você digitou corretamente o nome da função [underline][underline]FunArr().

    []s
    иαldσ dj

    ResponderExcluir
  3. Paara quem nao entendeu o retorno da função na parte dos parametros, segue explicação.

    * -> Qualquer tipo de parametro
    C -> Tipo caractere
    N -> Tipo numerico
    A -> Tipo Array
    L -> Tipo Boleano
    B -> Tipo Bloco de código
    O -> Tipo Objeto*

    E são sempre seguidos de um caractere que define
    se obrigatorio ou nao.

    Tipos seguidos de R são obrigatorios, e tipos
    seguidos de O podem ser omitidos.

    *Atenção aos itens com Tipo O e seguidos de O.
    Ou seja, tipo OBJETO e que pode ser OMITIDO.


    Abs,
    O ultimo comentário de 2010!
    Feliz 2011!

    BonaTchovis!

    ResponderExcluir
  4. Naldo,

    Por acaso tem alguma função para conectar a uma porta, execultar comandos e pegar o resultados desse comando?

    Uma função parecida com o programa TELNET(fornecido com o windows ou linux) com funções de cliente?

    Abs,

    DanielRatk

    ResponderExcluir
  5. Daniel,

    Tem a Classe tSocketClient. Vou Publicar seus métodos em um post.

    []s
    иαldσ dj

    ResponderExcluir
  6. Valeu Naldo,

    Eu vi essa classe só que não entendi muito bem como pegar o retorno do servidor...

    eu também achei uma função chamada socketconn que me quebou um galho, teria algo dela também?

    No tdn só tem isso: socketconn(cIp,nPorta,cComando,nTimeOut)

    Abraços

    DanielRatk

    ResponderExcluir
  7. Provavelmente a Classe tSocketClient use, internamente, SocketConn...

    []s

    иαldσ dj

    ResponderExcluir