Append from com opção DELIMITED

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

menga
Usuário Nível 1
Usuário Nível 1
Mensagens: 7
Registrado em: 02 Set 2004 09:40
Localização: campinas

Append from com opção DELIMITED

Mensagem por menga »

Caros amigos.

Preciso fazer a carga de um arquivo .TXT para a minha DBF e não estou conseguindo. O .TXT tem como delimitadores de campo ; ( ponto e vírgula).
Codifiquei o comando

APPEND FROM arquivo DELIMITED WITH ";"

mas o rersultado na DBF está bagunçada, parece que não está sendo considerado o separador de campos.

Alguém pode me ajudar?

Abraços.
gransoft
Usuário Nível 3
Usuário Nível 3
Mensagens: 321
Registrado em: 06 Jul 2004 17:48
Localização: UBERLÂNDIA-MG
Contato:

APPEND FROM...

Mensagem por gransoft »

ARAGUARI-MG, 2 de setembro de 2004.

Prezado menga,

No arquivo *.txt os campos possuem tamanhos fixos para TODOS os registros, apenas separados pelo ; ?

Se for, crie um dbf com os campos normais incluindo entre eles, um campo tipo "C", tamanho 1, para cada ;, pois é a forma mais rápida.

Se os campos tiverem tamanhos variáveis, você deverá usar a função de baixo nível FREAD, testando o conteúdo de cada byte.

Atenciosamente,
Janis Peters Grants.

http://www.gransoft.com.br
gransoft@zipmail.com.br
Avatar do usuário
Augusto
Usuário Nível 3
Usuário Nível 3
Mensagens: 473
Registrado em: 26 Ago 2003 17:50
Localização: Maricá/RJ
Contato:

Mensagem por Augusto »

Somente uma idéia...
Talvez fosse mais rápido substituir. o ponto-e-vírgula por vírgula em qualquer editor de texto (WordPad, p.e.) e depois fazer o APPEND com somente WITH DELI... (o padrão já é vírgula)...
Detalhe... Se o TXT tiver campos de valores... esses campos não podem ter como separador de decimais a "vírgula"... e sim "ponto"... senão... babau... Caso tenha, substitua antes a virgula por ponto e depois ponto-e-virgula por virgula...
:xau Fui...
goulart@provsul.com.br

Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
menga
Usuário Nível 1
Usuário Nível 1
Mensagens: 7
Registrado em: 02 Set 2004 09:40
Localização: campinas

Mensagem por menga »

Caro Janis,

Os campos no arquivo .TXT um deles tem tamanho variável, de 1 a 5, vc sugere a função FREAD ? Se não for pedir muito, você poderia explicar o funcionamewnto dela.

Grato,

Menga
menga
Usuário Nível 1
Usuário Nível 1
Mensagens: 7
Registrado em: 02 Set 2004 09:40
Localização: campinas

Mensagem por menga »

Augusto, bom dia.

Vou testar sua sugestão. Vou também ver se consigo transformar todos os ponto e vírgula em vírgula por programa.

Grato,

Menga
menga
Usuário Nível 1
Usuário Nível 1
Mensagens: 7
Registrado em: 02 Set 2004 09:40
Localização: campinas

APEND FROM com opção DELIMITED

Mensagem por menga »

Janiis resolvi o problema da seguinte maneira:
1) Criei um arquivo temporário a partir do arquivo de.TXT origem e modificando-o de ";" para "brancos".
FOPEN
FCREATE
FREAD
STRTRAN(cBuffer, ";" , " ")
FWRITE
FCLOSE
2) Criei o arquivo DBF a partir do arquivo texto modificado.
APPEND FROM Arqtemp DELIMITED WITH BLANK

Grato por sua ajuda.
menga
Usuário Nível 1
Usuário Nível 1
Mensagens: 7
Registrado em: 02 Set 2004 09:40
Localização: campinas

append from with DELIMITED

Mensagem por menga »

Augusto veja a resposta que enviei ao Janis.

Grato por sua ajuda.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

Não seria o caso de use o SET DELIMITERs para tal tarefa, ex:

SET DELIMITER ON
SET DELIMITERS TO ";"
APPEMD FROM teste.txt
SET DELIMITERS TO
SET DELIMITER OFF

@braços :?)
Responder