Olá galera, Tenho que importar uma tabela que vem de outro programa, ele está em .txt e as fields separadas por ; tem alguma forma de ler esta tabela e reconhecer as fields pelo ; Att, Diogo
Exemplo para ler um txt com 2 campos. Código: def var i-terc as int no-undo. def var i-mail as char no-undo. def stream texto. input stream texto from c:\temp\livro1.txt. repeat: import stream texto delimiter ";" i-terc i-mail.
Olá, na verdade quero separar as linhas lidas em uma tabela, tendei desta forma abaixo mas dá erro: Código: DEF VAR i-codemp AS CHAR. DEF VAR i-km AS CHAR. DEF VAR i-qtde AS CHAR. DEF VAR i-valor AS CHAR. DEF VAR i-motorista AS CHAR. DEF VAR i-placa AS CHAR. DEF VAR i-codati AS CHAR. DEF VAR i-data AS CHAR FORM 'X(30)'. DEF VAR i-tipo AS CHAR. FOR EACH TEMPREL WHERE TEMPREL.texto BEGINS 'AT;0' no-lock. IMPORT DELIMITER ";" i-tipo i-codemp i-km i-qtde i-valor i-motorista i-placa i-codati i-data. FIND genios.tabimp WHERE genios.tabimp.codvei = INT(STRING(i-placa, '9999')) AND genios.tabimp.dtaemi = i-data AND genios.tabimp.codemp = INT(STRING(i-codemp, '9999')) NO-ERROR. IF NOT AVAILABLE genios.tabimp THEN DO: CREATE genios.tabimp. ASSIGN genios.tabimp.codvei = INT(STRING(i-placa, '9999')) genios.tabimp.dtaemi = i-data genios.tabimp.codemp = INT(STRING(i-codemp, '9999')). END. ASSIGN genios.tabimp.km = INT(STRING(i-km, '999999')) genios.tabimp.qtde = DEC(STRING(i-qtde, 'ZZZ,ZZ9.99')) genios.tabimp.valor = DEC(STRING(i-valor, 'Z,ZZZ,ZZ9.99')) genios.tabimp.codmot = INT(STRING(i-motorista, 'ZZZ9')) genios.tabimp.codati = INT(STRING(i-codati, 'ZZZ9')). END. Os Itens da tabela segue abaixo: Código: AT;0001;1541;254456;;;9104;105;Sat Mar 15 08:34:27 GMT-03:00 2008 AT;0001;1255;4522;;;0668;103;Sat Mar 15 08:37:40 GMT-03:00 2008 AT;0001;088;542134;;;6351;104;Tue Sep 13 14:07:00 GMT+00:00 2011 AT;0001;5555;555;30;65;9104;105;Tue Sep 13 14:09:09 GMT+00:00 2011 AT;0002;123456;;;005;9104;106;Thu Sep 15 07:51:52 GMT+00:00 2011
bom dia, acho q entendi... vc não pode dar import em uma tabela, tire o import. neste for each vc pode usar a função entry para separar os itens delimitados por ';'. tipo assim: assign i-placa = int(entry(7,TEMPREL.texto,';')) no-error. if error-status:error or i-placa = ? then /*o conteudo é invalido*/ /*tratar os outros campos*/ FIND genios.tabimp WHERE genios.tabimp.codvei = i-placa AND ... e por aí vai...