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

Por Saiyine Enviar correo el 0000-00-00 00:00:00 - Secciones:  DELPHI  - Enlace permanente: 492

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!

Otras entradas de la web que podrian interesarte:

Gravatar 4356
Banderita Alex (2010-04-08 08:13:43)

:OO Hola man, soy un aficionado a la programacion, y estoy haciendo un programa que me permita reducirle el tamaño a los ficheros es decir como un compresor y segun he averiguado la terminacion de un fichero es EOF, lo que quiero es poner estas tres letras en un byte intermedio del fichero.

Como puedo hacerlo????

Gravatar 4357
Banderita Saiyine (2010-04-08 10:24:26)

EOF no es realmente un byte real, sino una "señal". Dime en que lenguaje lo necesitas y te lo busco, pero lo normal es que se llame Truncate, como en este ejemplo en Delphi.

SocializerMenefante Del.icio.us Digg 


Tu nombre (Nick):

Tu correo (Email):
  Necesario para tu gravatar!

Tu página (URL):

Escribe aqui tu comentario:

       :noworry: :roll: :huh: :push: :OO 8) 8O :( :) :? :D :P :o :x :| ;) ^^ xD



Vista previa activada.

Vista previa (6/6/6, 6:66)


Fondos de pantalla

. . .

Recomendamos

  • Betsson bahis adresi betsson iddaa bahis
  • Canli bahis betsson bahis sitesinde.

. . .

Descargas

  • ApagaPC
    apagapc241.exe  (3489)
  • LimpiaDocus
    LimpiaDocus001.exe  (2767)
  • RCM
    rcm001.zip  (2346)
  • Popmail
    popmail-0.4-psmn.tar.gz  (2410)
  • Manual de Delphi en PDF
    delphi_pdf.zip  (3009)
  • Evangelio del Perl
    Evangelio_del_perl.pdf  (2822)
  • Excel Simpsons
    Excel Simpsons  (3008)
  • . . .

    ltimos comentarios

  • 660 - Anonimo: jghfuioijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj :push:
  • 768 - : me encantan los emos y quisiera ser uno y tengo...
  • 768 - Anonimo: hola no conosco mucho esta pagina pero deve de estas...
  • 859 - Bertomania: Muchas Gracias. Sirve para Mucho!!
  • 771 - Anonimo: Muchas gracias por el listado, tenia varios minutos buscando America/Santo_Domingo...
  • 660 - Anonimo: :OO
  • . . .

    Proyectos Online

  • Saiyine Store
  • Kunowalls!!!
  • Fondos de pantalla
  • Picaday: imagenes sexys o chocantes.
  • Scarlett: fotos de Scarlett Johansson
  • WhatsmyIP: obtener tu IP pública
  • Uma Thurman: galeria de Uma Thurman
  • FunPics: imagenes graciosas
  • . . .

    Blogs

  • Por lo que más querais, no entreis a estos: Tapanez, Yhandros, Onez.

  • Otros en español: El Mundo Today, La libreta de Van Gaal, Chavalina, Kirai, Mundo Geek, Microsiervos.

  • Mis lecturas en guiri: Michael Yon, Coding Horror, YCombinator news, MySQL Performance, Slashdot.

    . . .
  • Utilidades

  •  Coral  (1196), cacheando webs
  •  Spam.la  (1431), correo de usar y tirar
  •  Mailinator  (1356), correo de usar y tirar
  •  Bug me not  (1219), absurdos registros di NO
  •  Trashmail  (1251), correo de usar y tirar

    . . .

  • Faq

  • ¿MlDonkey para windows?
    Pues si, ya hay un port, y lo podeis encontrar aqui.
  • ¿Imagenes del universo?
    Puesss, mi favorita es astrored, aunque debe haber muchas similares.
  • ¿Drivers para voodoo?
    Probad aqui para la voodoo 3.
  • . . .

    Página web ©2001-2010 Saiyine generada en s, con 4639629 visitas en total, hoy (de un total de 0 previstas).

    . . .