Visual Basic - Buscando mas eficiencia

Life is soft - evento anual de software empresarial
 
Vista:

Buscando mas eficiencia

Publicado por Sergio (3 intervenciones) el 13/04/2005 13:43:40
Hola a todos
Estoy haciendo un programilla para recorrer ficheros de gran tamaño, 100.000 lineas, y aunque el programa que he hecho funciona me pregunto si existe alguna manera de acelerarlo, de hacerlo mas eficiente. Gracias a todos por vuestra atencion.
Sub BuscaEnFichero(Fichero As String, Limite As Integer, ByRef Resultado As TextBox)
Dim Cadena As String
Dim contador, Max, Min as Long
'Primero cuento las lineas del fichero
Canal = FreeFile
Open Fichero For Input Access Read Shared As #Canal
Resultado.Text = Resultado.Text + vbCrLf + "Abriendo: " + Fichero
contador = 0
Do Until EOF(Canal)
Line Input #Canal, Cadena
contador = contador + 1
DoEvents
Loop
Resultado.Text = Resultado.Text + vbCrLf + "Numero de lineas: " + CStr(contador)
Close #Canal
'Con el numero de lineas me preparo a revisar las ultimas
Max = contador
Min = Max - Limite
If Min < 0 Then
Min = 0
End If
'Busqueda en ultimas lineas segun el limite
' Colocarse en posicion
contador = 0
Canal = FreeFile
Open Fichero For Input Access Read Shared As #Canal
Do Until EOF(Canal) Or contador >= Min
Line Input #Canal, Cadena
contador = contador + 1
DoEvents
Loop
'Estamos en posicion o al final del fichero(caso de error)
Do Until EOF(Canal) Or contador >= Max
Line Input #Canal, Cadena
'Buscar una cadena dentro de la linea
If InStr(Cadena, TxtBuscado.Text) > 0 Then
Resultado.Text = Resultado.Text + vbCrLf + Cadena
End If
contador = contador + 1
DoEvents
Loop
Close #Canal
End sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder