![]() |
Problema con TFileStream
Hola a todos nuevamente, estoy intentando utilizar TFileStream, pero no logro enterder su funcionamiento, por lo tanto no sé si es lo que necesito o estoy haciendo algo mal con él.
Resulta que quiero grabar unas cadenas de caracteres en archivo, pero que al editar el archivo sean caracteres ilegibles. Para ello estoy probando TFileStream. Según el código siguiente, FilesStream hace lo que necesito:
El punto es cómo hago ahora para leer el archivo recién creado y recuperar la información como la cadena string original????? Desde ya muchas gracias por la ayuda que me puedan brindar....... |
Me imagino que sería algo parecido:
Saludos... |
Vamos a ver, para grabar un string debes de hacer algo como esto:
Piensa que tal como lo tenias antes lo que mandabas escribir no era el contenido del string, si no la propia variable string que no es mas que un puntero. |
Lo que pasa es que cuando hago el Write con Pointer, me graba la cadena tal cual como es, es decir, si alguien editara el archivo leería la cadena sin ningún problema.
|
Cita:
|
Entiendo perfectamente, lo que ahora no logro entender es que sentido tiene el FileStream......cuando hace casi lo mismo que TextFile......
Voy a intentar cifrar el texto antes de grabar........ Muchísimas gracias por sus prontas respuestas...... |
Los stream son herramientas muy potentes, cuando trabajes un poco mas con ellos te darás cuenta ;) . En cuanto a lo de cifrar el texto, dependiendo de la seguridad que necesites, puedes usar trucos sencillos como este http://www.clubdelphi.com/trucos/index.php?id=53 o incluso como este, que todavía es mas sencillo y evita ciertos problemas con el random al trabajar en diferentes compiladores:
Si lo que necesitas es SEGURIDAD con mayúsculas, te sugiero utilices algún algoritmo de cifrado algo mas fuerte: AES, Serpent, etc ... Existen componentes para realizar ese tipo de cifrados. Si buscas en los foros encontraras información sobre alguno |
Hola,
Disculpad si digo algo que verdaderamente sea absurdo, pero, ¿cómo es que yo recuerdo haber leído en algún libro (creo que sobre el lenguaje C), incluso en el que venían ejemplos, acerca de escribir en un archivo de texto los caracteres que fueran menester pero en (aquí el posible absurdo) binario, de tal modo que en realidad los caracteres fueran "ilegibles", salvo cuando los leíamos de nuevo nosotros, claro? Es que intuyo que el compañero iba por ahí... no tanto por cifrar el contenido del archivo, que son dos cosas distintas, si es que esta que comento tiene razón de ser. Pero, ¡yo recuerdo haberlo leído! Una pena que no recuerde mucho más que eso... No se me escapa que pueden escribirse "records" en un archivo de manera que los datos que se vean en el mismo sean un conglomerado de caracteres sin sentido aparente, pero, yo me estoy refiriendo (y creo que el compañero también) a hacerlo, digamos, directamente, sin "records", sino con funciones de "entrada/salida" para tal menester. ¿Qué decís vuestras mercedes? ¿Deliro? :D |
Hombre Dec, me has dejado estrañado :confused:
En las cadenas de texto (strings) tanto en C como en delphi, se manejan de una forma similar (por lo menos internamente), cada caracter se corresponde con un byte. Si tu escribes esos bytes a un archivo, tal cual, tienes un archivo de texto completamente legible. El caracter 'A' es igual al byte 65, da lo mismo si en un archivo de texto guardas una 'A' que si en un archivo binario guardas el byte 65. :o La verdad me siento un poco tonto explicandote esto a ti que seguro ya lo sabes .... Por ejemplo:
En el ejemplo anterior, ambos archivos son iguales. Y el segundo no puede ser mas "binario" :) . La única forma de hacer ilegible una cadena es el cifrado, entendiendo que cifrado no solo incluye métodos de criptografía como AES, si no también métodos tan simples como cambiar cada carácter por otro. |
Hola,
Pues entonces debo estar confundiendo churras con merinas, como suele decirse. Cita:
Gracias Seoane por la explicación y todo. ;) |
La franja horaria es GMT +2. Ahora son las 17:57:21. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi