Insertar Una Linea En Un Archivo De Texto. [SOLUCIONADO]


Objetivo: Insertar Una Linea En Un Archivo De Texto. [SOLUCIONADO]
Saludos amigos, entiendo que es un tema muy posiblemente ya tocado, pero revisé y no encontré nada, entonces me dedique a preguntar
¿como hago para insertar una linea al final de un archivo existente sin borrar su información anterior?

es decir tengo el archivo "existente.txt"

que posee esta info:

INSERT INTO indice VALUES ('iorgcal001','1985-09-06','Canada','Ontario','Toronto',NULL,'','Cale','Iorg','Garth Cale Iorg','',83.25,1.86,'D','D','0000-00-00','0000-00-00','','','','','2B','2013','2013');
INSERT INTO visitas2 VALUES ('iorgcal001',0);
DELETE FROM wbcbat WHERE yearid='2013' AND lvbpid='iorgcal001' AND teamid='CAN';
INSERT INTO wbcbat VALUES ('2013','CAN',3,11,1,1,0,0,0,1,0,0,0,6,0,0,0,0,0,'2B','iorgcal001');
INSERT INTO indice VALUES ('vanojim001','1984-08-07','Canada','British Columbia','Vancouver',NULL,'','Jimmy','Van Ostrand','James O Van Ostrand','',94.5,1.92,'D','D','0000-00-00','0000-00-00','','','','','1B','2013','2013');
INSERT INTO visitas2 VALUES ('vanojim001',0);


y quiero agregarle esta linea "CALL apariciones;" al final, sin eliminar su contenido ni recorrerlo antes, debido a que suelen ser archivos de muchas lineas y se tomaría su tiempo.

última edición por datobinario el Miercoles, 13 Marzo 2013, 19:47; editado 2 veces
Objetivo: Re: Insertar Una Linea En Un Archivo De Texto.
Pues si no quieres abrirlo ni recorrerlo... sólo te queda recurrir al sistema operativo. En concreto el comando cat te une ficheros.
Create un archivo de shell script que haga más o menos esto:


private sub sumalinea (mificherogordo as string, ultimalinea as string) 'donde mificerogordo es el nombre del fichero que no queremos abrir. y ultimalinea el contenido de la línea a agregar

dim str as string
dim fichero as string

fichero=temp()
file.save(fichero, gb.newline & ultimalinea) 'salvamos la cadena a un fichero temporal

str="cat " & fichero & " >>" & mificherogordo
shell str

end



No lo he probado, pero debería funcionar sin problemas

última edición por shordi el Miercoles, 13 Marzo 2013, 19:19; editado 2 veces
Perfil MP  
Objetivo: Re: Insertar Una Linea En Un Archivo De Texto.
Se podría hacer también sin crear fichero temporal, con

shell "echo " & ultimalinea.txt & " >>" & mificherogordo

Pero creo que eso te limitaría a la hora de insertar al fichero gordo una cadena que contenga retornos de carro...

última edición por shordi el Miercoles, 13 Marzo 2013, 18:41; editado 1 vez
Perfil MP  
Objetivo: Re: Insertar Una Linea En Un Archivo De Texto.
fichero=tmp() --> Identificador desconocido: tmp en Main.Class

Objetivo: Re: Insertar Una Linea En Un Archivo De Texto.
Listo, cambie tmp() por Temp() y Str por string, funciona perfecto, agrega una linea en blanco al principio, pero ya veré que hago con ella.

coloco como quedo la función al final:
Private Sub RespaldoSQL(mificherogordo As String, ultimalinea As String) 'donde mificerogordo es el nombre del fichero que no queremos abrir. y ultimalinea el contenido de la línea a agregar

Dim cadena As String
Dim fichero As String

fichero = Temp()
file.save(fichero, gb.newline & ultimalinea) 'salvamos la cadena a un fichero temporal

cadena = "cat " & fichero & " >>" & mificherogordo
Shell cadena

End

Objetivo: Re: Insertar Una Linea En Un Archivo De Texto. [SOLUCIONADO]
¿En gambas no había una operación para abrir ficheros en modo "append"? Ahora no recuerdo, puedo estar confundido con python o pascal...


Me respondo yo mismo:

http://gambasdoc.org/help/lang/open?v3



Eso abriría el fichero y todo lo que escribas en él (con print #Stream - http://gambasdoc.org/help/lang/print?es&v3 ), se hará siempre al final, respetando el contenido existente.


Saludos

Perfil MP  
Objetivo: Re: Insertar Una Linea En Un Archivo De Texto. [SOLUCIONADO]
Así tambien funciona perfecto, la sintaxis final es esta:

Dim Stream As File
Stream = Open NombreArchivo For Output Append
Print #Stream, TextoLinea
Close #Stream

algo así era lo que buscaba, ya lo había hecho pero en .php

última edición por datobinario el Jueves, 14 Marzo 2013, 14:00; editado 1 vez

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.2038s (PHP: -45% SQL: 145%)
Consultas SQL: 33 - Debug off - GZIP Activado