Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Leer Un Texto Anterior A Una Palabra
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Leer Un Texto Anterior A Una Palabra 
 
Hola, soy nuevo en el foro, y realmente nuevo programando en gambas, quiero hacer un programa que requiere conocer el nombre de las interfaces de red en mi sistema Xubuntu, no sé si me estoy complicando la vida, pero mi idea era la siguiente:

usar el comando ifconfig para obtener la información de la tarjeta de red:

Shell ("ifconfig > /home/configuracion")

Y ahora tengo un archivo que se llama "configuracion" dentro de mi carpeta home

Ahora lo que quiero es abrir ese archivo y leer línea por línea sólo lo que se encuentra antes de la frase: "Link encap:"
y almacenarlo en una variable, creo que aquí necesitaré usar un arreglo (Que tampoco sé muy bien cómo se usan en gambas)

La idea es que siempre lo que está antes de esa frase será una interfaz de red, sé que si logro leer lo que está justo antes de esa frase voy a obtener una cadena con espacios, pero después se pueden eliminar.

Como he dicho anteriormente, no sé si me estoy complicando la vida, quizás hay una forma mejor para obtener estos datos en gambas o usando la consola, estoy atento a cualquier mensaje

Gracias  
 



 
rootchack - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Leer Un Texto Anterior A Una Palabra 
 
Bienvenido.
Lo que buscas es sencillo, sólo debes primero encontrar la posición de la cadena que buscas (función instr) luego extraer todo desde el inicio hasta esa posición (función mid o left) y luego dividirlo en líneas que almacenas a un array (función split)
Desglosando (aunque se puede hacer en muchas menos líneas) sería algo así

dim s as string
dim ar as string[] 'este es el array
dim n as integer
s=file.load("~/configuracion") 'cargas el fichero en una variable
n=instr(s,"Link encap:") 'obtienes la posicion
s=left(s,n) 'extraes todo lo que va antes de esa cadena
ar=split(s,gb.newline) 'almacenas en un array esas líneas


Con eso ya tienes el array con el contenido del fichero hasta Link encap una línea en cada elemento.

Saludos.
 




===================
No podemos regresar
 
última edición por shordi el Miercoles, 21 Junio 2017, 07:49; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Leer Un Texto Anterior A Una Palabra 
 
En una sola línea sería

ar = Split(Left(file.load("~/configuracion"), InStr(file.load("~/configuracion"), "Link encap:")))


Más o menos...  aunque sería más lento por recurrir dos veces al fichero en lugar de una, claro   
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Leer Un Texto Anterior A Una Palabra 
 
Sin utilizar el comando Shell.


Ya que te interesa conocer solo el nombre de las interfaces de red, tú podrías recobrar sus nombres desde sus file-device en la carpeta "/proc/net/dev_snmp6".

Ejemplo:
Public Sub Main()

  Dim archivos As String[]
  Dim s As String
  
    archivos = Dir("/proc/net/dev_snmp6", Null, gb.Device)
    
    For Each s In archivos
      Print s
    Next

End




Una otra posibilidad podría ser recobrando sus nombres desde el archivo "/proc/net/dev".

Ejemplo:
Public Sub Main()
  
   Dim ss As String[]
  Dim s As String
  Dim b As Byte
  
   s = File.Load("/proc/net/dev")
  
   ss = Split(s, gb.NewLine)

   For b = 2 To ss.Max
     If IsNull(ss[b]) = False Then Print LTrim(Scan(ss[b], "*:*")[0])
   Next

End

 



 
última edición por vuott el Miercoles, 21 Junio 2017, 19:42; editado 3 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Cómo Busco Una Palabra Exacta En Una Cade... DEATH Bases de Datos 11 Jueves, 10 Enero 2013, 19:40 Ver último mensaje
jsbsan
No hay nuevos mensajes Leer Un Texto Con Las Funciones Externas D... vuott Aplicaciones/Fragmentos de Código 2 Viernes, 31 Enero 2014, 09:06 Ver último mensaje
shordi
No hay nuevos mensajes Extraer Una Palabra De Un Texto. shordi General 9 Lunes, 18 Agosto 2014, 08:40 Ver último mensaje
Shell
No hay nuevos mensajes Como Colorear Una Palabra En El Texto De U... v3ctor General 4 Lunes, 18 May 2015, 17:04 Ver último mensaje
vuott
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron