4D v16.3RECEIVE PACKET |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
RECEIVE PACKET
RECEIVE PACKET
RECEIVE PACKET lê caracteres a partir de uma porta serial ou de um documento. Se docRef é especificado, este comando recupera dados de um documento aberto, usando Open document, Create document ou Append document. Se docRef for omitido, o comando recupera dados da porta serial ou o documento aberto usando SET CHANNEL. Seja qual for a fonte, os caracteres lidos são retornados em receiveVar, que deve ser um texto, String ou variável BLOB. Se os caracteres foram enviados pelo comando SEND PACKET, o tipo deve corresponder ao do pacote enviado. Notas:
Para ler um determinado número de caracteres, passe este número em numBytes. Se a variável receiveVar é do tipo de texto, em uma única chamada você pode ler até 2 GB de texto (valor teórico).
Para receber dados até que uma cadeia particular (composta por um ou mais caracteres) passe essa cadeia em stopChar (a cadeia não é devolvida em receiveVar). Neste caso, se a seqüência de caracteres especificada pelo stopChar não é encontrada:
Durante a execução do RECEIVE PACKET, o usuário pode interromper a recepção pressionando Ctrl-Alt-Shift (Windows) ou Command + Option + Shift (Macintosh). Esta interrupção gera um erro -9994, que você pode pegar com um método de tratamento de erros instalado usando ON ERR CALL. Normalmente, você só terá de lidar com a interrupção de uma recepção na comunicação através de uma porta serial. Ao ler um documento, o primeiro RECEIVE PACKET começa a ler no início do documento. A leitura de cada pacote subseqüente começa no caractere após o último byte lido. Nota: Este comando é útil para um documento aberto com SET CHANNEL. Por outro lado, para um documento aberto com o Open document, Create document ou Append document você pode usar os comandos Get document position e SET DOCUMENT POSITION para obter e alterar o local no documento onde acontecerá a próxima escrita (SEND PACKET) ou leitura (RECEIVE PACKET). Ao tentar ler após o final de um arquivo, RECEIVE PACKET retornará os dados lidos até aquele ponto e a variável OK será definido como 1. Então, o próximo RECEIVE PACKET irá retornar uma string vazia e definir a variável OK para zero. Nota: Em modo não-Unicode (modo de compatibilidade), quando você usar o comando RECEIVE PACKET para ler caracteres de um documento do Windows e não quiser usar mapas para converter caracteres ASCII em caracteres Windows Mac OS, você pode usar a função Win to Mac. O exemplo a seguir lê 20 caracteres de uma porta serial na variável getTwenty: RECEIVE PACKET(getTwenty;20) O exemplo a seguir lê os dados do documento referenciado pela variável myDoc na variável vData. Ele lê até encontrar um retorno de carro: RECEIVE PACKET(myDoc;vData;Char(Carriage return)) O exemplo a seguir lê os dados do documento referenciado pela variável myDoc na variável vData. Ele lê até encontrar o (Fim da célula da tabela) RECEIVE PACKET(myDoc;vData;"</TD>") O exemplo a seguir lê dados de um documento em campos. Os dados são armazenados como campos de comprimento fixo. O método chama uma subrotina para retirar espaços à direita (espaços no final da cadeia). A sub-rotina segue o método: $vhDocRef :=Open document("";"TEXT") ` Abertura de um documento de tipo TEXTO Os espaços no final dos dados são removidos através do seguinte método, chamado Strip: For($i;Length($1);1;-1) ` Loop desde o fim da string ao início Depois de um chamado a RECEIVE PACKET, a variável sistema OK recebe o valor 1 se o pacote é recebido sem erros. Caso contrário, a variável sistema OK recebe o valor 0.
Ver também
Get document position
|
PROPRIEDADES
Produto: 4D HISTÓRIA
Modificado: 4D v11 SQL PALAVRAS CHAVES BOM ARTICLE USAGE
Manual de linguagem 4D ( 4D v16) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||