Es normal que no te funcione:
if (texto[nt] == nada) npaglt = p; nletter = n; break;
Si no usas las {}, el if sólo engloba la primera orden después de él, que en este caso es npaglt = p;
Por tanto, nletter = n; break; se ejecutará siempre, por lo que antes de empezar a hacer nada, ya te has salido del while con el break;
debes ponerlo así if (texto[nt] == nada){ npaglt = p; nletter = n; break;}
También te aconsejo que utilices la sentencia if-else en vez de solo la if, así mejorarás el rendimiento del programa.
Y también te aconsejo que utilices la función
feof() para detectar si se ha llegado al final del fichero, porque ese nada=0 no creo que esté muy bien ahí, o bien que hagas lo siguiente para leer el fichero y dividirlo:
FILE* leer = fopen (archivolt, "rb"); //rb = leer
fread(texto, 10000, 1, leer); //10000 es una burrada, espero que no hayas declarado el texto como texto[10000]...
fclose(leer);
sscanf(texto,"%576s%576s%576s%576s%576s", paginalt.a, paginalt.b, paginalt.c, paginalt.d, paginalt.e);
Lo que estamos haciendo es pasar todo el contenido del archivo a la cadena "texto", y de ahí escanear mediante
%576s cadenas de texto de 576 caracteres, que guardaremos en las diferentes páginas.
Ya nos cuentas que tal.
Un saludo.