Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-07-2010
TheJoker TheJoker is offline
Registrado
 
Registrado: jul 2010
Posts: 6
Poder: 0
TheJoker Va por buen camino
Ayuda con aplicacion (BD)

Hola, soy nuevo en Delphi y queria saber si es posible crear una base de datos para mi aplicacion.

En esencia la aplicacion tiene como funcion buscar y eliminar ciertos archivos pero al ser numerosos no se si tengo que poner linea por linea o puedo crear una base de datos donde pongo la localizacion de los archivos a eliminar, y de forma automatica lea cada archivo y lo elimine?

Se puede hacer eso?

Bye.
Responder Con Cita
  #2  
Antiguo 18-07-2010
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Sería necesario saber de cuantos archivos estamos hablando, pero en síntesis creo que podría hacerse sin base de datos, es decir guardar los nombres y ubicación de los archivos en un archivo de texto, luego abrirlo ir leyendo línea por línea e ir ejecutado el Delete correspondiente.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 18-07-2010
TheJoker TheJoker is offline
Registrado
 
Registrado: jul 2010
Posts: 6
Poder: 0
TheJoker Va por buen camino
Si yo lei que se podia hacer tambien con un .txt pero no tengo muy en claro como integrarlo. Me refiero conoces algun manual o tutorial que me ayude a programar esa funcion?

Osea que lea el texto, cambie sus atributos y elimine los archivos. Algun tuto?
Responder Con Cita
  #4  
Antiguo 18-07-2010
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Aquí te pego unas líneas que utilizo para leer líneas de un fichero que te pueden servir como base de ejemplo, no tengo tiempo para más.
Código Delphi [-]
Procedure Leer_Cabecera_Pedidos();
var
  F: TextFile;
  S: string;
  cNPedido:String;
  nContPedido:Integer;
begin
nContPedido:=0;
cNomFicCNotas:='Noc010'+Vendedor + cTipFileim;
cNomFicCNotas:=cCaminoTerminales + cNomFicCNotas;
Ultimo_Pedido();

  Try
  Serie:=FormatFloat('0000000',StrToInt(DmTerm.QrUltCons.Fields[0].AsString)+1);
  Except
  Serie:='0000001';
  ShowMessage('Atención:No había pedidos se registra con el número 1.');
  end;
  AssignFile(F, cNomFicCNotas);
  Reset(F);

//Grabar la serie que es la cabecera del pedido.
DmTerm.PedCliSerie.Append;
DmTerm.PedCliSerieSerie.Value:=Serie;

DmTerm.PedCliSerieFecha.Value:=FileDateToDateTime(FileAge(cNomFicCNotas));
DmTerm.PedCliSerieHora.Value :=FileDateToDateTime(FileAge(cNomFicCNotas));

DmTerm.PedCliSerieFechadescarga.Value:=Date;
DmTerm.PedCliSerieHoradescarga.Value:=Time;

DmTerm.PedCliSerieVendedor.Value:=Vendedor;
DmTerm.PedCliSerieObservaciones.Value:='Gestionado por: '+cNombreUsuario;
DmTerm.PedCliSerie.Post;

  While not Eof(F) Do
  begin
  Readln(F, S);  { Read the first line out of the file }
  cNPedido  :=Copy(S,11,10);

    if Not DmTerm.BusPedcli.FindKey([cNPedido]) then
    begin
    nContPedido:=nContPedido + 1;
    DmTerm.Pedcli.Append;
    DmTerm.PedcliNPedido.Value  :=Copy(S,11,10);
    PedidoBis:=Copy(S,11,10);
    DmTerm.PedcliCodClient.Value:=Trim(Copy(S,0,10));

    if DmTerm.QrClient.Locate('Codigo',Trim(Copy(S,0,10)),[])then
    DmTerm.PedcliNombre.Value   :=DmTerm.QrClientBuscar.Value
    else
    DmTerm.PedcliNombre.Value:='No encontrado';

    DmTerm.PedcliFecha.Value    :=Invierte_Fecha(Copy(S,261,10));
    DmTerm.PedcliHora.Value     :=StrToTime(Copy(S,272,5));
    DmTerm.PedcliAgnus.Value    :=Copy(s,263,2);
    DmTerm.PedcliBase1.Value    :=StrToFloat(Trim(StringReplace(Copy(S,114,8),'.',',',[rfReplaceAll])));
    DmTerm.PedcliBase2.Value    :=StrToFloat(Trim(StringReplace(Copy(S,122,8),'.',',',[rfReplaceAll])));
    DmTerm.PedcliBase3.Value    :=StrToFloat(Trim(StringReplace(Copy(S,130,8),'.',',',[rfReplaceAll])));

    DmTerm.PedcliIva1.Value     :=StrToFloat(Trim(StringReplace(Copy(S,154,8),'.',',',[rfReplaceAll])));
    DmTerm.PedcliIva2.Value     :=StrToFloat(Trim(StringReplace(Copy(S,162,8),'.',',',[rfReplaceAll])));
    DmTerm.PedcliIva3.Value     :=StrToFloat(Trim(StringReplace(Copy(S,170,8),'.',',',[rfReplaceAll])));

    DmTerm.PedcliRec1.Value          :=StrToFloat(Trim(StringReplace(Copy(S,194,8),'.',',',[rfReplaceAll])));
    DmTerm.PedcliRec2.Value          :=StrToFloat(Trim(StringReplace(Copy(S,202,8),'.',',',[rfReplaceAll])));
    DmTerm.PedcliRec3.Value          :=StrToFloat(Trim(StringReplace(Copy(S,210,8),'.',',',[rfReplaceAll])));

    DmTerm.PedcliImporte.Value       :=StrToFloat(Trim(StringReplace(Copy(S,243,8),'.',',',[rfReplaceAll])));
    DmTerm.PedcliObservaciones.Value :=Copy(S,293,60);
    DmTerm.PedcliProcesado.Value     :=False;
    DmTerm.Pedcli.Post;
      Try
      Leer_Lineas_Pedidos();
      Except
      ShowMessage('Error al leer líneas del pedido');
      end;

      Try
      Leer_Incidencias();
      Except
      //ShowMessage('Error al leer Incidencias');
      end;

    end
    else
    begin
    ShowMessage('El pedido del Cliente '+Trim(Copy(S,0,10))+' ya existe.'+
    Chr(10)+'y no se incorporará');
    end;

  end;
  CloseFile(F);

  if nContPedido = 0 then
  begin
  DmTerm.PedCliSerie.Edit;
  DmTerm.PedCliSerie.Delete;
  ShowMessage('Error:No había ningún pedido.');
  lError:=True;
  end;
end;
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 18-07-2010
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Quizás este otro que es más corto te ayude más.

Código Delphi [-]
Procedure Leer_Incidencias();
Var
{Primero habrá ver si tiene fihero de incidencias}
  F   :TextFile;
  S   :string;
  cIncidencia:String;
  cCli:String;
  dFecha:TDate;
