Gerando um arquivo .JSON a partir de DBF

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Gerando um arquivo .JSON a partir de DBF

Mensagem por asimoes »

Bom pessoal,

Vai uma dica como criar um arquivo JSON a partir de uma leitura de DBF

Código: Selecionar todos

   DbUseArea(.T.,"DBFCDX", "CADASTRO", "CADASTRO", .T.)
   
   nFields  := CADASTRO->(FCount())
   nHandle  := fCreate("NEW.JSON")
   hRecords := { => }
   DO WHILE ! CADASTRO->(EOF())
      hRecord := { => }
      FOR nField := 1 TO nFields
         hb_HSet(hRecord, FieldName(nField), FieldGet(nField)) // for each record, hrecord holds a hash of column name: column value
      NEXT
      hb_HSet(hRecords, LTRIM(STR(RecNo())), hRecord) // like so, a hash of recno: hash of columns/values of this record 
      CADASTRO->(DbSkip())
   ENDDO
   fSeek(nHandle, 0, 2)
   fWrite(nHandle, hb_jsonEncode( hRecords, .T. ))
   fClose(nHandle)
Para ler:
Onde, APTO E SACADO são nomes de campo da tabela CADASTRO

Código: Selecionar todos

cJSON:=memoread( "new.json" )
nLen := hb_jsondecode( cJSON, @htable )
FOR EACH oElemento IN htable
   ? oElemento["APTO"], oElemento["SACADO"]
NEXT
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Gerando um arquivo .JSON a partir de DBF

Mensagem por fladimir »

Tenho uma função chamada DBF2Array e tb Array2DBF
Será q já tem algo pronto Hash2DBF ?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
cnavarro
Usuário Nível 2
Usuário Nível 2
Mensagens: 52
Registrado em: 28 Set 2017 14:16
Localização: Spain

Gerando um arquivo .JSON a partir de DBF

Mensagem por cnavarro »

Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Gerando um arquivo .JSON a partir de DBF

Mensagem por fladimir »

A função é pública ou não?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Responder