PDA

Ver la Versión Completa : Edit Datos Reutilizables


JXJ
29-05-2005, 21:01:23
Tengo los siguientes controles.

3 Edit
2 Checkboxese
1 button

Quiero hacer que cada ingreso de los datos en los edit, o en los checkboxses
se guarden en un archivo (nombre).dat (los he visto con un editor de texto, y
tienen un nivel de seguridad medio. no se entiende que tienen.)
cuando haga click en el button. y que al ejecutar el programa, se
cargen estos datos por defecto.y se revise al ejecutar el programa
y al cerrarlo si el fichero, (nombre) . dat esta
sí, no esta que
se cree uno en blanco,
LA busqueda y el abri guardar el archivo (nombre).dat
será en la misma carpeta, donde esta el programa

¿Cómo puedo. Hacerlo?

Gracias, ando desesperado, no encuentro como hacerlo.

Lepe
30-05-2005, 09:50:57
La verdad no entiendo muy bien la explicación, pero intentaré ayudar:

Para guardar los datos puedes usar un archivo .ini, por ejemplo, busca en el foro por TiniFile. Así los datos se guardaría en modo texto (se puede ver con el bloc de notas)

Si quieres un archivo incomprensible, entonces tienes que guardarlo en modo binario.

type Tmio = record
texto:string[255]
Chequeado:Boolean;
end;
var m:mio;
F : File of Tmio;

AssignFile('c:\archivo.dat');
rewrite(f);
m.texto:= edit1.text;
m.chequeado := checkbox1.checked;
write(f,m);
closefile(f);
end;

Esto es solo un esbozo de como guardar en un archivo binario, y no he comprobado la sintaxis, pero busca en la ayuda las funciones usadas y verás como se usan.

Para comprobar la existencia de un fichero usa : if FileExists(nombreArchivo)

Para saber la ruta del programa: ExtractFilePath(Application.exename);

Un saludo

JXJ
31-05-2005, 20:51:27
Lepe, logre, hacer que el programa escriba un archivo dat. solo
me falta, saber como cargar su información en el mismo orden, en los mismos
controles de donde se tomo para guardarla.
a tu codigo solo le agrege unas cosas y se ejecuta bien. todo lo puse en el
eveto onclick del button1



procedure TForm1.Button1Click(Sender: TObject);
type Tmio = record
texto:string[255];
Chequeado:Boolean;
end;
var m:Tmio;
F : File of Tmio;
begin
AssignFile(F, 'c:\Archivo.dat');
rewrite(f);
m.texto:= edit1.text;
m.chequeado := checkbox1.checked;
write(f,m);
closefile(f);
end;

continuo trabajando en como hacerlo bien.

Lepe
01-06-2005, 10:42:50
Si guardas en un orden determinado, despues recupera los datos en ese mismo orden. Es el método más facil.

Un saludo

JXJ
01-06-2005, 19:39:23
Tan facil que no logro hacerlos funcionar. ?:S:S


se que es mucho pedir. ¿podrias mostrarme, como cambiar el codigo para cargar
el archivo desde su ubicación. y el contenido en los controles. ??
Vale gracias.

mamcx
01-06-2005, 20:18:06
Me pregunto porque estas haciendo esto, existiendo metodos mas simples como el de usar un archivo INI, uno XML o un TClientDataSet...

JXJ
02-06-2005, 00:33:47
??¡¡¡¡¡¿¿¿¿ Mamcx y eso como se hace, ??¡¡¡¡¡¿¿¿¿

Lepe
02-06-2005, 10:56:30
Otra alternativa:

Yo uso el FormStorage ( de las jvcl o bien de las rxLibs), guarda la posición de pantalla, estado (maximizada,normal...), y las propiedades de los controles que se le diga en diseño. Problemas:
- Esto se ejecuta justo al mostrar la ventana, así que en el oncreate de la forma no puedes saber que hay en esos controles.
- El tipo de archivo usado es un .ini, es decir, un archivo de texto que puede ser leido y/o modificado por el usuario. En esta situación, guardo el archivo en c:\windows\ con un nombre que no tenga nada que ver con mi aplicación.

Tambien tiene la posibilidad de guardar las cosas en el registro de windows, pero , personalmente no me gusta la idea.

Un saludo

mamcx
02-06-2005, 17:36:03
Los TClientDataSet se pueden usar de forma desconectada. Lo pones en un form o datamodule, le das con click derecho en Fields y creas los fields que quieras. Click derecho otra vez en el TClientDataSet y le das en Create DataSet. Ahora puedes darle en SaveToFile y LoadFromFile y Listo. La gracia de usar un dataset en memoria es que ademas los grids y reportes y demas te funciona automatico, ademas editar, agregar y borrar registros o hacer filtros es mas simple que si tuvieras que hacer todo a mano... lo se porque en el desarrollo de MUTIS se usa un almacenamiento hecho mas o menos asi y el trabajo que implica es bastante.

Aunque existen casos en donde es mas optimo usar un formato hecho a mano como lo que estas haciendo, la mayoria de los casos no es asi y es mas facil usar las herramientas que estan a mano.

hermes_32
02-06-2005, 18:29:48
Hola JXJ,

Lo que no entiendo es porqué te empeñas en usar un fichero de texto para almacenar datos, y hacer búsquedas. ¿Porqué no usas una tabla .dbf? ¿No sería mas fiable, rápido, cómodo... en definitiva profesional?

Un saludo.