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 :: "Windows® PowerShell® Sincronizando Arquivos

Para quem possui um servidor de Contingência do Totvs/Protheus ou apenas um local para efetuar a cópia de todos os arquivos utilizados pelo Totvs/Protheus para posterior "backup" ou ainda para ter um ambiente de desenvolvimento o mais próximo possível do de produção, segue um "script", em Windows® PowerShell®, para tal finalidade. Esse "script" copia todos os arquivos do diretório informado, excluindo os arquivos de índices, temporários e de trabalho de um servidor para outro. No meu caso, criei uma tarefa no Windows® "Task Manager/Agendador de Tarefas", que é executada diariamente e a cada 2 horas para esse fim. Segue o "script".

function SyncTotvsPath
{
param(
$totvsTarget = "d:\totvs\",
$totvsSource = "\\100.0.9.5\d$\totvs\"
)

if( !$totvsTarget.endsWith("\")) { $totvsTarget+="\" }
if( !$totvsSource.endsWith("\")) { $totvsSource+="\" }

$log = join-path $totvsTarget "TotvsChanges.log"

if ( Test-Path $log )
{
$TotvsChangesLog = get-item $log
if ( $TotvsChangesLog.Length -ge 61440 )
{
$TotvsChangesLog.Delete()
}
}

add-content -force $log -value "`n`n[$(get-date)]Totvs sync path has started"

$TotvsGet = Get-ChildItem -path $totvsSource -recurse -exclude *.bmi,*.cdx,*.csv,*idx,*.ind,*.int,*.##r,*.#db,*.#nu,*.#lp,*.#ls,*.#le,*.log,*lck,*.tmp,*.itmp,*.zip,c0*.*,c1*.*,c2*.*,c3*.*,c4*.*,c5*.*,c6*.*,c7*.*,c8*.*,c9*.*,sc0*.*,sc1*.*,sc2*.*,sc3*.*,sc4*.*,sc5*.*,sc6*.*,sc7*.*,sc8*.*,sc9*.*,*.htm*,*.xml*,*.js*,*.jpg,*.jpeg,*.bmp,*.bitmap,*.gif | Where { -not $_.FullName.Contains( "mp8h" ) -and -not $_.FullName.Contains( "p10h" ) }

foreach( $file in $TotvsGet )
{
$fileName = $file.FullName
$localFile = $file.FullName.Replace($totvsSource,$totvsTarget)
$msgNew = "new file found: $fileName , downloading..."
$msgUpdate = "file : $fileName is changed, updating..."
$msgNoChange = "nothing changed for: $fileName"

if( Test-Path $localFile )
{
if($file.lastWriteTime -gt (get-item $localFile).lastWriteTime)
{
copy-item $file.FullName $localFile -force
write-host $msgUpdate -fore yellow
add-content -force $log -value $msgUpdate
}
else
{
add-content $log -force -value $msgNoChange
write-host $msgNoChange
}
}
else
{
write-host $msgNew -fore green
add-content -force $log -value $msgNew
copy-item $file.FullName $localFile -force
}
}
}
SyncTotvsPath

Para que o "script" possa ser executado faz-se necessário autoriza-lo através do Windows® PowerShell®, sendo assim, execute oWindows® 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).



Comentários

Postagens mais visitadas