Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Desbordameinto al leer fichero de texto

Estas en el tema de Desbordameinto al leer fichero de texto en el foro de Visual Basic clásico en Foros del Web. Hola a todos, tengo que abrir un fichero de texto con unas 42216 lineas de 80 caracteres cada una y terminadas en un retorno de ...
  #1 (permalink)  
Antiguo 13/03/2005, 10:35
 
Fecha de Ingreso: noviembre-2003
Mensajes: 121
Antigüedad: 20 años, 5 meses
Puntos: 0
Desbordameinto al leer fichero de texto

Hola a todos, tengo que abrir un fichero de texto con unas 42216 lineas de 80 caracteres cada una y terminadas en un retorno de carro.
Lo abro de esta forma:

Dim fichero as string
fichero = "C:\hola.p"
Dim num_archivo As Long
num_archivo = Freefile
Dim str_linea As String

Open fichero For Input As nun_archivo
Line Input #nun_archivo, str_linea
' leo las lineas dentro de un For

Con fichero de pocas lineas no tengo ningún problema, pero para uno como el que digo de 42216 me da un error de desbordamiento.

¿cómo puedo abrir el fichero e ir leyendo linea a linea?

Gracias
__________________
"El saber no me sirve de nada si no es para enseñar"
  #2 (permalink)  
Antiguo 14/03/2005, 06:15
Avatar de lic_dahool  
Fecha de Ingreso: noviembre-2003
Mensajes: 418
Antigüedad: 20 años, 6 meses
Puntos: 0
El indice que usas para el For, como esta declarado? recuerda q si usas un Integer no puede superar el 32462 +/-

Prueba a ver si esto resuelve tu problema.

Saludos.
__________________
La cantidad total de inteligencia del planeta permanece constante.
La población, sin embargo, sigue aumentando.

COLE


:cool: Los ordenadores no resuelven problemas ... ejecutan soluciones.
Laurent Gasser


Tienes alguna duda :pensando: ? >>> www.google.com :aplauso: <<<
  #3 (permalink)  
Antiguo 14/03/2005, 06:41
Avatar de Skalitiko  
Fecha de Ingreso: febrero-2005
Mensajes: 81
Antigüedad: 19 años, 2 meses
Puntos: 0
Porque no recorres el archivo dentro de un clclo while

While Not Eof(Num_archivo)
Line Input #Num_archivo,Linea
Wend
  #4 (permalink)  
Antiguo 14/03/2005, 14:07
 
Fecha de Ingreso: noviembre-2003
Mensajes: 121
Antigüedad: 20 años, 5 meses
Puntos: 0
Este es el codigo. Si hago un msgbox(num_lineas) al inicio el valor que me da si es de 42213, pero justo despues de hacerlo me casca la aplicación cuando hay muchos registros, para pocos si lo hace. Num_lineas si es un long

' msgbox(num_lineas)
For I = 2 To num_lineas 'empieza en 2linea pq la primera linea ya fue leida
Line Input #nun_archivo, str_linea

Select Case tabla
Case "Tramos"
MsgBox ("1")

Case Else
str_carac1 = Left(str_linea, 2)
codigo = Left(str_linea, 6)

If str_carac1 = "/" Then
int_num_pol = CInt(Mid(str_linea, 7, 3))
ElseIf str_carac1 = "1" Or str_carac1 = "0" Then
X_point = (Mid(str_linea, 15, 8)) / 100
Y_Point = (Mid(str_linea, 23, 9)) / 100
If (tabla = "Puntos") Then
Z_Point = CDbl((Mid(str_linea, 32, 7)) / 100)
ElseIf (subtipo = stTextos) Then
Z_Point = 0
angulo_txt = CDbl(Mid(str_linea, 45, 4))
texto = Trim(Mid(str_linea, 49, 32))
End If

If (subtipo = stPuntos) Then
Call insert("puntual", int_num_pol, codigo, "", X_point, Y_Point, Z_Point, 0, int_num_elementos_bloque)
ElseIf (tabla = "Textos") Then
Call insert("textual", int_num_pol, codigo, texto, X_point, Y_Point, Z_Point, angulo_txt, int_num_elementos_bloque)
End If
End If
End Select

Next
__________________
"El saber no me sirve de nada si no es para enseñar"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:45.