Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Añadir Espacio A Una Variable [SOLUCIONADO]
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Añadir Espacio A Una Variable [SOLUCIONADO] 
 
estoy intentando hacer una base de datos con archivos .txt o archivos planos pero si meto los dato normalmente me sale muy mal  cuando abro el archivo me sale una cosa asin

    NOMBRE            APELLIDOS             EMAIL
individuo  apellido individuo     

ese es el codigo para que haga esto
PRINT #Archivo, TextBox1.Text & " ", TextBox2.Text & " ", TextBox3.Text
 

como vereis ya e insertado unos espacio pero no es suficiene necesito meterle mas espacios o unos espacios ya predeterminado

asin que currandomelo un poco esto e echo esto
DIM NombreCompleto AS Float
DIM SumaDeNombres AS String


NombreCompleto = Len(TextBox1.Text)

FOR NombreCompleto = NombreCompleto TO 16 ' aqui digo que llege asta 16 porque creo que es el espacio suficiente
NombreCompleto = NombreCompleto + 1 'suma asta 16 que lo hace bien
SumaDeNombres = TextBox1.Text & "/n" ' y aqui es donde esta el problema no hace espacios le e quitado "/n" y le epuesto " " pero nada de nada

NEXT
PRINT #Archivo, TextBox1.Text & " ", TextBox2.Text & " ", TextBox3.Text
 


si teneis alguna idea para hacerlo mejor por favor hazla saber mi idea es poner esto asin

   NOMBRE            APELLIDOS                    EMAIL
   individuo         apellido individuo     

y yo creo que esto se consigue poniendo espacios para que si algun dia lo tenga que pasar a cualquier formto no aya  problemas, a lo mejor lo estoy haciendo y es una gilipollez, pero tambien es para mi, para ver mejor los datos y no confundirme, gracias.
 



 
última edición por david el Lunes, 22 Noviembre 2010, 23:50; editado 2 veces 
david - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Añadir Espacio A Una Variable 
 
david escribió: [Ver mensaje]


y yo creo que esto se consigue poniendo espacios para que si algun dia lo tenga que pasar a cualquier formto no aya  problemas, a lo mejor lo estoy haciendo y es una gilipollez, pero tambien es para mi, para ver mejor los datos y no confundirme, gracias.

casi

lo que mas conviene es usar el formato csv   que lo pueden importar y crear  desde offices  y openofices hasta las bases de datos
porque es un formato estándar y es muy simple
simplemente guarda  los campos separados por comas ,  u otro caracter como ;  o un tab
y los textos encerrados
ma o menos asi

"NOMBRE   ","APELLIDOS","EMAIL"
"individuo    ","individuo","hab_qu_pasa@gmail.com"
 

 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Añadir Espacio A Una Variable 
 
Hola
Citar:
estoy intentando hacer una base de datos con archivos .txt o archivos planos pero si meto los dato normalmente me sale muy mal cuando abro el archivo


Eso te pasa por dos cosas. La primera es que si te da igual utilizar un separador que otro en vez de espacios usa el TAB. Cada tab son ocho espacios pero es un solo caracter. De esa forma cuando quieras obtener los campos de un registro que has leído solo tienes que hacer un split por el tab y te quedan los campos limpitos.

La segunda cosa que has hecho mal es no considerar el ancho de los campos. Si lo haces con una base de datos normal ¿por que crees que no debes hacerlo con una base de datos en texto?

Imaginemos el tamaño de los campos considerando el tabulador. Un tabulador son ocho espacios. Si queremos un campo nombre que le entren 14 caracteres con dos tabuladores tienes los 14 caracteres y el espacio para separar el campo apellidos

El campo apellidos pongamos 4 tabuladores que son 32 caracteres. Tienes espacio para 30 caracteres y el espacio que separará el campo siguiente.

El campo email pongamos cuatro tabuladores. Igualmente tienes espacio para 30 caracteres y el espacio para separar el campo siguiente.

