Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-05-2016
rocksoft rocksoft is offline
Miembro
NULL
 
Registrado: may 2016
Posts: 71
Poder: 9
rocksoft Va por buen camino
Hola JuancaDJ,

una pregunta por que quieres usar el odbc de mysql si puedes acceder directamente? con los componentes firedac o ZeosLib.

Mira si tienes algun componente MemData en tu delphi, sino puedes buscar alguno libre
si usas DevExpress lo cargas asi:

Código Delphi [-]
dxMemData1.LoadFromTextFile('c:\xxxx.txt');
Responder Con Cita
  #2  
Antiguo 27-05-2016
JuancaDJ JuancaDJ is offline
Miembro
NULL
 
Registrado: may 2016
Posts: 17
Poder: 0
JuancaDJ Va por buen camino
Ummm estoy usando delphi7 esos componentes vienen ahi?
El tema de usar Mysql es que queria usar un base de datos para almacenar usuario, passwd y tiempo conectado pero al no poder poseer una base de datos he tenido que hacer 3 ficheros, usuario, passwd y tiempo, que en el caso del fichero tiempo se me esta complicando pues si tengo 300 usuarios tengo que hacer unos 300 ficheros ya que si dejo solo 1, cuando el usuario x cierra su aplicacion no podra guardar los cambios poque el usuario z aun esta conectado y el fichero esta en uso, por eso el tema de una base de datos o algo similar que me permita eso
Responder Con Cita
  #3  
Antiguo 27-05-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.105
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que no está muy claro, exactamente, lo que quieres conseguir. Creo que estás intentando solucionar algo de forma no demasiado correcta. Deberías centrarte primero en explicar claramente la problemática que necesitas solucionar. Luego buscar la mejor solución para esa problemática. Finalmente implementar esa solución.
Tú estás empezando por la última parte, sin saber si es la mejor solución para esa problemática.
Es mi parecer, puede que no haya entendido bien.
Responder Con Cita
  #4  
Antiguo 01-06-2016
JuancaDJ JuancaDJ is offline
Miembro
NULL
 
Registrado: may 2016
Posts: 17
Poder: 0
JuancaDJ Va por buen camino
Código Delphi [-]
procedure TForm2.FormActivate(Sender: TObject); 
begin  
  //usuario 0
  //timer1.Enabled:=true; 
  if form1.Edit1.Text=form1.ListBox1.Items.Strings[0] then
    memo1.Lines.LoadFromFile('/veryimport/data/time'+inttostr(ix)+'.dll'); 
  labeltimer.Caption:=memo1.Lines.Text;

Esto me quedó asi:
Código Delphi [-]
procedure TForm2.FormActivate(Sender: TObject);
begin
  label2.Caption:=form1.Edit1.Text;
  timer1.Enabled:=true;
  memo1.Lines.LoadFromFile('/veryimport/data/time/' + form1.Edit1.Text + '.time');
  labeltimer.Caption:=memo1.Lines.Text;
end;

Referente a la problematica que tengo es simple, la idea era usar una Base de Datos pero ya por las razones expuestas no pude usarla y tuve que usar ficheros txt para mi solucion.

Última edición por ecfisa fecha: 02-06-2016 a las 07:23:01. Razón: corregir WYSIWYG
Responder Con Cita
  #5  
Antiguo 02-06-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola JuancaDJ.

Otra opción que podrías considerar es usar un TClientDataSet en memoria y manejarlo como si estuviera conectado a una bd usando los métodos LoadFromFile y SaveFromFile para plasmar y recuperar los datos en tu archivo.

Te pongo un ejemplo básico del control de ingreso:
Código Delphi [-]
...
implementation

var
  gFileName : string;

procedure TForm1.FormCreate(Sender: TObject);
var
  fld: TField;
  cds: TClientDataSet;
