Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: LeetCode 25 em Harbour: Revertendo Nós em Grupos de K

_Créditos das imagens: Grok # 🔁 LeetCode 25 em Harbour: Revertendo Nós em Grupos de K ### Por [Naldo DJ](https://github.com/naldodj) — Soluções LeetCode em Harbour/XBase --- ## 📌 Desafio O problema **25. Reverse Nodes in k-Group** do LeetCode nos pede para reverter os nós de uma lista encadeada em grupos de tamanho `k`. Se o número total de nós não for múltiplo de `k`, os nós restantes devem permanecer na mesma ordem. ### Exemplo - **Entrada:** `[1,2,3,4,5]`, `k = 2` - **Saída esperada:** `[2,1,4,3,5]` A implementação deve **manipular apenas os ponteiros dos nós**, sem alterar os valores armazenados. --- ## 🛠️ Implementação em Harbour Você pode conferir o código completo aqui: 📄 [`reverse_nodes_in_k-group.25.1.prg`](https://github.com/naldodj/naldodj-xbase-leetcode-solutions/blob/main/src/hb/025/reverse_nodes_in_k-group.25.1.prg) --- ## 📚 Estrutura da Solução O Harbour não possui estruturas nativas de listas encadeadas, então criei uma classe `TListNode` para simul...

Protheus :: Usando Taskkill para forçar o reinicio dos serviços


Às vezes faz-se necessário reiniciar os serviços do protheus mas através do "serviço" do Windows® isso se torna impossível pois podem existir muitos processos pendentes a interrupção dos serviços . Então podemos fazer uso da ferramenta "taskkill" que no exemplo abaixo está em um "script" em Windows® PowerShell®. Nesse exemplo existem quatro serviços do protheus sendo executados com os seguintes nomes: P10Server5110, P10Server5210, P10Server5310 e P10Server5410 onde P10Server corresponde ao Prefixo do serviço e 5110 a 5410 às portas em que eles escutam.

$IniPort = 5110
$EndPort = 5911
$PrefixProcess = "P10Server"
$NameProcess = ""
for ( $Port = $IniPort ; $Port -le $EndPort ; $Port+=100 )
{
$NameProcess = $PrefixProcess+$Port
if ( get-service | where { $_.status -eq "stopped" -and $_.name -eq $NameProcess} )
{
while ( get-service | where { $_.status -eq "stopped" -and $_.name -eq $NameProcess } )
{
start-service $NameProcess
}
}
elseif ( get-service | where { $_.name -eq $NameProcess} )
{
invoke-expression -command 'taskkill -f -fi "SERVICES eq $NameProcess" /t'
start-sleep -seconds 10
while ( get-service | where { $_.status -lt "running" -and $_.name -eq $NameProcess } )
{
start-service $NameProcess
}
}
}

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