terça-feira, 15 de março de 2016

Wx - Exemplo de como ler um site de html



Forum.pcsoft.fr/fr-FR/pcsoft.br.windev/1056-exemplo-como-ler-site-html-1058/read.awp



Posté le 15 mars 2016 - 18:55
Prezados,

Segue exemplo de como ler um site de html




Procedure Importar()

//ChangeCharset(charsetDefault)

Existe is boolean = False

Aspas, Inicial is int

Texto, NovoTexto, sArquivo is string = ""

HDeleteAll(T003_LinksForum)

TableDisplay(TABLE_T003_LinksForum,taReExecuteQuery)

TableDisplay(TABLE_T003_LinksForum,taInit)

IF sFile <> "" THEN

sBuffer = fLoadBuffer(sFile)

//Leitura
HourGlass(True)

Multitask(1)

nPosAtual, nPosIni, nPosFim are int = 0

nTotal is int = Length(sBuffer)

LOOP (nTotal)

nPosAtual += 1

Multitask(1)

IF Middle(sBuffer,nPosAtual,8) = "<a href="
nPosIni = nPosAtual
END

IF Middle(sBuffer,nPosAtual,4) = "</a>"
nPosFim = nPosAtual + 4
END

IF nPosIni > 0 AND nPosFim > 0 AND nPosFim >= nPosIni THEN

Texto = Middle(sBuffer,nPosIni,nPosFim-nPosIni)

T003_LinksForum.T003_Extraido = Texto

Aspas = PositionOccurrence(Texto,Charact(34),firstRank,FromBeginning)

Aspas = PositionOccurrence(Texto,Charact(34),nextRank,FromBeginning) - 10

T003_LinksForum.T003_Link = Middle(Texto,10,Aspas)

Inicial = PositionOccurrence(Texto,">",firstRank,FromBeginning) + 1

NovoTexto = Middle(Texto,Inicial,1024)

NovoTexto = Replace(NovoTexto,"</a>","")

T003_LinksForum.T003_Titulo = NoAccent( UTF8ToString( NovoTexto ) )

T003_LinksForum.T003_NovoArquivo = "<a href="+Charact(34)+T003_LinksForum.T003_Link+Charact(34)+">"+T003_LinksForum.T003_Titulo+"</a>" 

IF PositionOccurrence(NovoTexto,"[",firstRank,FromBeginning) > 0 AND...
PositionOccurrence(NovoTexto,"]",firstRank,FromBeginning) > 0
Existe = True
ELSE
Existe = False 
END

IF NovoTexto <> "Annuler l'abonnement" AND Existe = True
HAdd(T003_LinksForum)
END

Multitask(1)

nPosIni = 0

nPosFim = 0

END


END 


//Elimina o que nao é necessário
FOR EACH T003_LinksForum 
IF T003_LinksForum.T003_Titulo = "" THEN
HDelete(T003_LinksForum)
END 
END



ELSE
Info("Informe o arquivo html ou txt a ser importado") 
END

TableDisplay(TABLE_T003_LinksForum,taReExecuteQuery)

TableDisplay(TABLE_T003_LinksForum,taInit)


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.blogspot.com.br/




0
0




Membre enregistré
1 545 messages
Popularité : +89 (91 votes)
Posté le 15 mars 2016 - 18:56
Para remover a acentuação na importação use:

NovoTexto = NoAccent( UTF8ToString( NovoTexto ) )


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.blogspot.com.br/




0
0




Membre enregistré
1 545 messages
Popularité : +89 (91 votes)
Posté le 15 mars 2016 - 19:04
Prezados

E para gerar o txt do resultado obtido da lista de links de um site:

Procedure GerarTXT()

ok is boolean

Texto is string = "<html><head></head><body><br><br><br>"

FOR EACH T003_LinksForum 

Texto += T003_LinksForum.T003_NovoArquivo + "<br>"

END

Texto += "</body></html>"

ok = fSaveText("c:\temp\links.txt",Texto)

ok = fSaveText("c:\temp\links.html",Texto)

IF ok = True THEN
Info("Arquivos gerados com sucesso!")
ELSE 
Info("Ocorreu um erro: "+ ErrorInfo())
END


Bons estudos!!!!

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller




Curso WinDev - Arquivos - 003 - Diretorio - Criar FmakeDir






Video youtube


http://doc.windev.com/en-US/?3036043&name=fMakeDir
http://doc.pcsoft.fr/fr-FR/?3036043&name=frepcree_fonction



WinDev - Arquivos - 001/... Listar Arquivos de um Diretório e Mostrar Tabela
WinDev - Arquivos - 002/... Diretório - Verificar Se Existe - fDirectoryExist
WinDev - Arquivos - 003/... Diretorio - Criar - FmakeDir
WinDev - Arquivos - 004/... Arquivos - Extrair Dados - Fextractpath
WinDev - Arquivos - 005/... Renomear Arquivos - FRename
WinDev - Arquivos - 006/... Diretório - Verificar Se Existe - FDirExist
WinDev - Arquivos - 007/... Ver Se Arquivo Existe - FFileExist
WinDev - Arquivos - 008/... FcopyFile - > Copiar Arquivos


Nessa aula vou ensinar como criar um Diretório

This class will teach how to create a directory

Cette classe vous apprendra comment créer un répertoire
 

IF fDirectoryExist(SAI_DIRETORIO) THEN
    Info("Diretorio Já Existe Não pode ser Criado")
ELSE
    fMakeDir(SAI_DIRETORIO)
    Info("Diretorio Foi Criado")
END

//Frances
SI fRépertoireExiste(SAI_DIRETORIO) ALORS
    Info("Diretorio Já Existe Não pode ser Criado")
SINON
    fRepCrée(SAI_DIRETORIO)
    Info("Diretorio Foi Criado")
FIN
















Teste

Teste
teste