Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Zeroql en 15 Noviembre 2010, 14:59 pm



Título: Eliminar una linea d texto de un archivo
Publicado por: Zeroql en 15 Noviembre 2010, 14:59 pm
Bueno se que esto suena sencillo. pero no me cuadra

Tengo un archivo con una informacion almacenada como un .INI
asi:
[DATABSE]
Version=1.0
Encoding=UTF-8
Name=Usuarios
UsePass=False
NumTables=1

bueno, quiero borrar una linea completa, para ello uso el sistema fileopen apra abrir el archivo.

pero como puedo borrar la liena completa, sin que me quede un espacio vacio???
he intentado de todo y no me da. agradezco toda la ayuda.


Título: Re: Eliminar una linea d texto de un archivo
Publicado por: [D4N93R] en 15 Noviembre 2010, 15:19 pm
Tienes que leer todo en memoria y luego escribir de nuevo el archivo sin esa línea.

Un saludo!


Título: Re: Eliminar una linea d texto de un archivo
Publicado por: Zeroql en 15 Noviembre 2010, 15:40 pm
No hay una forma mas eficiente. por k ese archivo puede ser grande, dependiendo de la info, puede ser hasta 1 mb de grande.
enserio k no hay algo mejor como lectura por bytes o algo???


Título: Re: Eliminar una linea d texto de un archivo
Publicado por: [D4N93R] en 15 Noviembre 2010, 16:04 pm
Hasta donde yo se, no. De hecho, nunca me había pasado ese caso. Pero, intenta ver qué tal, si va muy lento intentaremos otro métodos.


Título: Re: Eliminar una linea d texto de un archivo
Publicado por: Zeroql en 15 Noviembre 2010, 16:05 pm
OK ensayare!!!


Título: Re: Eliminar una linea d texto de un archivo
Publicado por: Zeroql en 15 Noviembre 2010, 16:13 pm
Me acorde de algo.resulta que tengo varios archivos que se usan como registro de datos como una base de datos,
si tengo 10.000 registros, entonces como hago para garantizar la velocidad, si voy a borrar uno solo. si tengo que copiar el archivo de nuevo sin ese registro!!!
tiene que haber algun metodo mas rapido, si alguien lo tiene porfa, publiquenlo
yo uso FILEOPEN en modo random, pero si se puede con otro codigo o usando el sistem binary de fileopen.
la verdad es k me quede sin ideas.
de ante mano muchas gracias.


Título: Re: Eliminar una linea d texto de un archivo
Publicado por: [D4N93R] en 15 Noviembre 2010, 16:27 pm
Intenta no leer líneas sino que sacas index de la línea hasta el fin de ésta y en modo binario borras los bytes.


Título: Re: Eliminar una linea d texto de un archivo
Publicado por: Zeroql en 15 Noviembre 2010, 16:45 pm
y como saco ese index?
la posicion en el archivo o k?


Título: Re: Eliminar una linea d texto de un archivo
Publicado por: [D4N93R] en 15 Noviembre 2010, 16:48 pm
Si quieres borrar una línea tienes que saber qué línea es, luego de eso tienes calcular la posición del primer char/byte en el archivo y la cantidad de chars/bytes de esa línea, con eso deberías poder borrar , pero es que caes en lo mismo, tienes que hacerlo en memoria y luego escribir el archivo.


Título: Re: Eliminar una linea d texto de un archivo
Publicado por: Zeroql en 15 Noviembre 2010, 17:06 pm
mmm tenes razon, en eso.
mejor lo dejo cargado en el programa que edite y luego de que el programa se borre un registro guardar los cambios en el archivo, asi comolo hace access.
Gracias por la ayuda....