begin
  cds := ClientDataSet1;

  // ~ (*)
  fld := TStringField.Create(cds);
  fld.FieldName := 'NAME';
  fld.DataSet   := cds;
  fld := TStringField.Create(cds);
  fld.FieldName := 'PASSWORD';
  fld.DataSet   := cds;
  // ~

  cds.CreateDataSet;
  gFileName := ExtractFilePath(Application.ExeName) + 'ARCHIVO.CDS';
  if FileExists(gFileName) then
    cds.LoadFromFile(gFileName);
  cds.Open;
end;

procedure TForm1.btnAceptClick(Sender: TObject);
begin
  if not ClientDataSet1.Locate('NAME', EditName.Text, []) then
    raise Exception.Create('Nombre de usuario inexistente');

  if EditPassword.Text <> ClientDataSet1.FieldByName('PASSWORD').AsString then
    raise Exception.Create('Contraseña incorrecta');
  //...
  ShowMessage('¡ Bienvenido !');
end;

//....
procedure TForm1.FormDestroy(Sender: TObject);
begin
  ClientDataSet1.SaveToFile(gFileName);
end;
(*) los campos podes crearlos en tiempo de diseño pero lo hice en ejecución para clarificar.

Me valí de Edits para simplificar el ejemplo, pero no tendrías problemas en beneficiarte usando los controles de la pestaña DataControls como si el CDS estuviese conectado con una BD.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 02-06-2016
JuancaDJ JuancaDJ is offline
Miembro
NULL
 
Registrado: may 2016
Posts: 17
Poder: 0
JuancaDJ Va por buen camino
Muchas gracias por ese codigo, que tendre que estudiarlo a ver si lo implemente para posterior actualizacion de mi aplicacion jeje, ya que la tengo casi terminada usando los txt jejeje
Ahora tengo una duda sumamente importante que viene siendo un BUGS critico en mi sistema jeej y es el siguiente:
Tengo este codigo en estas funciones:

Código Delphi [-]
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
memo1.Lines.Text:=labeltimer.Caption;
memo1.Lines.SaveToFile('/veryimport/data/time/' + form1.Edit1.Text + '.time');
form1.Close;
end;

Código Delphi [-]
procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
memo1.Lines.Text:=labeltimer.Caption;
memo1.Lines.SaveToFile('/veryimport/data/time/' + form1.Edit1.Text + '.time');

form1.Close;
end;

Código Delphi [-]
procedure TForm2.FormDeactivate(Sender: TObject);
begin
memo1.Lines.Text:=labeltimer.Caption;
memo1.Lines.SaveToFile('/veryimport/data/time/' + form1.Edit1.Text + '.time');
form1.Close;
end;

Código Delphi [-]
procedure TForm2.FormDestroy(Sender: TObject);
begin
memo1.Lines.Text:=labeltimer.Caption;
memo1.Lines.SaveToFile('/veryimport/data/time/' + form1.Edit1.Text + '.time');
if labeltimer.Caption='00:00:00' then
WinExec(PChar('/veryimport/data/offtime.bat'),SW_SHOWNORMAL);
form1.Close;
end;

Como pueden ver todo eso lo tengo implementado pues si la aplicacion es cerrada, o la PC reiniciada necesito que guarde el ultimo tiempo que estaba ejecutandose antes del cierre de la aplicacion, pero hay un problema y es que si ejecuto el administrador de tareas y mato ese proceso no guarda el tiempo, entonces necesito saber como corregir ese fallo u ocultar el proceso del administrador de tareas
Otra cosa, en el evento ondestroy eso llama a un .bat que cierra la sesion del sistema operativo, por lo que igual si el proceso es matado ademas de guardar el ultimo tiempo cierre la session del sistema operativo. Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Propiedades en listbox - Listbox vs TGrid otras opciones vicens22 Desarrollo en Delphi para Android 6 13-10-2014 07:47:28
ListBox FrianxD C++ Builder 3 21-01-2008 22:14:11
Como estan las passwd en servidor Io PHP 10 07-01-2008 23:10:58
agregar y/o eliminar items de un listbox a partir de otro listbox Goyo PHP 2 27-09-2007 16:46:30
listbox gsilvei Varios 2 06-09-2006 04:20:44


La franja horaria es GMT +2. Ahora son las 15:45:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi