Obtener Paquetes Y Dependencias


Objetivo: Obtener Paquetes Y Dependencias
Hola

He estado jugando un poquito con la salida de apt a ver que podía obtener sobre paquetes y dependencias y como ha sido algo muy simple os posteo aquí los códigos para que los podais probar.

El objetivo es poder buscar un paquete y las dependencias totales que tiene. Esto es un arbol de dependencias completo.

Se me ocurre que la mejor forma de visualizarlo es en un columview mostrando una estructura arbórea, pero para hacer mas inteligible el código pondré los paquetes y en un gridview y las dependencias en otro. Al fin y al cabo se trata de hacer código comprensible.

Rutina para buscar un paquete
necesitamos en un formulario un textbox donde escribiremos el paquete a buscar, un botón para buscar y un grid de un tamaño de width=700 para que se vea bien en un formulario con miximized=true

Este es el código que va en el botón

DIM lineas AS String[], paquetes AS String[], Salida AS String, contador AS Integer

Grid.Columns.Count = 2
Grid.Columns[0].Width = 150

SHELL ("apt-cache search " & textbox.text) TO salida
salida = Replace(salida, " - ", " @ ") ' ----> para distinguir donde está el nombre del paquete y donde su descripción
lineas = Split(salida, gb.newline) ---> meter en cada linea el paquete y descripción separados por @
Grid.Rows.count = lineas.Length + 1 ' ---> dimensionar las filas que necesito en el grid mas la cabecera
Grid[0, 0].Text = "Paquete"
Grid[0, 1].text = "Descripción"
FOR contador = 0 TO lineas.Max
paquetes = Split(lineas[contador], "@") ' ---> separar nombre de descripción
TRY Grid[contador + 1, 0].text = paquetes[0] '---> el nombre del paquete
TRY Grid[contador + 1, 1].text = paquetes[1] ' ---> la descripción del paquete
NEXT

FINALLY
Grid.Refresh

CATCH

END

última edición por soplo el Viernes, 09 Octobre 2009, 18:56; editado 2 veces
Perfil MP  
Objetivo: Re: Obtener Paquetes Y Dependencias
Código para listar las dependencias totales de un paquete
Aprovechando los controles anteriores añadimos un botón nuevo al que pegamos el siguiente código

DIM lineas AS String[] salida AS String, contador AS Integer

Grid.Columns.Count = 2
Grid.Columns[0].Width = 150

SHELL ("apt-rdepends " & textbox.text & " | grep -v depends") TO salida
lineas = Split(salida, gb.newline)
Grid.Rows.count = lineas.Length + 1
Grid[0, 0].Text = "Paquete"
Grid[0, 1].text = "Dependencia"
FOR contador = 0 TO lineas.Max
IF InStr(lineas[contador], ":") > 0 THEN 'si hay en la línea el signo : es que es una dependencia
TRY Grid[contador + 1, 1].text = lineas[contador] '---> poner el nombre del paquete
ELSE
TRY Grid[contador + 1, 0].text = lineas[contador] '---> en la otra columna poner sus dependencias
ENDIF
NEXT

FINALLY
c.Refresh


La palabra "depende" la pone apt y será la correspondiente a los locales de cada sistema.

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4948s (PHP: -79% SQL: 179%)
Consultas SQL: 46 - Debug off - GZIP Activado