PDA

Ver la versión completa : base de datos en c++?



merkaba
24-01-2004, 23:13
Hola a todos.
Hace poco inicié la creación de un programa en c++, el cual simulaba un administrador de usuarios, trae as opciones de agregar usuario, borrar usuario, ver listas de usuarios.
Ahora el metodo que ocupé para esto es algo mas bien "rústico" ya q me las tuve q arreglar como pude para q funcionara.
Acá está una muestra del archivo: (las claves y usuarios son obviamente falsas)

[Usuarios]
/key1=12232323\
+
pedrito||pedrita*
juanitp||miclave*
...
+
/key2=232323232\

Bueno eso es, para agregar usuarios, quitar y listarlos, tuve que crear un algoritmo un poco rústico, q leyera caracter por caracter y por ejemplo cuando llegaba a un / empezaba a almacenar los caracteres hasta llegar al \ así obtenía "key=12232323" luego separaba solamente el valor y mediante un agloritmo lo validaba, en fin. el problema surge en los usuarios, se hace cada vez más complicado y largo a medida que hay más usuarios y pueden surgir muchos errores, por lo tanto mi pregunta es si existe algun controlador para base de datos en c++ (no Visual c++) si, este soporta ODBC, o algo así. Caso contrario q lenjuage me sugieren para crear la aplicacion y q tenga alguna semejanza a C++, ojalá puedan ayudarme. Gracias por tomarse el tiempo de leer este post.

Giskard
25-01-2004, 02:34
Te puedo hacer una recomendación para optimizar tu método, una forma sencilla es que la computadora no necesita que pongas "key=", eso, por decirlo así, no le interesa, lo optimo es poner por cada usuario un renglón para el nombre, otro para la clave y otro para su numero de "key", así mas o menos:

usuario
clave
15796214 <-esta es la llave (key)
usuario segundo
clave del otro usuario
145375

entonces con esto, haces una clase que tenga las variables de nombre, clave y key, y en el constructor pones:
gets(nombre,50,archivo);
gets(clave,30,archivo);
fscanf(archivo,"%d",key);
entonces trabajas con el objeto en tu programa y en el destructor del objeto sólo pasas todo nuevamente al archivo

En caso de que sea muy complicado o no te resulte puedes usar otro lenguaje como visual c++ que seguramente tendrá más facilidad para las bases de datos

merkaba
25-01-2004, 05:16
debo decir que ese metodo no se me había ocurrido, buena idea, voy a intetar con el metodo q tu me propones, a ver si me resulta, gracias por responder, por q no quiero tener q dejar mi querido c++ :D .

flojito
25-01-2004, 10:14
Hola,
sólo añadir una cosilla: la función gets es bastante peligrosa, ya que nunca comprueba la longitud de la cadena. Puedes ver más info en la página man de unix.
Un saludo