Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: LeetCode 23: Mesclando K Listas Ordenadas com Harbour/xBase e Reutilização de Código

_Créditos das imagens: ChatGPT **Título:** LeetCode 23: Mesclando K Listas Ordenadas com Harbour/xBase e Reutilização de Código **Introdução** Olá, entusiastas de Harbour/xBase e desafios de programação! Depois de explorarmos como mesclar duas listas ordenadas no [nosso post sobre o LeetCode 21](https://www.blacktdn.com.br/2025/03/blacktdn-leetcode-21-merge-two-sorted.html), vamos dar um passo adiante e enfrentar um problema um pouco mais complexo: o LeetCode 23 - Merge K Sorted Lists. Neste artigo, vamos desvendar uma implementação em Harbour/xBase para este desafio, demonstrando como podemos inteligentemente reutilizar a solução que já construímos para o problema 21. Veremos como a modularidade e a construção sobre soluções anteriores podem simplificar problemas mais complexos. **O Problema: LeetCode 23 - Merge K Sorted Lists** O desafio é o seguinte: dado um array (`aLists` em nossa implementação) contendo `k` listas encadeadas, onde cada lista já está ordenada em ordem cres...

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

Hoje Postarei uma 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. Altere o "Path" <$path>, a "string" de busca <$find>, a "string" de substituição <$replace>,o caminho de onde o repositório deverá ser copiado e o diretório de destino do repositório para adequar às suas necessidades.

Para maiores informações de como instalar o Windows® PowerShell® e de como executar "scripts" leia o "Post" Conexão automática ao Claro3G.

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

Obs.: Para que o "script" possa ser executado no "Task Manager" faz-se necessário informar o caminho completo do programa que irá executá-lo e o "script" a ser executado. Ex.: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\totvs\p10\scripts\syncApos.ps1

Se desejar baixar os "scripts" de exemplo para a sincronização dos "apos/rpos" do Protheus clique nos respectivos links: mp8syncApos.ps1 e p10syncApos.ps1.

$path = "d:\totvs\p10\bin"
$find = "SourcePath=d:\\totvs\\p10\\rpos\\rpo1"
$iniFile = "totvs*.ini"
$match = get-childitem -path $path -include $iniFile -recurse | select-string $find -list
if ( $match -match $find )
{
$replace = "SourcePath=d:\totvs\p10\rpos\rpo2"
cd d:\totvs\p10\rpos\rpo2
xcopy \\100.0.9.125\p10rpo$\rpo1\tttp101.rpo /s /c /y /d
}
else
{
$find = "SourcePath=d:\\totvs\\p10\\rpos\\rpo2"
$replace = "SourcePath=d:\totvs\p10\rpos\rpo1"
cd d:\totvs\p10\rpos\rpo1
xcopy \\100.0.9.125\p10rpo$\rpo1\tttp101.rpo /s /c /y /d
}
get-childitem -path $path -include $iniFile -recurse | select-string $find -list |% { (get-content $_.Path) |% { $_ -replace $find, $replace } | set-content $_.Path }

Comentários

Postagens mais visitadas