Anuncios Google

2da pregunta.

como puedo hacerle para que se borre el texto que esta ala derecha,

por ejemplo

abro un archivo

io.open()

y digamos que el archivo contiene esto "primero segundo tercero"

entonces yo quiero escribir en la posición donde empieza la palabra "segundo", y que lo que resta ala derecha se borre

ya probé con todos los modos  a r+ w+ a+, ninguno me da el resultado que quiero el mas sercano es el modo r+, pero solo se borra si alcanza el numero de caracteres osea que se escribe encima del texto sin que se recorra ni se borre lo que esta ala derecha, ose que si escribo encima de la palabra "segundo" la palabra tres, quedaría "tresndo", osea que solo se sobrescribe el numero de caracteres, lo que yo quiero es que se borre lo que sobre ala derecha.

alguien sabe como?, o no se puede?


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Una cosa

Alguien ha pensado en io.seek() ?

 

Prueba esto:

texto.txt

 primero segundo tercero

script.lua

arch = io.open("texto.txt","r+")
 
arch:seek("set",8)
arch:write("tres")
arch:flush()
arch:close()

 

Salu2!

 

Imagen de Jepte

ya heprobado r+ pero el texto

ya heprobado r+ pero el texto sobrante no se borra,.

Tendrás que idear una función

Para cubrir el texto sobrante con un string vacio, es bastante facil, mira:

functionFillBytes(buffer,bits,str)
	str = str or ""
	if not (buffer or bits) then return false end
	if #buffer == bits then return buffer end
	buffer = string.rep(str,bits-#buffer)..buffer
return buffer
end

Salu2!

Imagen de Jepte

si, creo que esa seria la

si, creo que esa seria la solucion mas adecuada, lo que retroceda con io.seek() lo escribiré con string vació, y después escribo lo que quiera, los string vacíos no pesan nada o si?, de cualquier forma gracias.

Directamente no se puede,

Directamente no se puede, pero manualmente es muy sencillo la verdad:

  • Abre tu archivo en modo de lectura. Lee y guarda en una variable hasta la información que quieras borrar (ya sea que lo indiques en bytes, o leas toda la línea y la separes luego).
  • Cierra el archivo, y vuelve a abrirlo, pero en modo de escritura "w+".
  • Escribe la información que guardaste anteriormente, y la nueva que quieras.
  • Guarda.

Obvio puedes ponerlo en una función para no estar repitiendo code, como mejor te acomode.

Imagen de Jepte

el problema que el archivo

el problema que el archivo que utilizo puede llegar a ser muy pesado y entonces tardaría mucho en hacer todo, deveria de poderse por que los que hicieron lua no pensaron que esto podría necesitarse xd, gracias por aclararme la duda.

Imagen de gdljjrod

Pero

Pero lo que necesitas escribir es una palabra, sustituyendo la segunda palabra o un largo texto? O estas poniendo solo de referencia de las 3 primeras palabras o realmente te refieres a un largo texto?


 

Imagen de Jepte

es solo de referencia lo que

es solo de referencia lo que me sobra ala derecha es mucho texto.

Imagen de gdljjrod

Pero

Si las dos primeras palabras del todo texto eso si es lo que quieres cambiar??

Imagen de Jepte

mmm, no quiero insertar texto

mmm, no quiero insertar texto entre el texto que ya existe y que lo que me quede ala derecha se borre.

Imagen de gdljjrod

Ummm

Entonces en ese caso yo pediría que hubiera todas las funciones que necesitará, así ni pensaría en como solucionar un problema. xD Y mas para mí que apenas me estoy enseñando.


 

Imagen de Jepte

no es que no quiera pensar,

no es que no quiera pensar, es que no se puede como yo quiero, y como dice Rober, ya se me había ocurrido solo que de esa forma tarda mas y yo quiero que sea algo casi instantáneo pero ni modo.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.