Saiyine
Punto Com

Parchear un fichero (cambiar un byte cualquiera de un fichero)

0000-00-00 00:00:00

function CambiarByte(fichero : string; posicion : longint; viejo,nuevo : byte) : boolean;
var
f : file of byte;
aux : byte;
begin
        result:=true;
        assignfile(f,fichero);
        reset(f);
        seek(f,posicion);
        read(f,aux);
        if auxviejo
        then result:=false // Error!!!!
        else
        begin
                seek(f,posicion);
                write(f,nuevo);
        end;
        closefile(f);
end;

Asi si queremos cambiar el byte 800 del fichero 'prueba.bin' que es 75 cuando deberia ser 27 hacemos la llamada:

if CambiarByte('prueba.bin',800,75,27)
then perfecto
else el byte a cambiar no era el que deberia
Anonimo (25/02/2005, 17:24)

Hola Saiyine,
Me ha gustado mucho tu página, sobre todo porque ofreces soluciones rápidas y prácticas.
No soy muy ducho en la programación, apenas la uso como herramienta para solucionar algunos problemas, de modo que apenas domino funciones elementales, lo que me ha impedido solucionar el problema que te comento a contiuación, que tiene cierta relación con este que ofreces en tu página (estoy usando delphi 5.0).
Yo necesito trabajar con un archivo, para leer un byte, por ejemplo. Cuando el archivo está en el HD no hay problemas, el reset para abrirlo funciona OK, pero cuando el archivo está en un CD, da error.
La verdad es que no he encontrado como solucionar este problema. Te agradeceré si me das una ayuda o guia para abordarlo.
Y gracias de antemanos, geovannis

Saiyine (27/02/2005, 12:57)

¡Hola!

Normal que no lo hayas encontrado, la solución está bastante escondida: mete entre el assignfile y el reset la linea FileMode := 0;, que le indica al delphi que tiene que abrir el fichero en solo lectura.

¡Perdón por la tardanza en responder!

Rollos antiguos

0000-00-00 00:00:00 - Operaciones variadas con cadenas.

0000-00-00 00:00:00 - Obtener un nombre para ficheros temporales que no coincida con ninguno que haya en el directorio.

0000-00-00 00:00:00 - Obtener la version del windows que se esta usando.

0000-00-00 00:00:00 - Obtener en una cadena la fecha actual con el formato dia,dd/mm/aaaa y formatear numeros..

0000-00-00 00:00:00 - Obtener el tamaño de un fichero.

Saiyine

Selfie of meHi! Welcome to Saiyine Punto Com where I talk about anything that goes through my mind!

Puedo prometer y prometo que a la mayor brevedad aquí irá un menú o algo asín.