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....

Windows® PowerShell® "Script" para sincronização do Repositório do Protheus


Hoje Postarei uma nova dica de como criar um "script", utilizando o Windows® PowerShell® para sincronizar os "Repositórios de Objetos" do Protheus entre o ambiente de desenvolvimento e o de produção.

Crie o arquivo syncApos.ps1 e, utilizando um editor de texto de sua preferência (Notepad, Notepad++ ou Edit, etc.), inclua o código abaixo e altere-o de forma a adequar-se às suas necessidades.

Tendo feito isso basta criar um agendamento utilizando o Agendador de Tarefas do Windows® ("Task Manager") e seus repositórios serão sincronizados.

$find = ""
$pathbin = "d:\totvs\p10\bin"
$iniFile = "totvs*.ini"
$rpospath = "d:\totvs\p10\rpos\"
$rposmatch = get-childitem -path $rposPath
$rpoName = "tttp101.rpo"
foreach( $pathrpo in $rposmatch )
{
$pathrpoName = $pathrpo.Name
$find00 = "sourcepath=d:\\totvs\\p10\\rpos\\$pathrpoName\\rpo00\\"
$find01 = "sourcepath=d:\\totvs\\p10\\rpos\\$pathrpoName\\rpo01\\"
$find02 = "sourcepath=d:\\totvs\\p10\\rpos\\$pathrpoName\\rpo02\\"
$find03 = "sourcepath=d:\\totvs\\p10\\rpos\\$pathrpoName\\rpo03\\"
$find04 = "sourcepath=d:\\totvs\\p10\\rpos\\$pathrpoName\\rpo04\\"
$match = get-childitem -path $pathbin -include $iniFile -recurse | select-string $find00 -list
if ( $match -match $find00 )
{
$find = $find00
$TargetFilePathRpoSync = "d:\totvs\p10\rpos\$pathrpoName\rpo01\"
}
else
{
$match = get-childitem -path $pathbin -include $iniFile -recurse | select-string $find01 -list
if ( $match -match $find01 )
{
$find = $find01
$TargetFilePathRpoSync = "d:\totvs\p10\rpos\$pathrpoName\rpo02\"
}
else
{
$match = get-childitem -path $pathbin -include $iniFile -recurse | select-string $find02 -list
if ( $match -match $find02 )
{
$find = $find02
$TargetFilePathRpoSync = "d:\totvs\p10\rpos\$pathrpoName\rpo03\"
}
else
{
$match = get-childitem -path $pathbin -include $iniFile -recurse | select-string $find03 -list
if ( $match -match $find03 )
{
$find = $find03
$TargetFilePathRpoSync = "d:\totvs\p10\rpos\$pathrpoName\rpo04\"
}
else
{
$find = $find04
$TargetFilePathRpoSync = "d:\totvs\p10\rpos\$pathrpoName\rpo00\"
}
}
}
}
$replace = "sourcepath="
if( !$TargetFilePathRpoSync.endsWith("\")) { $TargetFilePathRpoSync+="\" }
$replace += $TargetFilePathRpoSync
$TargetFilePathRpoSync += $rpoName
$SourceFilePathRpoSync = "\\100.0.9.75\p10rpo$\$pathrpoName\rpo00\"
$SourceFilePathRpoSync += $rpoName
if((get-item $SourceFilePathRpoSync).lastWriteTime -gt (get-item $TargetFilePathRpoSync).lastWriteTime)
{
copy-item $SourceFilePathRpoSync $TargetFilePathRpoSync -force
get-childitem -path $pathbin -include $iniFile -recurse | select-string $find -list |% { (get-content $_.Path) |% { $_ -replace $find, $replace } | set-content $_.Path ; while( (Get-Item $_.Path).Length -eq 0 ){ set-content $_.Path } }
}
}

Comentários

Postagens mais visitadas