Vamos ver na prática como o Observer2 funciona, abaixo é demonstrada a manipulação do arquivo Daruma.cmd em Clipper.
static function COMUNICA_COM_ECF(VAR_COMANDO_ECF)
/*A variável VAR_COMANDO_ECF é quem armazena o comando a ser enviado ao Daruma.cmd*/
Delete File("c:\DARUMA.CMD")
Delete File("c:\STATUS.TXT")
Delete File("c:\RETORNO.TXT")
Delete File("c:\DARUMA.RET")
/*Deleta arquivos antigos caso exista*/
/*Escreve comandos no Arquivo*/
H_Handle := fcreate("c:\DARUMA.CMD" )
FWrite( H_Handle , @VAR_COMANDO_ECF, Len( VAR_COMANDO_ECF) )
FClose( H_Handle )
VAR_ESPERA:=1
/*Espera que o Arquivo de Resposta Seja Criado*/
do while VAR_ESPERA > 0
if File("c:\DARUMA.RET")
VAR_ESPERA :=0
else
loop
end if
enddo
RET_TAM:=0
/*Espera o Arquivo ter um conteúdo*/
do While RET_TAM = 0
H_Handle := Fopen("c:\DARUMA.RET")
RET_TAM = FSeek( H_Handle, 0, FS_END )
Fclose(H_Handle)
enddo
H_Handle:= Fopen("c:\DARUMA.RET")
POS_RET = 0
VAR_RET_CMD=" "
VAR_AUX =" "
if RET_TAM > 0
for POS_RET = 1 to RET_TAM - 1
fread( H_Handle, @VAR_AUX, 1)
if VAR_AUX <> chr(13)
VAR_RET_CMD= VAR_RET_CMD + VAR_AUX
end if
next
endif
fclose(H_Handle)
set color to n/bg
@ 23,0 clear to 23,80
@23,0 say "Comando Enviado: " + VAR_COMANDO_ECF
@24,0 say "Retorno: " + VAR_RET_CMD
VAR_BUFFER_RETORNO:=VAR_RET_CMD
if VAR_ESPERARTECLA <> 1
inkey(0)
end if
return NIL
Para simplificar mais ainda, abaixo é demonstrada a criação do Daruma.cmd pelo DOS (Prompt de Comando).
Abra o Prompt de Comando clicando em: Iniciar > Executar: “cmd”.
Já na janela do Prompt digite o comando: “EDIT” em seguida aperte a tecla ENTER para que seja aberto o editor de texto. |