Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: LeetCode :: Comparando Implementações Harbour e TLPP para o Desafio Longest Palindromic Substring

_Créditos das imagens: ChatGPT_ ### LeetCode :: Comparando Implementações Harbour e TLPP para o Desafio Longest Palindromic Substring Resolver o problema do [Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring/description/) é um exercício clássico de programação, que desafia desenvolvedores a encontrar a maior substring palindrômica dentro de uma string. Recentemente, exploramos soluções tanto em Harbour quanto em TLPP (Total Language Protheus Programming). Neste artigo, comparamos as implementações nessas duas linguagens, destacando suas semelhanças, diferenças e funcionalidades específicas. #### Implementações em Harbour ##### Versão 5.1 Essa solução utiliza a técnica de expansão a partir do centro do palíndromo. Cada caractere ou par de caracteres consecutivos é considerado um possível "centro". O algoritmo expande em ambas as direções enquanto os caracteres forem iguais, retornando o maior palíndromo encontrado. ##### Versão 5....

Protheus :: PowerShell e Script para validação do XML com o seu respectivo "schema" XSD.

Cristian Regazzo me "apurrinhou" um bocado para que eu publicasse um "post" sobre validação de "xml" usando o respectivo "schema xsd". Ele queria que eu fizesse isso em Advpl. Pensei um bocado e vi que levaria um bom tempo para implementar. Sendo assim, e graças à Google, achei um "script" em "Windows® PowerShell®" que faz essa validação "Validate Xml against XSD Schema". Peguei emprestado o código, fiz algumas adaptações. A diferenças básicas entre o "script" original e o alterado por mim são:
1 ) Parâmetros de Entrada

[string]$xmlFile -> Receberá o nome do arquivo xml para validação
[string]$xsdFile -> Receberá o nome do arquivo xsd com o schema para validação
[string]$DirLogFile -> Diretório para a geração do Log caso ocorram erros na validação

2 ) Geração de log de erro na validação do xml. Obs.: Os logs só serão gerados para os xmls com erro.

Um exemplo de uso ( bem simples, poderá ser melhorado conforme a necessidade de quem for utilizar ) :


1: /*/
 2: Function: U_PsXmlValid()
 3: Autor:  Marinaldo de Jesus
 4: Data:  16/08/2010
 5: Uso:  Validar Arquivos xml de acordo com o "schema" xsd
 6: /*/
 7: User Function PsXmlValid()
 8: 
 9:  Local aXml   := {;
10:        { "d:\books0.xml" , "d:\books.xsd" , "d:\"  },;
11:        { "d:\books1.xml" , "d:\books.xsd" , "d:\" },;
12:        { "d:\books2.xml" , "d:\books.xsd" , "d:\" },;
13:        { "d:\books3.xml" , "d:\books.xsd" , "d:\" },;
14:        { "d:\books4.xml" , "d:\books.xsd" , "d:\" },;
15:        { "d:\books5.xml" , "d:\books.xsd" , "d:\" };
16:       } 
17:                  
18:  Local cCommand := ""
19: 
20:  Local nLoop
21:  Local nLoops := Len( aXml )
22: 
23:  For nLoop := 1 To nLoops
24:   cCommand := "powershell.exe -NonInteractive -WindowStyle Hidden Validate-Xml.ps1  "
25:   cCommand += aXml[nLoop,1]
26:   cCommand += " "
27:   cCommand += aXml[nLoop,2]
28:   cCommand += " "
29:   cCommand += aXml[nLoop,3]
30:         WinExec( cCommand )
31:  Next nLoop
32: 
33: Return( NIL )
      



Esse exemplo é bem simples, mas serve para demonstrar o uso do "script" de validação. Nele os arquivos que serão validados estão em uma pasta de um diretório específico no meu note, altere-o de acordo com as suas necessidades e complexidades.
Não vou transcrever o "script" aqui uma vez que já o referenciei através do "link". Mas, como sempre, ao final do "post" vou disponibilizar todos os programas e arquivos associados para "download".
Para que seja possível executar o "script" alguns procedimentos deverão ser tomados:

  • Baixe e instale o Windows® PowerShell® na máquina cliente ( para execução no server leia o manual do Windows® PowerShell® );

  • Para que o "script" possa ser executado faz-se necessário autoriza-lo através do Windows® PowerShell®, sendo assim, execute o Windows® PowerShell® e digite o seguinte comando: get-help about_signing. Esse comando irá listar as opções de "Diretivas de Assinatura e de Execução" de "Script", leia-as atentamente. Mas se quiser pular esse passo (eu não recomendo) digite o seguinte comando no Windows® PowerShell®: Set-ExecutionPolicy Unrestricted. Esse comando fará que qualquer "Script" seja executado em sua máquina (mas atente para os ítens de segurança listados à partir do comando get-help about_signing).

  • Recomendo que o "script" seja copiado para a pasta de instalação do Windows® PowerShell®, no meu caso: C:\WINDOWS\system32\WindowsPowerShell\v1.0 . Dessa forma não será necessário passar o caminho completo ao Executar o PowerShell.exe.
Bem, Cristian Regazzo, acho que esse "post" vai "livrar a sua alma", e, melhor do que ele os arquivos que disponibilizo ao clicar aqui. O arquivo u_PsXmlValid.7z contém:
books0.xml a books5.xml, books.xsd ( que usei no exemplo ), o programa em Advpl u_PsXmlValid.prw e o "Script" Validate-Xml.ps1.
Bom proveito.
[]s
иαldσ dj

Comentários

Postagens mais visitadas