Foros del Web » Programación para mayores de 30 ;) » C/C++ »

algunas dudas

Estas en el tema de algunas dudas en el foro de C/C++ en Foros del Web. Hola maestros... necesito hacer un sistema de arriendo de videos en C usando como "base de datos" un archivo de texto... tengo todo listo pero ...
  #1 (permalink)  
Antiguo 31/05/2006, 23:13
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 1 mes
Puntos: 16
algunas dudas

Hola maestros... necesito hacer un sistema de arriendo de videos en C usando como "base de datos" un archivo de texto... tengo todo listo pero cuando quiero eliminar no se como borrar la linea del archivo de texto... ademas me gustaría saber si existe alguna función que separe un texto por tabs aguardandolo en una estructura formada por arreglos de caracteres, por ejemplo:

Mi estructura

char nombre[100];
char apellido[100];

Y en el archivo de texto

Felipe Iribarren
Juan González

y que quede así

nombre = Felipe;
apellido = Iribarren;

Espero que se entienda... saludos y gracias de antemano
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #2 (permalink)  
Antiguo 01/06/2006, 00:17
 
Fecha de Ingreso: mayo-2006
Mensajes: 40
Antigüedad: 18 años, 7 meses
Puntos: 0
En los archivos de texto las lineas que lo componen no tienen necesariamente el mismo numero de caracteres, debido a esto, localizar cierto numero de linea implica recorrer desde el principio el archivo buscando el caracter "nueva linea" hasta encontrar el numero de linea deseada. Ahora, encontrada la linea que quieres borrar viene el problema de como hacerlo. No hay una funcion que automaticamente borre la linea y se recorran las restantes de manera que ocupen el lugar de la linea borrada. Esto lo podrias hacer de una manera muy burda por medio de un archivo auxilliar, al cual le copiaras todas las lineas, excepto la que quieres borrar, borraras el archivo original y por ultimo renombraras el auxiliar con el nombre que tenia el original. Pero esto evidentemente consume algo de tiempo, especialmente si vas a manejar muchas peliculas en el video.

Otra manera de hacerlo es usando archivos binarios, en donde la informacion de cada linea ocupe un numero fijo de bytes, de esta manera, buscar una linea implicaria hacer sola operacion y no recorrer todas las lineas desde el comienzo hasta encontrarlas.

De lo ultimo que mencionas, no existe una funcion en la libreria estandar que haga lo de separar partes de una linea divididas con el caracter tabulador, pero hacer una funcion que lo haga no es muy complicado, aunque claro, si apenas estas aprendiendo el lenguaje C o C++ entonces hacerla si estaria algo dificil.

Hace tiempo, en otro foro, puse un ejemplo muy elemental de como hacer bajas, altas y modificaciones usando registros y las funciones de la libreria estandar <stdio.h>. Si te interesa puedo poner el ejemplo para que lo revises o pasarte el enlace del foro donde lo puse a tu e-mail (lo pondria aqui, pero debido a las reglas del foro, no lo puedo hacer hasta que complete un minimo de mensajes).

De la funcion para separar los campos de una linea tambien podria darte unos tips si te interesa (digo, mucha gente prefiere hacerlo por ellos mismo y solo cuando ya no puede entonces acepta sugerencias).
  #3 (permalink)  
Antiguo 01/06/2006, 11:08
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 1 mes
Puntos: 16
te lo agradeceria si me lo envias a mi correo [email protected].... saludos y gracias
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
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 18:22.