ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Comparar nomes de arquivos

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
rodrigoiasi
Novato
Novato


Registrado: Sexta-Feira, 10 de Fevereiro de 2012
Mensagens: 22

MensagemEnviada: Qui Dez 19, 2013 7:07 pm    Assunto: Comparar nomes de arquivos Responder com Citação

Boa noite!

Eu estou com uma situação que não consigo resolver.
Preciso pegar uma lista de arquivos de um filelistbox1
Neste só terão arquivos onde os ultimos 24 caracteres não podem ser iguais.
Aí vem a bucha : nao consigo pegar o nome de cada arquivo e comparar com os ultimos 24 caracteres de cada outro arquivo que consta nesta lista.

Preciso comparar cada um dos arquivos, com todos da lista e identificar os que estão com os ultimos 24 caracteres iguais e jogar em um memo, para separar estes arquivos posteriormente.

Alguem te alguma ideia para que eu resolva esta bucha???


Código:


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, FileCtrl;

type
  TForm1 = class(TForm)
    FileListBox1: TFileListBox;
    DriveComboBox1: TDriveComboBox;
    DirectoryListBox1: TDirectoryListBox;
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
  function ObterIguais(StrCompleta: string): string;
  var
    PosCar: integer;
    StrTmp: string;
    LengthTmp: integer;
    ii:integer;

  begin
  Memo1.Clear;
    Result := '';

    if LengthTmp > 24 then
   begin
  for ii:=0 to FileListBox1.Items.Count - 1 do
    Memo1.Lines.Add(ObterIguais(FileListBox1.Items[ii]));
    Memo1.Lines.SaveToFile(ExtractFilePath(paramstr(0))+'convertido.txt');
end;
 end;
 begin

end;
end.
end


Eu me confundi todo tentando reaproveitar um codigo.
Mas nao to conseguindo....
Algue me ajuda???
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
informacaoweed
Aprendiz
Aprendiz


Registrado: Terça-Feira, 1 de Outubro de 2013
Mensagens: 268
Localização: Porto Alegre / RS

MensagemEnviada: Sex Dez 20, 2013 8:32 am    Assunto: Re: Comparar nomes de arquivos Responder com Citação

Eu não entendi nada do seu código, e não entendi muito bem em que componente está a lista de arquivos com os quais vc tem que comparar os arquivos que estão no filelistbox. Vou imaginar que estão em uma listbox. Então vc adapta para o componente correto

Código:


//no cliclk no botão este código :
  for ii:=0 to FileListBox1.Items.Count - 1
  do ObterIguais(ExtractFilePath(FileListBox1.Items[ii]));

//...

//Depois na função ObterIguais:

procedure TForm1.ObterIguais(Arquivo: String);
var iIndex : integer;
begin
  if Length(Arquivo) >= 24 then
  begin
    {vou imaginar que os arquivos com os quais vc tem que comparar estão em uma listbox, pois eu não entendi onde eles estão}
    for iIndex := 0 to ListBox1.Count - 1
    do
    begin
      if length(ListBox1.Items[iIndex]) > 24 then
      begin
         if Copy(Arquivo, Length(Arquivo) - 24, Length(Arquivo)) = Copy(ListBox1.Items[iIndex], Length(ListBox1.Items[iIndex]) - 24, Length(LisBox1.Items[iIndex]))
         then SalvaFile(Arquivo);
      end;
    end;
  end;
end;


Obs: Não trabalho com listbox há um tempo então não sei se a propriedade correta é ListBox1.Items ou ListBox.Lines.
_________________
Aguarde... nossa Evolução está sendo processada.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rodrigoiasi
Novato
Novato


Registrado: Sexta-Feira, 10 de Fevereiro de 2012
Mensagens: 22

MensagemEnviada: Sex Dez 20, 2013 11:42 am    Assunto: Responder com Citação

O nome dos arquivos estarão no FileListBox1
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rodrigoprado
Colaborador
Colaborador


Registrado: Terça-Feira, 24 de Mai de 2005
Mensagens: 1074
Localização: Curitiba/PR

MensagemEnviada: Sex Dez 20, 2013 2:04 pm    Assunto: Responder com Citação

Estes último 24 caracteres são constantes?

Tenho um diretório com varios arquivos, ai soh printo os que forem "pas" No final


tem essa rotina que mapea se for um valor constante.

procedure TForm1.Button1Click(Sender: TObject);
var
i, iQtdCaracteres: Integer;
sPalavra, sAux: String;
begin
for I := 0 to FileListBox1.Items.Count-1 do
if Copy(FileListBox1.Items[i],Pos('.',FileListBox1.Items[i])+1,3) = 'pas' then
showmessage(FileListBox1.Items[i]);
end;
_________________
- Compartilhe seus conhecimentos -
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
rodrigoiasi
Novato
Novato


Registrado: Sexta-Feira, 10 de Fevereiro de 2012
Mensagens: 22

MensagemEnviada: Sex Dez 20, 2013 3:16 pm    Assunto: Responder com Citação

Vou descrever o cenário:

Os arquivos são compostos da seguinte forma

NOME SOBRENOME .01 20 12 2013 16 12.eeg

Os ultimos 24 caracteres são a data hora e a extensão do arquivo. A extensão nunca muda .eeg

O nome e sobrenome e a data mudam.

Preciso comparar os ultimos 24 caracteres dos nomes dos arquivos do FileListBox1 e informar quais que tem esses caracteres iguais. Os que não repetirem esses 24 caracteres, OK. Os que repetirem ao menos uma vez, preciso separar para verificar......
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rodrigoiasi
Novato
Novato


Registrado: Sexta-Feira, 10 de Fevereiro de 2012
Mensagens: 22

MensagemEnviada: Sáb Dez 21, 2013 9:56 am    Assunto: Responder com Citação

Consegui !!!!!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB