Clipper On Line • Ver Tópico - Converter site/pdf

Converter site/pdf

Aqui é o lugar para bater papo e trocar idéias sobre os mais variados assuntos

Moderador: Moderadores

 

Converter site/pdf

Mensagempor JoséQuintas » 29 Ago 2019 00:51

Preciso fazer o seguinte:

1. Converter o conteúdo do PDF em texto e/ou dbf

Sony RMVZL620 Codes.pdf
(196.18 KiB) Baixado 59 vezes


2. Mesma coisa com esta página

https://www.sony.com/electronics/support/remote-control-programming?modelName=RM-VLZ620&cpint=spt-banner_00225135_remote_codes_i

O PDF tem código que o site não tem, e vice-versa, e já usei dos dois.
Se o site desaparecer, lá se vão os códigos.

Alguma dica sobre como fazer isso?
No site parece Jason, mas não sei dizer, porque não mexo com isso, é apenas chute.

É do controle remoto Sony, aparelhos que ele pode controlar, e depende de colocar o código correto.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Converter site/pdf

Mensagempor Toledo » 29 Ago 2019 07:22

Quintas, você pode fazer o seguinte:

PDF para texto, veja este site:

https://pdftotext.com

Agora Site para texto, você pode fazer o seguinte:

1 - Entre no site e depois clique com o botão da direita do mouse sobre a página do site e escolha a opção "Salvar Página como...", ai na janela que vai abrir, você pode escolher o Tipo de arquivo você deseja salvar, onde tem opção para salvar como Arquivo Texto (txt).
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Converter site/pdf

Mensagempor JoséQuintas » 11 Ago 2020 16:49

Lembrei disso......
Deu um trabalhinho.... mas tava tudo num jason.
Agora falta criar o que interessa.

O fonte cria o texto do hash, e mostra de forma "humana", de como seria usado no fonte.

Tem a função que usei pra converter a string em um fonte PRG
Tem a minha rotina de mostrar como seria usado o hash no fonte.

test.zip
(19.25 KiB) Baixado 56 vezes


A rotina de mostrar, mostra algo deste tipo:

testjason.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Converter site/pdf

Mensagempor JoséQuintas » 11 Ago 2020 17:15

remotecode.png


Pra quem não viu....

Tem 12 tipos de aparelho, em cada aparelho é escolher o fabricante, e conforme a escolha, mostra os códigos para programação.
É que controle remoto, sem o manual de como configurar, não é útil.
E mais fácil selecionar por um menu desse tipo, do que procurar numa lista gigantesca, com letras miúdas.

É daquele controle remoto que veio da China, mas que é Sony.
Vai que a Sony tira do ar, melhor garantir.

O próximo passo é como criar o fonte da seleção.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Converter site/pdf

Mensagempor JoséQuintas » 11 Ago 2020 17:39

Não pensei que ia ser tão rápido.
Usei como referência a janela anterior, aonde mostra a "nomenclatura" do acesso.
Isso mostra o que já comentei: Seja HASH ou Jason convertido, é tudo array, e acessa igual array, ou por nome ou por número.
TUDO direto no Hash array retornado do hb_JsonDecode()
Mas pra ficar bom... precisa ser em tbrowse, porque em prompt não cabe na tela.

#include "inkey.ch"

PROCEDURE Main

   LOCAL cTxt, aHash
   LOCAL oAparelho, nOpcAparelho := 1
   LOCAL oFabricante, nOpcFabricante := 1
   LOCAL oCode

   SetMode(30,100)
   CLS
   cTxt := JasonList() // Memoread( "remote.html" )
   aHash := hb_jsonDecode( cTxt )

   DO WHILE .T.
      @ 0, 30 CLEAR TO MaxRow(), MaxCol()
      FOR EACH oAparelho IN aHash[ "devices" ]
         @ oAparelho:__EnumIndex, 1 PROMPT oAparelho[ "device" ]
      NEXT
      MENU TO nOpcAparelho
      IF Lastkey() == K_ESC
         EXIT
      ENDIF
      DO WHILE .T.
         @ 0, 60 CLEAR TO MaxRow(), MaxCol()
         FOR EACH oFabricante IN aHash[ "devices" ][ nOpcAparelho ][ "brandCodes" ]
            @ oFabricante:__EnumIndex, 30 PROMPT oFabricante[ "brand" ]
         NEXT
         MENU TO nOpcFabricante
         IF LastKey() == K_ESC
            EXIT
         ENDIF
         FOR EACH oCode IN aHash[ "devices" ][ nOpcAparelho ][ "brandCodes" ][ nOpcFabricante][ "codes" ]
            @ oCode:__EnumIndex, 60 SAY oCode
         NEXT
         Inkey(0)
      ENDDO
   ENDDO

   //ShowJson( aHash, "aHash" )
   //Inkey(0)

   RETURN


test.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Converter site/pdf

Mensagempor JoséQuintas » 11 Ago 2020 17:45

Putz... o potencial é grande.

