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

Leer de 3 en 3 saltando espacios un fichero

Estas en el tema de Leer de 3 en 3 saltando espacios un fichero en el foro de Visual Basic clásico en Foros del Web. Hola pues lo que pretendo es leer un fichero que tiene el siguiente contenido: 001 001 003 004 Pues lo que quiero es un array ...
  #1 (permalink)  
Antiguo 24/06/2007, 11:39
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Mensaje Leer de 3 en 3 saltando espacios un fichero

Hola pues lo que pretendo es leer un fichero que tiene el siguiente contenido:
001 001 003 004
Pues lo que quiero es un array almacene estos numeros, pero que se salte los espacios, solo quiero que lea los numeros y que cada uno lo almacene en un vector diferente es decir:
numero[0]= 001
numero[1]= 001
numero[2]= 003
numero[3]= 004
¿Me explico con claridad?, con php lo ago asi:
Código PHP:
$archivofopen("../../MAPAS/$datos_guerrero[u_mapa].txt","r"); 
  for (
$n=0;$n<258;$n++)
  {
       
$lecturafread($archivo,3); //Leemos de 3 en 3
    
if ($lectura!== "   "//Cuando haya un nombre de archivo de terreno lo guardamos
    
{
      
$mapa_terreno[$n2]= $lectura;
            
$n2++;
    }
  } 
espero una respuesta=) saludos y gracias!
  #2 (permalink)  
Antiguo 25/06/2007, 04:16
 
Fecha de Ingreso: mayo-2007
Mensajes: 74
Antigüedad: 17 años
Puntos: 1
Re: Leer de 3 en 3 saltando espacios un fichero

usar la función split
  #3 (permalink)  
Antiguo 25/06/2007, 05:23
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Escribir datos en la misma linea de un fichero

Vale la lectura ya la he conseguido, ya consigo que se lean los datos y se muestren en pantalla a modo de tiles =p (no use split >_>), ahora lo que deseo es lo contrario, es decir, Escribir datos pero que cada vez que utilizo la funcion que hace esto, no lo haga en una linea diferente, sino en la misma linea ya que intento algo como esto:
Código:
Open "mapas/" & rfic & ".txt" For Output As nfic
    For n = 0 To 238
        Print nfic, mapa(n)
    Next
End Sub
Pero me escribe el valor en lineas diferentes, ¿Como ago para que me escriba los valores en la misma linea del archivo?

gracias y saludos!
  #4 (permalink)  
Antiguo 25/06/2007, 05:37
 
Fecha de Ingreso: mayo-2007
Mensajes: 74
Antigüedad: 17 años
Puntos: 1
Re: Leer de 3 en 3 saltando espacios un fichero

Print nfic, mapa(n);
  #5 (permalink)  
Antiguo 25/06/2007, 06:39
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Leer de 3 en 3 saltando espacios un fichero

1.- Esa funcion me imprime datos en pantalla..
2.- Esa funcion escribe cada valor en una linea diferente..
¿Porque no lees mejor los mensajes antes de contestar?, eso no me sirve...
aunque gracias por el esfuerzo

¿alguien puede ayudarme? gracias
  #6 (permalink)  
Antiguo 25/06/2007, 11:48
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Leer de 3 en 3 saltando espacios un fichero

Alguien podria ayudarme?, gracias
  #7 (permalink)  
Antiguo 25/06/2007, 13:18
 
Fecha de Ingreso: mayo-2007
Mensajes: 74
Antigüedad: 17 años
Puntos: 1
Re: Leer de 3 en 3 saltando espacios un fichero

1- Sí, imprime datos en pantalla. Pero mejor que yo lea los mensajes antes de contestar es que te fijes en el código que usas antes de preguntar. Tu código

Open "mapas/" & rfic & ".txt" For Output As nfic
For n = 0 To 238
Print nfic, mapa(n)
Next

también imprime datos en pantalla, y guarda un archivo de texto sin contenido.

Si lo que querés es guardar datos en un archivo de texto, en lugar de usar

print nfic, mapa(n)

tenés que usar

Open "mapas\" & rfic & ".txt" For Output As #1
For n = 0 To 238
Print #1, mapa(n);
Next n
close #1

2- Fijate en el ; después de la instrucción print, eso hace que los textos se guarden uno a continuación del otro sin espacio.
Ojo también con la barra de "mapas/", que no es "/" sino que es "\".
Y también se puede usar la función join, que está explicada en la ayuda de VB.
Saludos, astuto.

Última edición por fero; 25/06/2007 a las 17:50
  #8 (permalink)  
Antiguo 26/06/2007, 04:30
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Leer de 3 en 3 saltando espacios un fichero

Gracias por la respuesta. sorry por mi comportamiento xD, una ultima pregunta, ¿como rompo un sub?, es decir, en un sub quiero que este deje de ejecutarse, ¿como lo ago?

gracias
  #9 (permalink)  
Antiguo 26/06/2007, 04:41
 
Fecha de Ingreso: mayo-2007
Mensajes: 74
Antigüedad: 17 años
Puntos: 1
Re: Leer de 3 en 3 saltando espacios un fichero

De la ayuda de VB:
Las palabras clave Exit Sub causan la inmediata salida de un procedimiento Sub. La ejecución del programa continúa con la instrucción que sigue a la instrucción que llamó el procedimiento Sub. Cualquier número de instrucciones Exit Sub puede aparecer en cualquier lugar de un procedimiento Sub.
  #10 (permalink)  
Antiguo 26/06/2007, 05:30
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Leer de 3 en 3 saltando espacios un fichero

Muchas gracias ^^ eso es en la msdn? esque no la tengo instalada..
Otra pregunta que no se si sera posible pero bueno hay va..
¿Se pueden interponer dos picturebox?, y que la que hay encima sea transparente, esque en la de abajo quiero poner un tile y encima un personaje, y que se vean ambas

saludos!
  #11 (permalink)  
Antiguo 26/06/2007, 07:38
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Leer de 3 en 3 saltando espacios un fichero

Ademas: ¿como puedo averiguar el numero de lineas de un txt?
y: ¿Como puedo sacar el primer caracter que hay en una variable de tipo string?
gracias

Última edición por astut; 26/06/2007 a las 08:21
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 03:54.