28/07/2010, 04:20
|
| | 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... |