La lectura y escritura de un archivo y de una cadena


Este artículo inroduces dos funciones útiles para la lectura de los contenidos de un archivo en una cadena y escribir un texto en un archivo.
la Lectura de un archivo en una cadena
tal vez la forma más fácil para leer un archivo en una cadena está utilizando el LoadFromFile, el método de TStringList objeto y, a continuación, acceder a su Texto propiedades:
usa SysUtils, Clases
& nbsp & nbsp función LoadFile(const nombre de archivo: TFileName): cadena
& nbsp & nbsp begin
& nbsp & nbsp & nbsp & nbsp por TStringList.Crear hacer
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp prueba
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp LoadFromFile(nombre de archivo)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := Text
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp finalmente
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Libre
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp fin
& nbsp & nbsp fin

sin Embargo, esta manera de hacer las cosas es ineficiente, ya que LoadFromFile carga el archivo y lo analiza para separar las líneas y, a continuación, cuando usamos el Texto de propiedad, de un método interno está llamado a producir una cadena de unirse a las líneas, por lo que este doble trabajo está hecho para nada, además de que terminan usando más que el doble de la memoria de almacenamiento que realmente necesitamos (hasta que nos libre de la TStringList).
Una mejor manera
Un mejor enfoque podría ser el uso de un TFileStream, el objeto (o el antiguo Asignar, Reset, Leer y Cerrar procedimientos) para leer directamente el contenido de un archivo en una cadena. Aquí es la misma función con TFileStream que devuelve el contenido del archivo cuyo nombre se pasa como parámetro:
usa SysUtils, Classes

& nbsp & nbsp función LoadFile(const nombre de archivo: TFileName): cadena
& nbsp & nbsp begin
& nbsp & nbsp & nbsp & nbsp por TFileStream.Crear(nombre de archivo,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp fmOpenRead o fmShareDenyWrite) do begin
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp prueba
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SetLength(Resultado, Tamaño)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Leer(Puntero(Resultado)^, Arroyo.Tamaño)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp excepto
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := ' // Cancela la asignación de memoria
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Libre
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp aumentar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp fin
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Libre
& nbsp & nbsp & nbsp & nbsp fin
& nbsp & nbsp fin

Escribir un archivo a partir de una cadena
Si necesitábamos para guardar el contenido de la cadena en el disco, podemos utilizar el siguiente procedimiento:
usa SysUtils, Clases
& nbsp & nbsp procedimiento SaveFile(const nombre de archivo: TFileName
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp const contenido: cadena)
& nbsp & nbsp begin
& nbsp & nbsp & nbsp & nbsp por TFileStream.Crear(nombre de archivo, fmCreate) hacer
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp prueba
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Escribe(Puntero(contenido)^, Longitud(contenido))
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp finalmente
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Libre
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp fin
& nbsp & nbsp fin









La lectura y escritura de un archivo y de una cadena


La lectura y escritura de un archivo y de una cadena : Multi-millones de consejos para hacer su vida mas facil.


Este articulo inroduces dos funciones utiles para la lectura de los contenidos de un archivo en una cadena y escribir un texto en un archivo.
la Lectura de un archivo en una cadena
tal vez la forma mas facil para leer un archivo en una cadena esta utilizando el LoadFromFile, el metodo de TStringList objeto y, a continuacion, acceder a su Texto propiedades:
usa SysUtils, Clases
& nbsp & nbsp funcion LoadFile(const nombre de archivo: TFileName): cadena
& nbsp & nbsp begin
& nbsp & nbsp & nbsp & nbsp por TStringList.Crear hacer
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp prueba
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp LoadFromFile(nombre de archivo)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := Text
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp finalmente
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Libre
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp fin
& nbsp & nbsp fin

sin Embargo, esta manera de hacer las cosas es ineficiente, ya que LoadFromFile carga el archivo y lo analiza para separar las lineas y, a continuacion, cuando usamos el Texto de propiedad, de un metodo interno esta llamado a producir una cadena de unirse a las lineas, por lo que este doble trabajo esta hecho para nada, ademas de que terminan usando mas que el doble de la memoria de almacenamiento que realmente necesitamos (hasta que nos libre de la TStringList).
Una mejor manera
Un mejor enfoque podria ser el uso de un TFileStream, el objeto (o el antiguo Asignar, Reset, Leer y Cerrar procedimientos) para leer directamente el contenido de un archivo en una cadena. Aqui es la misma funcion con TFileStream que devuelve el contenido del archivo cuyo nombre se pasa como parametro:
usa SysUtils, Classes

& nbsp & nbsp funcion LoadFile(const nombre de archivo: TFileName): cadena
& nbsp & nbsp begin
& nbsp & nbsp & nbsp & nbsp por TFileStream.Crear(nombre de archivo,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp fmOpenRead o fmShareDenyWrite) do begin
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp prueba
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SetLength(Resultado, Tamaño)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Leer(Puntero(Resultado)^, Arroyo.Tamaño)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp excepto
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := ' // Cancela la asignacion de memoria
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Libre
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp aumentar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp fin
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Libre
& nbsp & nbsp & nbsp & nbsp fin
& nbsp & nbsp fin

Escribir un archivo a partir de una cadena
Si necesitabamos para guardar el contenido de la cadena en el disco, podemos utilizar el siguiente procedimiento:
usa SysUtils, Clases
& nbsp & nbsp procedimiento SaveFile(const nombre de archivo: TFileName
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp const contenido: cadena)
& nbsp & nbsp begin
& nbsp & nbsp & nbsp & nbsp por TFileStream.Crear(nombre de archivo, fmCreate) hacer
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp prueba
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Escribe(Puntero(contenido)^, Longitud(contenido))
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp finalmente
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Libre
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp fin
& nbsp & nbsp fin


La lectura y escritura de un archivo y de una cadena

La lectura y escritura de un archivo y de una cadena : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación