Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-03-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Deberás ir paso a paso, empieza con lo que más falta te haga, nos explicas el problema, te lo resolvemos y vueltas a empezar con el siguiente problema, ¿ok?
Responder Con Cita
  #2  
Antiguo 07-03-2010
emiliano_b emiliano_b is offline
Miembro
 
Registrado: mar 2010
Posts: 13
Poder: 0
emiliano_b Va por buen camino
hoa de nuevo..

Me acoste a dormir un rato porque no me daban mas las neuronas... Me parece bien tu propuesta, y lo primero es: porque no me guarda bien las cosas en el txt, y comohago saltos de linea!!! Les paso el codigo.
en la unit2:
Código:
procedure TArchivo.AgregarCliente(c:Cliente;var b:byte);
  begin
  {$I-}
  Seek(Archi, FileSize(archi));
  {$I+};
  b:=IOResult;
    If b=0 then
      Write(Archi,c);
  end;
en la unit1
Código:
procedure TForm1.AgregarCliente1Click(Sender: TObject);
var c:Cliente; b:byte;
  begin
  Edit1.ReadOnly:=false;
  Edit2.ReadOnly:=false;
  Edit4.ReadOnly:=false;
  c.nombres:=Edit1.Text;
  c.Apellido:=Edit2.Text;
  c.DNI:=StrToInt(Edit3.Text);
  c.saldo:=StrToFloat(Edit4.Text);
    Archivo.AgregarCliente(c,b);
    If b<>0 then ShowMessage('No se pudo agregar el registro. Seguramente no abrió el archivo correspondiente.')
    else ShowMessage('Se ha agregado el registro');
  Edit1.Text:='';
  Edit2.Text:='';
  Edit3.Text:='';
  Edit4.Text:='';
  end;
asi me imprime en el txt:Juan t™ i Carlos& t™ & Á6* Tö u,;~Jose t™ i Perez t™ & Á6* Tö u,;~
nose rian mucho, estoy aprendiendo...

Última edición por Casimiro Noteví fecha: 07-03-2010 a las 14:06:46. Razón: etiquetas code
Responder Con Cita
  #3  
Antiguo 07-03-2010
emiliano_b emiliano_b is offline
Miembro
 
Registrado: mar 2010
Posts: 13
Poder: 0
emiliano_b Va por buen camino
Otra vez yo