Aparece a lista de tipos de aparelho.
Ao escolher o aparelho, aparece a lista de fabricantes para o tipo de aparelho escolhido.
Ao escolher o fabricante, aparece a lista de códigos para o fabricante escolhido, e para o tipo escolhido.
TUDO UMA ÚNICA VARIÁVEL.
Não consigo nem imaginar qual seria o tamanho do fonte, se fosse fazer diferente.

Imaginem isso pra definir uma tela GUI, combos, textbox, listbox, etc.
Uma única variável com tudo.

Achei sensacional
Abre muitas possibilidades.

Nota: e isso tudo foi só pra poder olhar os códigos na hora de programar o meu controle remoto.... kkkk
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Converter site/pdf

Mensagempor JoséQuintas » 11 Ago 2020 18:16

Tava com preguiça... fiz em GUI mesmo.


#include "inkey.ch"

PROCEDURE Main

   LOCAL cTxt, aHash, oAparelho, oFabricante, oCode
   LOCAL oMenu, oSubMenu1, oSubMenu2, oSubMenu3, nKey := 0

   SetMode(30,100)
   CLS
   cTxt := JasonList() // Memoread( "remote.html" )
   aHash := hb_jsonDecode( cTxt )

   oMenu  := wvgSetAppWindow():MenuBar()
   oSubMenu1 := wvgMenu():New( oMenu, , .T. ):Create()
   FOR EACH oAparelho IN aHash[ "devices" ]
      oSubMenu2 := WvgMenu():new( oSubMenu1, , .T. ):Create()
      FOR EACH oFabricante IN aHash[ "devices" ][ oAparelho:__EnumIndex ][ "brandCodes" ]
         oSubMenu3 := wvgMenu():New( oSubMenu2, , .T. ):Create()
         FOR EACH oCode IN aHash[ "devices" ][ oAparelho:__EnumIndex ][ "brandCodes" ][ oFabricante:__EnumIndex ][ "codes" ]
            oSubMenu3:AddItem( oCode, { || NIL } )
         NEXT
         oSubMenu2:AddItem( oSubMenu3, oFabricante[ "brand" ] )
      NEXT
      oSubMenu1:AddItem( oSubMenu2, oAparelho[ "device" ] )
   NEXT
   oMenu:AddItem( oSubMenu1, "Selecione" )

   DO WHILE nKey != K_ESC
      nKey := Inkey()
   ENDDO
   wvgSetAppWindow():oMenu := NIL
   oMenu:Destroy()

   //ShowJson( aHash, "aHash" )
   //Inkey(0)

   RETURN


teste.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Converter site/pdf

Mensagempor JoséQuintas » 07 Set 2020 19:08

Eliminei a criação do json do fonte, usando resource:

STATIC FUNCTION JasonList()

#pragma __binarystreaminclude "resource/remote.json"   | RETURN %s


É com minha função de achoice fiz o resto.

#include "inkey.ch"

PROCEDURE pTesRemSony

   LOCAL cTxt, aHash, aList, nOpc
   LOCAL oAparelho, nOpcAparelho
   LOCAL oFabricante, nOpcFabricante
   LOCAL oCode

   cTxt := JasonList()
   aHash := hb_jsonDecode( cTxt )

   DO WHILE .T.
      Cls()
      aList := {}
      FOR EACH oAparelho IN aHash[ "devices" ]
         AAdd( aList, oAparelho[ "device" ] )
      NEXT
      wAchoiceNoClose( 1, 1, aList,@nOpcAparelho,  "Device" )
      IF Lastkey() == K_ESC
         EXIT
      ENDIF
      DO WHILE .T.
         @ 0, 60 CLEAR TO MaxRow(), MaxCol()
         aList := {}
         FOR EACH oFabricante IN aHash[ "devices" ][ nOpcAparelho ][ "brandCodes" ]
            AAdd( aList, oFabricante[ "brand" ] )
         NEXT
         wAchoiceNoClose( 5, 30, aList, @nOpcFabricante, "brand" )
         IF LastKey() == K_ESC
            EXIT
         ENDIF
         aList := {}
         FOR EACH oCode IN aHash[ "devices" ][ nOpcAparelho ][ "brandCodes" ][ nOpcFabricante][ "codes" ]
            AAdd( aList, oCode )
         NEXT
         wAchoice( 10, 60, aList, @nOpc, "brandcodes" )
         ( nOpc )
         Inkey(0)
         wClose()
      ENDDO
      wClose()
   ENDDO

   RETURN

STATIC FUNCTION JasonList()

#pragma __binarystreaminclude "resource/remote.json"   | RETURN %s


json.png


Conclusão interessante:
Dá pra aproveitar o arquivo json pra economizar fonte PRG, como as IDEs fazem.
Sei não... possibilidades se mutiplicando.... ainda mais podendo salvar no MySQL...

Assim vou começar a gostar de variável hash.....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Converter site/pdf

Mensagempor JoséQuintas » 07 Set 2020 19:29

Só precisa achar um jeito de reduzir o "linguição".
Agora com título conforme seleção.
Definitivamente, igual array mesmo, só troca número por palavra.

json2.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para Bate Papo

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro