// Este for se deberia ejecutar 1 sola ves en toda la lectura del archivo
for( sizelinea = 0 ; sizelinea <= 20 ; ++sizelinea )
{
if((BufferFAT[sizelinea] == '\n') || (BufferFAT[sizelinea] == '\r')) //Compruebo sea cual sea \n o \r
{
if((BufferFAT[sizelinea+1] != '\n') && (BufferFAT[sizelinea+1] != '\r') // Compruebo que la proxima letra no sea la anteiro
sizelinea++;
break;
}
if(sizelinea == 20 ) { sizelinea = 0; } //Proteccion de que no exista mas nada
}
/*
Hasta aqui tengo la cantidad de letras que hay en el primer pass, es decir con el \n y/o \r incluido
Hay que asegurarme que todos los demas pass sean de igual tamaño, si no son iguales significaria un error grave.
Supongamos esto:
1234560
g123455
1234567
El primer for utiliza la primer linea buscando un \n o un \r , lo cual si o si deberia haber un salto de linea
Si existe una \n sola el valor de sizelinea sera de 8,
1234560\ng123455\n1234567
^
Indice 7, lo cual el 8 lo pondria en la primer letra del 2do pass
1234560\ng123455\n1234567
^
Indice 15 esta el otro \n, por lo cual en 16 esta mi tercer pass, es decir iria de 8 en 8
en caso de existir una \n\r o \r\n, el valor sera 9
1234560\n\rg123455\n\r1234567
^
Indice 8 esta el ultimo de los \r o \n , en 9 comienza mi segundo pass.
1234560\n\rg123455\n\r1234567
^
Indice 17 el ultimo \r o \n , asi que en 18 comienza mi tercer pass. es decir de 9 en 9.
Ahora si los pass mantienen un largo constante y no se modifican para nada, podria ir saltando de 9 en 9, o de 8 en 8, lo cual estaria saltando ademas los \n o \r\n o \n\r sin importar lo que use. ( Siemrpe y cuando sean salto de lineas, sino tengo que cambiar arriba los delimitadores )
La principal limitacion es que SI o SI debe respetarse el formato, es decir todos deben tener \n o \n\r , si algunos tienen \n y otros tienen \n\r es un problema. Al igual que el largo del pass
*/
for( k = 0 ; k < (sizeof(BufferFAT) - sizelinea) ; k += sizelinea) { // Recorre todas las lineas del archivo
if(memcmp( &BufferFAT
[k
], key
, sizeof(key
)) == 0 ) {
return 1;
}
}