Problema
Se debe hacer una búsqueda en power shell en una gran cantidad de datos, digamos un archivo de texto con 200 mil registros, de a uno por línea. La búsqueda común en powershell tarda mucho.
Solución
Se realiza la búsqueda utilizando ArrayLists (System.Collections.ArrayList)
clear
#leo el archivo
$db = get-content miArchivo
#cargo el contenido del archivo en un ArrayList
[System.Collections.ArrayList] $list = New-Object System.Collections.ArrayList
foreach ($item in $db){
[void] $list.Add($item)
}
#ordeno el archivo (sin esto no funciona la búsqueda binaria)
$list.Sort()
$reg = Read-Host "Ingrese el registro a buscar"
$pos = $list.BinarySearch($reg)
if ($pos -ge 0){
Write-Host "El registro se encuentra en la posición: " + $pos
}else{
Write-Host "No se encuentra el registro"
}
Más info en:
ArrayList (sort)
No hay comentarios:
Publicar un comentario