Tema: Atascado
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/05/2012, 10:50
xaberro
 
Fecha de Ingreso: mayo-2012
Mensajes: 1
Antigüedad: 12 años
Puntos: 0
Atascado

Buenas señores soy nuevo en esto del C++ y venia a ver si alguien me podria ayudar.
Tengo que hacer una busqueda en un archivo .dat (binario) con la estructura siguiente

typedef struct{
char nombre[80];
char variacion[100];
char movimientos[200];
}AperturaBinario;

El caso es que lo abro, lo leo, busco PERO ese no es la verdadera finalidad de la practica ya que la verdadera finalidad es Buscar, guardar la posicion del resultado y luego hacer un acceso aleatorio al archivo con seekg y ahí está mi gran dilema alguien me podria ayudar?

Aqui está la parte del código que busca y muestra por pantalla lo anteriormente buscado





#include <iostream>
#include <cstdlib>
#include <string.h>
#include <fstream>
#include <stdio.h>

using namespace std;
typedef struct{
char nombre[80];
char variacion[100];
char movimientos[200];
}AperturaBinario;


bool encontrado(string b,string a){
unsigned int encontrado=a.find(b);

if (encontrado!=string::npos){
return(true);
encontrado=a.find(b,encontrado+b.length());

}
else{
encontrado=a.find(b,encontrado+b.length());
return(false);
}
}


void leer(){
int numeros=1;
char FicheroCarga[20]="aperturas.dat";
AperturaBinario apertura;
string palabra;
apertura string contenido[3000];
cout<<"introduce una palabra"<<endl;
cin>>palabra;
ifstream fi;
fi.open(FicheroCarga,ios::in);
while(fi.good()){
fi.read((char *)&apertura,sizeof (AperturaBinario));
apertura string = apertura.nombre;
string variaciones = apertura.variacion;
if(encontrado(palabra,nombres)==true){
cout<<numeros<<" "<<nombres<<variaciones<<endl;
numeros++;
}

}
fi.close();
}

int main(){
leer();
}