Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/05/2014, 08:24
Alvarocq
 
Fecha de Ingreso: abril-2014
Mensajes: 8
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Leer palabras de una linea de un fichero

Cita:
Iniciado por Principe_Azul Ver Mensaje
Hola Alvarocq!

Bueno estube haciendo el código que necesitás y lo logré
Lo que si tené en cuenta algo importante, para que el código pueda funcionar perfectamente, debés agregar un signo - luego de ingresar la cantidad de idiomas de cada persona.
Esto lo hice así y siempre lo hice y me funciona perfectamente, porque para mí es una manera fácil de llegar desde un X valor a otro, esos signos o símbolos, me ayudan siempre!!!

El archivo debe llamarse Personas.txt y debe estar en el mismo directorio/carpeta que el programa C++.

Adentro del archivo Personas.txt agregá así a las personas:

PEPE 2- IDIOMA1 IDIOMA2
JOSE 1- IDIOMA1
ALEJANDRO 4- IDIOMA1 IDIOMA2 IDIOMA3 IDIOMA4



Y con un salto de línea al final del archivo, osea que debe quedar siempre una línea vacía en la última línea del archivo Personas.txt, recordá que el nombre del archivo es Personas y la extensión .txt:

Aquí está el código:

Código C++:
Ver original
  1. #include <windows.h>
  2. #include <iostream>
  3. #include <stdio.h>
  4. #include <fstream>
  5. #include <vector>
  6.  
  7. using namespace std;
  8.  
  9.  
  10. class BuscaNombres {
  11.     char Linea[1280];
  12.     string LineaString;
  13.  
  14. public:
  15.     void Cantidad(string &LineaString) {
  16.         int GuardaNum;
  17.         GuardaNum = LineaString.find_first_of("-");
  18.         LineaString = LineaString.substr(0,GuardaNum);
  19.     }
  20.     void Mostrar() {
  21.         vector<string> Archivo(0);
  22.         ifstream Lectura("Personas.txt");
  23.         Lectura.getline(Linea, 1280);
  24.         string LineaString = Linea;
  25.         Cantidad(LineaString);
  26.         Archivo.push_back(LineaString);
  27.         while (!Lectura.eof()) {
  28.             Lectura.getline(Linea, 1280);
  29.                 if (strlen(Linea) != 0) {
  30.                     string LineaString = Linea;
  31.                     Cantidad(LineaString);
  32.                     Archivo.push_back(LineaString);
  33.             }
  34.         }
  35.         Lectura.close();
  36.         // Comienza la lectura del vector Archivo:
  37.         for (int Nums = 0; Nums < Archivo.size(); Nums++)
  38.             cout << Archivo[Nums] << endl;
  39.     }
  40. } Nombres;
  41.  
  42. int main() {
  43.     Nombres.Mostrar();
  44. }

El programa lee el archivo dentro de una clase como vos querías. La clase es publica

Buena suerte!!

PD: Podés cambiar el nombre de archivo por el que vos desees.

Gracias por el interés, pero lo que yo busco es obtener cada palabra para poder almacenarlo en un objeto es decir, obtener los datos para tratarlo de esta forma:

Código PHP:

cEmpleados 
aux = new cEmpleados();
 
aux->setNombre(auxNOMBRE_EMPLEADO_REGISTRO_OBTENIDO);
 
aux->setNumeIdiomas(auxNUMIDIOMAS_EMPLEADO_REGISTRO_OBTENIDO);
 
aux->setIdiomas(auxIDIOMAS_EMPLEADO_REGISTRO_OBTENIDO);

        
  if(
empleados[contarEmpleados]->NuevoEmpleado(aux) || auxNUMIDIOMAS_EMPLEADO <6){

 
cout<<"Empleado almacenado correctamente"<<endl;
  
empleados[contarEmpleados]->MostrarEmpleados();    
  
contarEmpleados++;
 }
else {
cout<<"Error al intentar almacenar empleado"<<endl;

PD: Me parece que tendré que crear a mano un archivo binario con X registros y luego obtener los datos correspondientes... te parece buena la idea ?

Última edición por Alvarocq; 02/05/2014 a las 08:27 Razón: Detalle