Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/07/2010, 04:20
edu1989
 
Fecha de Ingreso: julio-2010
Mensajes: 11
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: [B]duda con vectores[/B]

char leer()
{
int length;
char buffer[30];
char * buffers=NULL;
int i=0,aux=0,j=0,z=0;
char cabecera[32];
char payload[170];
static char NAL[200];
int v=0;

ifstream f; // Classe para leer un fichero.
f.open("text.txt",ifstream::in|ifstream::binary); // Es un hexadecimal.


//!f devuelve true si ha habido algún problema de apertura del fichero
if (!f)
{
cout << "fallo" << endl; // endl es el fin de linea.
return -1;
}
// get length of file:
f.seekg (0, ios::end);
length = f.tellg();
f.seekg (0, ios::beg);

// ir rellenando el buffer hasta hacer una NAL.

// allocate memory:
buffers = new char [length]; //Vector de datos buffer[length]

// read data as a block:
f.read (buffers,length);

//Guardamos los datos del puntero en un vector.
while(v<length)
{
buffer[v]=buffers[v];
v++;
}


while(i<length)
{


//Volem detectar la sequencia 00 00 00 01
if ((buffer[i]==0)&&(buffer[i+1]==0)&&(buffer[i+2]==0)&&(buffer[i+3]==0)&&(buffer[i+4]==0)&&(buffer[i+5]==0)&&(buffer[i+6])&&(buffer[i+7]==1))
{
for(aux=i;aux=i+7;aux++)
{
cabecera[aux]=buffer[aux];
}

}
else
payload[i]=buffer[i];


//// 31 o 32? mirar bien 31 o 32
while ((j<=31)&&(i==31))
{
NAL[j]=cabecera[j];
j++;
}

while(z>31)
{
NAL[z+32]=payload[z];
z++;

}
i++;
z++;
}
return NAL[200]; // Hay que decir la longitud exacta

f.close();


return NAL[200];
}



Gracias por contestar tan rapido. Aqui te pongo todo el codigo para que lo veas mas claro.
- Incremento la i al final del while
-cont es un int
-buffer es un vector de enteros. De un puntero (buffers) paso a un vector, eso esta bien?
- Ya he hecho antes '0' y tampoco funcionaba...