Todo lo que tienes que hacer es controlar esas fronteras de campos. Entonces te quedará todo bien. Por ejemplo si te han escrito en un textbox un nombre de 20 caracteres puedes quedarte con los 14 de la izquierda o bien puedes utilizar la propiedad maxlenght del textbox para que no puedan escribir mas de 14 caracteres.

Cuando haces el print #archivo escribes los valores y les añades los espacios que les falten hasta llenar su campo. Por ejemplo si te escriben el nombre PEPE eso son cuatro caracteres. hasta 14 te faltan diez. Lo que haces es añadirle 10 espacios y un tab. Así estás perfectamente alineado para empezar el siguiente campo donde harás igual.

Pongamos que te dan el nombre en nombre.text. Lo que tu haces es
print #archivo nombre.text & space(14-len(nombre.text)) & "\\t" &   apellidos.text & space(30-len(apellidos.text)) & "\\t" & ...
 


space(x) devuelve un string de x espacios y está para eso. Eso de \\t es porque dentro de un string hay que poner las \ dos veces para que se entienda que es un caracter especial. \t es el tabulador.

Si lo haces bien todos los registros tienen que tener la misma longitud y un listado tabulado será perfecto.

Para leerlo tu haces algo como esto
Dim f as file, datos as string, lineas as string[], campos as string[]
f=open "archivo.dat" for read
read #f, datos,lof(f)


con eso has leído el archivo entero y lo tienes en un gran string llamado datos. Tus registros se separan unos de otros por LF (\n) así que para obtener los registros
lineas=split(datos,"\\n")

Ahora tienes un array donde cada línea es un registro. El acceso es muy rápido porque lo tienes en memoria. Cuando llegas a un registro (pongamos el 7) que te interesa obtener sus campos
campos=split(lineas[7],"\\t")

Ahora tienes un array campos donde cada item es un campo. campos[0] será el nombre, campos[1] apellidos, etc.

Recuerda que metiste espacios para grabarlo y esos espacios allí siguen. Cuando grabaste pepe grabaste "pepe          ". La orden trim te quita esos espacios
Nombre=trim(campos[0])


Un saludo
 
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Añadir Espacio A Una Variable 
 
david:

Tienes que tener tambien en cuenta el tipo de letra, si lo abres el archivo de texto con el openoffice/office etc, por esto:

 pantallazo_1290420863_200441

Esto se debe a que algunos tipos de letra el ancho es distinto de cada letra (por ejemplo la "w" ocupa mas que la "i"),

Yo uso normalmente courier new que tiene el mismo ancho de letra (la "w" ocupa lo mismo que la  "i"). Osea que cuando leas el archivo en el openoffcie formatea el texto con "courier new", para que no tengas problemas con los anchos (porque puedes tenerlo bien con la inserción de espacios pero con el tipo de letra se te mueve todo...)

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Añadir Espacio A Una Variable 
 
gracias chicos me habéis quitado unas pocas horas de calentamiento de tarro, me habeis dado ya hasta como buscar el registro, mas de que se necesita,
otra Vez de nuevos GRACIAS SOIS LOS MEJORES
 



 
david - 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 Cambiar Espacio Por Salto De Linea En Arra... Pablo-GNU General 1 Miercoles, 18 Agosto 2010, 18:00 Ver último mensaje
Pablo-GNU
No hay nuevos mensajes Añadir Datos De Un Combobox A Un Lisbox O... sasogu Controles/Librerías/Componentes 2 Sabado, 27 Agosto 2011, 09:34 Ver último mensaje
sasogu
No hay nuevos mensajes Variable Global Contra Variable Por Refere... Shell General 2 Martes, 28 Octobre 2014, 10:36 Ver último mensaje
jsbsan
No hay nuevos mensajes [SOLUCIONADO] No Puedo Asignar Valores A U... Grandamakulo General 6 Lunes, 31 Octobre 2016, 18:30 Ver último mensaje
Grandamakulo
 

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