Eliminar una linea d texto de un archivo

Iniciado por Zeroql, 15 Noviembre 2010, 14:59 PM

0 Miembros y 1 Visitante están viendo este tema.

Zeroql

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.
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#


[D4N93R]

Tienes que leer todo en memoria y luego escribir de nuevo el archivo sin esa línea.

Un saludo!

Zeroql

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???
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#


[D4N93R]

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.

Zeroql

Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#


Zeroql

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.
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#


[D4N93R]

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.

Zeroql

y como saco ese index?
la posicion en el archivo o k?
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#


[D4N93R]

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.

Zeroql

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....
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#