Construir mis propias tablas en C++

Iniciado por DanielC++, 14 Octubre 2008, 22:58 PM

0 Miembros y 1 Visitante están viendo este tema.

DanielC++

Hola

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

struct inputData
{
    int codigo;
    string nombre;
    string apellido;
};

int main(int argc, char *argv[])
{
      inputData info = {0,"",""};
      ofstream output ("C:\\Dev-Cpp\\C++Fuentes\\archivos\\userINFO.txt", ios::app);
   
      if(!output.fail())
  {
                                       
            cout<<endl<<" Ingrese codigo.....: ";
            cin>>info.codigo;
            cin.ignore(1);
            cout<<endl<<" Ingrese su nombre..: ";
            cin>>info.nombre;
            cin.ignore(1);
            cout<<endl<<" Ingrese su apellido: ";
            cin>>info.apellido;
            cin.ignore(1);
             
            cout<<endl<<" Escribiendo en el archivo -userINFO.txt- . . ."<<endl;
             
            output<<info.codigo<<"#";
            output<<info.nombre<<"#";
            output<<info.apellido<<"#";
             
            if (!output.bad())
   {
                cout<<endl<<" Se ha guardado la informacion con exito." <<endl <<endl;
               
            }
            else
   {
                  cout<<endl<<"No se pudo escribir la data en el archivo con exito."<<endl;
                  cout<<endl<<"Verifique que tenga suficiente espacio en el disco duro para la escritura."<<endl;
            }
            output.close();
       }
       else
             cout<<endl<<"No se pudo abrir o crear el archivo..."<<endl;
       
cout << " Pulse cualquier tecla para continuar...";
    system("PAUSE>nul");
return EXIT_SUCCESS;
}


Bueno algo e logrado, pero para seguir adelante nocesito ayuda.-
Lo que tengo escrito en userINFO.txt es lo siguiente:
0001#David#Rosental#0002#Roberto#Virgili#...0835#...#....#....
Lo que no se como hacer y espero puedan ayudarme es:
1): Que sintaxis debo implementar para realizar una búsqueda de los códigos...?
2): una vez hallado el mismo, como debo hacer para guardar el contenido en tres
     variables distintas...?
     Ej. string codigo =  0002 - string nombre = Roberto - string apllido = Virgili

Espero se entienda.-
Saludos
Abraza las cosas y personas malas como si fueran
tu mas preciada joya.-
Son tus mas grandes maestros de paciencia sabiduría y amor y cuando los abrazas...
dejan de causar dolor.-

savanibi

Hola amig@s, soy nueva por este foro, y leyendo sus comentarios estaba interesada en el tema, y es que estoy intentando hacer una tabla, o una especie de tabla en archivos .txt de forma que:

ofstream fs("nombre.txt", ios::app);
fs <<i<<'\t'<<nombre<<'\t'<<resultado<<'\n';
fs.close();

La cuestión es que quiero que aparezca algo así como:

1      Nombre1           Resultado_OK
2      Nombre2           Resultado_NOOK
3      Nombremáslargo            Resultado_OK

Entonces el problema es que cuando escribo un nombre largo, como estoy usando tabuladores, pues no me quedan las columnas bien.

También intenté escribirlo con fs.write() y colocando el cursor con fs.seekp(), pero me escribía más de lo que ponía y me aparecía algo así:

1        Nombre1  ...ando

savanibi

Lo siento publiqué sin darme cuenta sin terminar:

quería decir que me aparecía algo así:

1        Nombre1  ...ando     Resultado_OK
2        Nombre2  ....ando    Resultado_OKREsult
3        Nombremáslargo     Resultado_NOOK Re

Bueno les agradezco mucho su ayuda. Lo siento si alguna pregunta es muy tonta, pero recién ando en el tema.

Anibal784

    Juas, la web es un repositorio gigante  :D  :D  :D.

http://c.conclase.net/ficheros/index.php, fíjensen acá, sobre todo en la parte de Ficheros de índices

savanibi, buscá darle formato a la salida en C++ ya que existen un par de ¿funciones? sobre flujos que permiten modificar (por ejemplo si escribís un número que salga con 4 dígitos, ej: 1 se escribiría como 0001).
El que llega sin que lo llamen, se va sin que lo echen.

Citar
Vos no la votaste por eso la tenes adentro.
Lo fino no es lo tuyo, y a mi me chupa un huevo, soy argentino y no peronista, y eso es lo que realmente te molesta.

yasmin_princess

necesito que me ayuden por que  nose nada de c++ y me encargaron esto porfavor ayudenme  se los agradecería demasiado

declare un arreglo de tamaño 100 luego capture en cada espacio que sea multiplo de 7 un numero entero que debera estar en el rango de 20-300, en caso de no estar en el rango vuelvalo a pedir hasta que lo sea. muestrela tabla completa, montrando la pocision de cada elemento y lo que contiene

yasmin_princess

necesito que me ayuden por que  nose nada de c++ y me encargaron esto porfavor ayudenme  se los agradecería demasiado

declare un arreglo de tamaño 100 luego capture en cada espacio que sea multiplo de 7 un numero entero que debera estar en el rango de 20-300, en caso de no estar en el rango vuelvalo a pedir hasta que lo sea. muestrela tabla completa, montrando la pocision de cada elemento y lo que contiene

flony

se que se puede hacer, nunca me salio asi que eleji otro reto personal :)
lo que dicen los chicos de manejo de txt lo podes encontrar en varios lugares el que dice anibal784 esta bueno...ahora si queres una base de datos reales, que es donde cruzas informacion de varias tablas para obtener una, eso solo se logra con mysql, sql server, oracle, sql lite,foxpro etc tec para ello deberas leer un poco de lenguaje sql...y aca la parte dificil que dos lenguajes c++ ysql se entiendan...imagina es comoq ue un chino y un yanqui se cruzan no se van a entender, para ello los productos descriptos (mysql ...foxpro etc) tienen driver para conectar ambos lenguajes
aca paginas que hablan de ello
http://www.carlosrobles.com/blog/2010/10/usar-bases-de-datos-mysql-en-visual-c/
http://dev.mysql.com/doc/refman/5.1/en/connector-cpp-apps-windows-visual-studio.html
http://msdn.microsoft.com/es-es/library/e80y5yhx(v=vs.80).aspx
http://www.cprogramming.com/tutorial/c++_database_access_using_ado.html
si un problema no tiene solucion entonces no es un problema...es algo inevitable