Programación General > Pascal
Escribir En Texto
pere:
O mejor dicho en un texto.
Ante todo muy buenas y deciros que aunque escribo poco en el foro no he dejado de darle caña para a ver si aprendo algo de programación y tengo una duda (bueno tengo muchas pero esta es una de ellas).
A ver escribir algo en un txt ya se hacerlo pero hacer que lo escriba siempre en el mismo sito y reescribiendo lo que había escrito, se puede hacer?
Porfa darme unas pistillas que ando bastante perdido.
Enko:
Definir una variable de tipo texto:
--- Código: Text --- var F: TEXT; Asignar un archivo a esa variable
--- Código: Text --- Assign(F, 'C:\NombreArchivo.txt');
Aca surgen 2 posibilidades,
A)Que el archivo no exista, entonces debemos crearlo
--- Código: Text --- ReWrite(F); B)Que exista, entonces tenemos otras 2 subposibilidades mas:
B1)Borrarlo todo y prepararlo para escribir nuevamente
--- Código: Text --- ReWrite(F); B2)Prepararlo para escribir al final del archivo sin borrar lo anterior
--- Código: Text --- Append(F);
Siempre es importante cerrarlo para guardar algunos cambios
--- Código: Text --- Close(F);
Supongo que eso seria todo, cualquier duda, no esperes para preguntar.
Saludos
pere:
gracias enko por la respuesta, lo que pasa es que si utilizo rewrite se borrará todo el archivo no? y eso no me interesa, lo que quiero es poder cambiar valor en una determinada situación dentro del txt por ejemplo:
goles de drogba 4
y si yo quiero que solo cambie el (4) por el valor que yo le ponga? como lo tengo que hacer?
Estoy intentando utilizar el goto (x,y) con el read pero al utilizarlo me lee todo el archivo y me posiciona el cursor en la posiciión (x,y)....
Ahora estoy en el trabajo y no me acuerdo muy bien como lo hice, esta tarde seguiré. Lo que si que se es que lo hago con un registro y de momento solo tengo un jugador, pero quiero ponerle el equipo entero y poder ir sumandole los goles a medida que vayamos marcando goles (supongo que tendré que utilizar arrays de registro :scream: .
venga un saludo.
-DriverOp-:
Respondo a tu primer post:
No es posible hacer eso tal como tú lo planteas ya que un archivo de texto no tiene ningún índice por el cual el SO pueda desplazarse hacia atrás, los únicos marcadores que hay son fin de línea o fin de archivo y estos pueden caer en cualquier parte del archivo.
Una posible solución para esto sería, copiar el archivo entero (eso es fácil) en un temporal, leer secuencialmente línea por línea ese archivo, buscar en el string de lectura la cadena que te interesa, cambiar lo que se necesite, y luego ir sobreescribiendo el archivo original.
Respondo a tu segundo post:
Tal como lo planteas ahora, no necesitas hacerlo con archivos de texto, de hecho es múcho más fácil hacerlo con archivos de registros. Intuyo que la estructura del mismo, según lo que has comentado sería:
--- Código: Text ---typeTRegistro=record Nombre: string[20]; Goles: integer;end; TArch=file of TRegistro; var Arch: TArch; Reg: TRegistro;
Usando un archivo con tipo, como lo he declarado más arriba, sí es posible desplazarse aleatoriamente. Para ello existe el procedimiento Seek().
pere:
gracias driverop lo probaré en cuanto llegue y si no me sale ya volveré a postear.
Por cierto me recomendais algún libro de turbo pascal que sea para pardillos como yo?
Navegación
[#] Página Siguiente
Ir a la versión completa