Gente, he podido avanzar astante... tengo algunos detalles nomas.... (ademas de algunos errores menores que ya voy resolviendo...

1ero.. puedo realizar busquedas bien en el txt con los datos que agrego.. se
ve que estono es php, porque ahi yo puedo leer sin problemas lo que escribo a partir de un archivo.. sera el tipo de codificacion??, en fin, mientras pueda escribir y realizar busquedas en el txt no me interesa mucho.

2do.. La verdad que no encuentro como meter los datos del txt en un stringgrid, en esto no tengo ni idea... es una matriz de 4 elementos.

3ro.. como hago una validadcion del tipo siguiente para usar un mismo boton y no tener que agregar uno para cada procedimiento?? Intente algo del tipo:
if nuevo1Click.execute = true then
begin
end
if abrir1.click.execute = true then
.....

o .action.execute... no recuerdo bien como lohabia hecho.. la cuestion es que no me deja... y se preguntaran porq no lo hago directamente del main menu???...porque el profesor quiere que desde el main seleccione los campos que se habilitan nomas,.... cosas del chango este.
Gracias de nuevo... aunque sea por las bardeadas o las criticas me encabronaron - enojaron lo suficiente para que lo haga..jajajaja
saludos
Responder Con Cita
  #4  
Antiguo 07-03-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por emiliano_b Ver Mensaje
[..]
2do.. La verdad que no encuentro como meter los datos del txt en un stringgrid, en esto no tengo ni idea... es una matriz de 4 elementos.
si tu stringgrid se llama, ejemplo: Rejilla, es tan fácil como el "juego de los barquitos":

Rejilla[Fila,Columna] = "lo que sea";

0,0 - 0,1 - 0,2 - 0,3
1,0 - 1,1 - 1,2 - 1,3
2,0 - 2,1 - 2,2 - 2,3
3,0 - 3,1 - 3,2 - 3,3
Responder Con Cita
  #5  
Antiguo 07-03-2010
emiliano_b emiliano_b is offline
Miembro
 
Registrado: mar 2010
Posts: 13
Poder: 0
emiliano_b Va por buen camino
A ver si me explico mejor

En relacion a CLIENTE es Cliente = Record, yc:CLIENTE...sino entendi mal, sino me salio de casualidad es como asignarlo a c...sino contame que hice jaja.
Con respecto a lo segundo... del stringrid..
peor si e sun while y no se la cantidad de elementos que voy a tener?, porq asi pongo los titulos, eso lo hice, Pero el tema es si hago un while?
gracias gente.
Responder Con Cita
  #6  
Antiguo 07-03-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Deberías explicar cómo lo lees, qué haces, ¿lees línea a línea del fichero de texto y luego debes poner los datos leídos en el grid, no?, si es así, sólo debes de crearte por ejemplo un par de variables para fila y columna y hacer el bucle:

Pones los títulos en la fila 0, luego:
Más o menos así, es que no sé cómo lo tienes implementado, pero la idea es esta:
Código:
fila:=1;
columna:0;

Cliente.first;
while not cliente.eof do
begin
  rejilla[fila,columna] := c.nombre;
  inc(columna);
  rejilla[fila,columna] := c.apellidos;
  ...
  ...
  cliente.next;
  inc(fila):
end;
Responder Con Cita
  #7  
Antiguo 07-03-2010
emiliano_b emiliano_b is offline
Miembro
 
Registrado: mar 2010
Posts: 13
Poder: 0
emiliano_b Va por buen camino
ta muy bueno lo que me decis..

Esta muy buena la forma en que me decis de hacerlo, pero como que definis fila y columna... te muestro el desastre que tengo hecho hasta aho desde la unit 2 donde estan los procedimientos para la otra unit:
Código Delphi [-]
unit Unit2;

interface
uses Dialogs, StdCtrls, SysUtils, Grids;

type
Cliente = Record
  Apellido, nombres: string[20];
  DNI, saldo: double;
end;
TArchivo = class
private
  Archi:File of Cliente;
  datos: Cliente;
  Ver: TStringGrid;
public
  procedure CrearArchivo(ArchiFisico:string);
  procedure AbrirArchivo(ArchiFisico:string);
  procedure AgregarCliente(c:Cliente;var b:byte);
  procedure GuardarArchivo(ArchiFisico:string);
  procedure EliminarCliente(var h:longint; e10: string);
  procedure CerrarArchivo;
  function Buscar_X_DNI(var h:longint; var c:Cliente):boolean;
  procedure MostrarLista(var ver:TStringGrid);
end;
implementation

procedure TArchivo.CrearArchivo;
  begin
    AssignFile(Archi,ArchiFisico);
    Rewrite(Archi);
  end;
procedure TArchivo.AbrirArchivo(ArchiFisico:string);
  begin
    AssignFile(Archi,ArchiFisico);
    Reset(Archi)
  end;
procedure TArchivo.AgregarCliente(c:Cliente;var b:byte);
  begin
  {$I-}
  Seek(Archi, FileSize(archi));
  {$I+};
  b:=IOResult;
    If b=0 then
      Write(Archi, c);
  end;
procedure TArchivo.GuardarArchivo(ArchiFisico:string);
  begin
    AssignFile(Archi,ArchiFisico);
    Rewrite(Archi);
  end;
procedure TArchivo.EliminarCliente(var h:longint; e10: string);
var
  aux: file of Cliente;
begin
  assignfile(aux,'temp.dat');
  {$I-}
  reset(archi);
  rewrite(aux);
  {$I+}

    if ioresult<>0 then
    showmessage('Error en Archivo')
    else
      Begin
      while not eof (archi) do begin
      read(archi,datos);
          if datos.dni <> h then
          write(aux,datos);
      end;
  closefile (archi);
  closefile(aux);
  erase(Archi);
    if not
    RenameFile('temp.dat', e10)
    then
    Showmessage('Error renombrando Archivos!');
    end;
    Showmessage ('Se eliminó correctamente el Cliente con DNI'+ inttostr(h));
end;
procedure TArchivo.CerrarArchivo;
  begin
      if IOresult = 0 then
      begin
      closefile(Archi);
      end


  end;
function TArchivo.Buscar_X_DNI(var h:longint;var c: Cliente):boolean;
begin
  reset(archi);
  while not eof (archi) do
  begin
    read(archi, c);
    if c.dni = h then
      begin
      Result := True;
      Exit;
      end;
  end;
  // Cliente no encontrado
  Result := False;
end;
  procedure TArchivo.MostrarLista(var ver:TStringGrid);
  var fila, columna: integer;
  begin
  with ver do
    begin
    // Título de las columnas
      Cells[0, 0] := 'NOMBRE';
      Cells[1, 0] := 'APELLIDO';
      Cells[2, 0] := 'DNI';
      Cells[3, 0] := 'SALDO';
    Reset(Archi);
fila:=1;
columna:=0;

cliente.first;
while not cliente.eof do
begin
  rejilla[fila,columna] := c.nombre;
  inc(columna);
  rejilla[fila,columna] := c.apellidos;
  ...
  ...
  cliente.next;
  inc(fila):
end;
end;
    showmessage('El Archivo esta vacio');
    exit;
    end;
  end;
end.

NI falta que me digas que debe tener errores, voy emparchando mas o menos porq lo tengo que terminar hoy si osi porq mañana laburo, asi que nada...lo hago como puedo... la proxima ya ira mejor imagino.
gracias por todo viejo.

Última edición por rgstuamigo fecha: 09-03-2010 a las 14:35:50. Razón: Estética en el código
Responder Con Cita
  #8  
Antiguo 08-03-2010
emiliano_b emiliano_b is offline
Miembro
 
Registrado: mar 2010
Posts: 13
Poder: 0
emiliano_b Va por buen camino
ayuda con esto..no sale

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Deberías explicar cómo lo lees, qué haces, ¿lees línea a línea del fichero de texto y luego debes poner los datos leídos en el grid, no?, si es así, sólo debes de crearte por ejemplo un par de variables para fila y columna y hacer el bucle:

Pones los títulos en la fila 0, luego:
Más o menos así, es que no sé cómo lo tienes implementado, pero la idea es esta:
Código:
fila:=1;
columna:0;

Cliente.first;
while not cliente.eof do
begin
  rejilla[fila,columna] := c.nombre;
  inc(columna);
  rejilla[fila,columna] := c.apellidos;
  ...
  ...
  cliente.next;
  inc(fila):
end;
!!!!!!!!!!!!esto ultimo , el haer el next para que empiece a trabar en el siguiente array de elemntos no lo puedo hacer andar...ya probe con un if, buqsque ver ocmo usar ese next y el first pero no hay caso.
grax
Responder Con Cita
  #9  
Antiguo 07-03-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Para que podamos leer mejor el código recuerda ponerlo entre etiquetas [code ] y [/code ]

"Cliente", ¿qué es, una estructura?
"c", ¿qué es, una instancia de "Cliente"?
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
ayuda con este codigo kurono Varios 4 13-06-2008 01:03:29
Ayuda con este código que me dejaron LAFALOFO Varios 7 14-09-2006 20:50:26
una ayuda con este error please dariana20 SQL 3 14-06-2006 23:14:06
Ayuda con este error???? danytorres Varios 1 27-10-2004 11:38:09
Me ayuda alguien con este msg de error? NaZZ Varios 4 12-03-2004 09:31:25


La franja horaria es GMT +2. Ahora son las 22:13:13.


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