begin
cNomFicIncide:='Inc010'+Vendedor+cTipFileim;
cNomFicIncide:=cCaminoTerminales + cNomFicIncide;

  if FileExists(cNomFicIncide) then
  begin
    AssignFile(F, cNomFicIncide);
    Reset(F);

    While not Eof(F) Do
    begin
    Readln(F, S);

    cCli  :=Trim(Copy(S,1,10));
    dFecha:=Invierte_Fecha(Copy(S,13,10));

        if  Not DmTerm.BusInci.FindKey([cCli,Serie]) then
        begin
          DmTerm.PInciCli.Append;
          DmTerm.PInciCliCodClient.Value  := Trim(Copy(S,1,10));

            if DmTerm.QrClient.Locate('Codigo',Trim(Copy(S,0,10)),[]) then
            DmTerm.PInciCliNombre.Value     := DmTerm.QrClientBuscar.Value
            else
            DmTerm.PInciCliNombre.Value     := 'No encontrado';

          DmTerm.PInciCliCodigo.Value     := Copy(S,11,2);

             Case StrToInt(Copy(S,11,2)) of
             01:cIncidencia:=AInciden[01];
             02:cIncidencia:=AInciden[02];
             03:cIncidencia:=AInciden[03];
             04:cIncidencia:=AInciden[04];
             05:cIncidencia:=AInciden[05];
             06:cIncidencia:=AInciden[06];
             07:cIncidencia:=AInciden[07];
             08:cIncidencia:=AInciden[08];
             09:cIncidencia:=AInciden[09];
             10:cIncidencia:=AInciden[10];
             11:cIncidencia:=AInciden[11];
             end;

          DmTerm.PInciCliIncidencia.Value := cIncidencia;
          DmTerm.PInciCliFecha.Value      :=Invierte_Fecha(Copy(S,13,10));
          DmTerm.PInciCliHora.Value       :=StrToTime(Copy(S,24,5));
          DmTerm.PInciCliObservaciones.Value:=Copy(S,29,60);

          DmTerm.PInciCli.Post;
        end;

      end;

    CloseFile(F);

  end;
end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #6  
Antiguo 18-07-2010
TheJoker TheJoker is offline
Registrado
 
Registrado: jul 2010
Posts: 6
Poder: 0
TheJoker Va por buen camino
Muchas gracias voy a ir leyendo haber q tal me sale.


Gracias de nuevo.
Responder Con Cita
  #7  
Antiguo 18-07-2010
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 Joker.

Se me ocurre que podrías utilizar un OpenDialog para agregar los nombres al archivo de texto y eliminarlos desde allí.

Algo así :

Código:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    btnAgregar: TButton;
    OpenDlg: TOpenDialog;
    btnBorrar: TButton;
    procedure FormCreate(Sender: TObject);
    procedure btnAgregarClick(Sender: TObject);
    procedure btnBorrarClick(Sender: TObject);
  private
    FArchivos: TextFile;
    procedure AgregarArchivo;
    procedure BorrarArchivos;
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
 
implementation {$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  AssignFile(FArchivos,'C:\AELIMINAR.TXT');
  try
    Reset(FArchivos);
  except
    Rewrite(FArchivos);
  end;
end;

procedure TForm1.AgregarArchivo;
var
  SList: TStringList;
begin
  SList:= TStringList.Create;
  SList.LoadFromFile('C:\AELIMINAR.TXT');
  if OpenDlg.Execute then
  begin
    if SList.IndexOf(OpenDlg.FileName)> 0 then
      ShowMessage('El archivo ya existe en la lista para ser eliminado')
    else
    begin
      Append(FArchivos);
      Writeln(FArchivos, OpenDlg.FileName);
      CloseFile(FArchivos);
    end;
  end;
end;
 
procedure TForm1.BorrarArchivos;
var
  Nombre: string;
begin
  Reset(FArchivos);
  while not Eof(FArchivos) do
  begin
    Readln(FArchivos, Nombre);
    if not DeleteFile(Nombre) then
      ShowMessage('No se pudo eliminar: '+Nombre);
  end;
  CloseFile(FArchivos);
end;

procedure TForm1.btnAgregarClick(Sender: TObject);
begin
  AgregarArchivo;
end;

procedure TForm1.btnBorrarClick(Sender: TObject);
begin
  BorrarArchivos;
end;
 
end.

Carece de algunas comprobaciones necesarias quizás, pero es para dar una idea.


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 18-07-2010 a las 23:33:06.
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
ayuda con una aplicación MDI ercrizeporta Varios 3 16-04-2007 15:31:48
Aplicacion terminada ayuda!! Bitbanner Varios 3 10-02-2005 17:15:15
Ayuda para aplicación en red dape Varios 0 04-12-2004 17:04:42
Ayuda de aplicacion jmedina Conexión con bases de datos 3 22-07-2004 16:44:23
ayuda con aplicacion en red squenda Firebird e Interbase 1 04-04-2004 08:39:58


La franja horaria es GMT +2. Ahora son las 07:24:46.


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