Título: Borrar bytes de archivo y guardar Publicado por: Mr. God en 3 Abril 2010, 14:54 pm Hola, que tal?? Quería comentarles mi duda, a ver si saben ayudarme :xD
A ver, quiero que al pulsar un botón se abra un archivo (que sé hacerlo, con un OpenFileDialog) y que se borre automaticamente un numero de bytes del principio del archivo (en concreto 14 bytes), y que una vez hecho, se guarde el archivo con los bytes eliminados. cualquier ayuda o pista me viene genial :):):):) P.D. El lenguaje es vb.net ^^ Salu2!!! Título: Re: Borrar bytes de archivo y guardar Publicado por: raul338 en 3 Abril 2010, 15:14 pm Usa el namespace System.IO y la clase streamReader y streamWriter
ahora, una pregunta, quieres que sea del mismo tamaño (14 bytes vacios al principio) o sin los 14 bytes del principio? es medio existencial mi duda jeje igual, de todas formas seria algo asi (es codigo hecho al vuelo, puede que haya mas de un error :xD) Código
Espero que te sirva!!! Título: Re: Borrar bytes de archivo y guardar Publicado por: Mr. God en 3 Abril 2010, 15:51 pm Gracias por la respuesta jeje ;D ;D
La cosa es sin los 14 bytes del principio :) En un principio lo iba a hacer en vb.net, aunque también se algo de C# (Pero bastante poco, al contrario que de vb.net), y me tira 2 errores, que no se puede convertir System.IO.FileStream en System.IO.StreamReader/StreamWriter, y que IO.StreamReader no contiene una definición de Seek. Por supuesto, añadí "using System.IO;" Dejé el code así: Código: using System; El fallo da en los Seek y en los File.Open() gracias de nuevo y saludos!! Título: Re: Borrar bytes de archivo y guardar Publicado por: 43H4FH44H45H4CH49H56H45H en 3 Abril 2010, 20:12 pm A la rapida puede ser asi:
Código
Funcionaría con *.exe u otros que necesites. Título: Re: Borrar bytes de archivo y guardar Publicado por: Mr. God en 3 Abril 2010, 20:45 pm Perfecto ;D ;D muchas gracias, 43H4FH44H45H4CH49H56H45H, le hice unos arreglos para complementarlo con openFileDialog y saveFileDialog y perfecto
tambien dar las gracias a Raul por su anterior ayuda. :) Título: Re: Borrar bytes de archivo y guardar Publicado por: raul338 en 3 Abril 2010, 21:01 pm Código
Funciona, y espero que te sirva :) EDIT: no vi la anterior respuesta, esta desarrondo la mia jaja Ese convert.ToByte esta porque extrañamente ReadByte devuelve un integer :¬¬ Espero que las 2 respuestas te sirvan :) Título: Re: Borrar bytes de archivo y guardar Publicado por: Mr. God en 4 Abril 2010, 16:06 pm Gracias Raul por la nueva respuesta jeje ;D
si no es mucha molestia, me gustaria preguntar como hacerle un pequeño añadido al programa. Es que se añada una frase que está en el offset 0000004D y que acaba en el offset 00000055 un numero X de veces (4 veces, por ejemplo), y esas frase deben empezar justamente debajo del offset 00000055, es decir, en el 00000056 y acabar donde acaben, y que después de esas frases se guarde el archivo con el mismo contenido que el original, menos los bytes quitados del principio del archivo (que ya está hecho jeje) y esas frases de más. Al final dará un archivo más grande que el original. se que es lioso, pero seria genial que pudiesen ayudarme, si nopueden, lo entiendo jeje salu2!! Título: Re: Borrar bytes de archivo y guardar Publicado por: raul338 en 4 Abril 2010, 18:24 pm :| no entendi, lo que quieres hacer es sobreescribir un archivo entre tal y tal bytes?.... seria lo mismo, usa seek(poscicionByteInicial, seekOrigin.Begin) y escribe tu frase (Usa System.Encoding.ASCII.GetBytes para obtener un array de bytes de la frase) y si la frase no llega a completar el bloque (supongamos, son 10 bytes reservados y tu solo llenas 4), escribe los bytes sobrantes con bytes nulos (0)
Título: Re: Borrar bytes de archivo y guardar Publicado por: Mr. God en 4 Abril 2010, 19:36 pm Jeje, a ver, me refiero a esto: (a ver si ahora logras entendero :D :D)
1º Obtener una frase de un offset con inicio 0000004D y fin 00000055 2º Copiar esa misma frase 4 veces debajo del offset de finalización de la frase, es decir, a partir del 00000056, de modo que si el archivo original fuese: Código: "Hola, como andan? Yo bien, ¿y tú?" donde la H de Hola corresponde al offset 0000004D y la ? fuese el 00000055 (es un ejemplo). Con lo que me gustaría hacer, deberia de quedar así: Código: "Hola, como andan?Hola, como andan?Hola, como andan?Hola, como andan?Hola, como andan?Yo bien, ¿y tú?" por lo que el archivo se agrandaría, basicamente eso es lo que quiero jeje ;D salu2 y gracias!! Título: Re: Borrar bytes de archivo y guardar Publicado por: 43H4FH44H45H4CH49H56H45H en 5 Abril 2010, 03:03 am Solo es modificar un poco el code:
Código
Falta mejorar pero sirve de ejemplo :silbar: Archivo Original Código: Hola, como andan? Yo bien, ¿y tú? Código: Hola, como andan?Hola, como andan?Hola, como andan?Hola, como andan?Hola, como andan? Yo bien, ¿y tú? Título: Re: Borrar bytes de archivo y guardar Publicado por: Mr. God en 5 Abril 2010, 11:13 am Jeje, ahora ya casi perfecto, en un principio la cosa era que copiase los 17 bytes que están en una posición en concreto, es decir, desde el byte 93 (Offset 0000004D) del archivo hasta el byte 110 (Offset 0000005C) y los copiase debajo del 110, si ya por ultimo me pueden ayudar con eso seria genial :D
p.d. he probado desplazándome con Seek, pero me da fallo... en C# soi bastante novatillo jeje :-X :-X Título: Re: Borrar bytes de archivo y guardar Publicado por: raul338 en 5 Abril 2010, 15:08 pm Código
Espero que te sirva :) Título: Re: Borrar bytes de archivo y guardar Publicado por: 43H4FH44H45H4CH49H56H45H en 6 Abril 2010, 05:50 am Puede ser asi tb:
Código
|