Ler varios arquivos ini só pela extensão
O problema é o seguinte eu quero ler vários arquivos ini, como faço para fazer isso sem ter o nome definido do arquivo?
Rafael Martins
Curtidas 0
Melhor post
Raimundo Pereira
09/01/2020
Bom dia!
Prospect, sempre estou ligado no fórum, aprendi muito tentando resolver algumas dúvidas bem interessantes e só me foi somando
conhecimento.
Uma boa dica é formular bem as perguntas do que você precisa, terá mais resultados e exemplos.
Forte abraço.
Prospect, sempre estou ligado no fórum, aprendi muito tentando resolver algumas dúvidas bem interessantes e só me foi somando
conhecimento.
Uma boa dica é formular bem as perguntas do que você precisa, terá mais resultados e exemplos.
Forte abraço.
GOSTEI 1
Mais Respostas
Raimundo Pereira
08/01/2020
Use o filelistbox e filtre pela extensão
Depois realize um for no filelistbox lendo os arquivos listados
Depois realize um for no filelistbox lendo os arquivos listados
GOSTEI 0
Nomad
08/01/2020
Use o filelistbox e filtre pela extensão
Depois realize um for no filelistbox lendo os arquivos listados
Depois realize um for no filelistbox lendo os arquivos listados
P2.. Rapaz, sempre vejo vc por aqui. Será que poderia dar umas dicas de como aprendeu tanto sobre Delphi? hahaha
Abraço!
GOSTEI 0
Rafael Martins
08/01/2020
Use o filelistbox e filtre pela extensão
Depois realize um for no filelistbox lendo os arquivos listados
Depois realize um for no filelistbox lendo os arquivos listados
Muito obrigado me ajudou muito.
Só tenho uma outra dúvida referente a isso: no interior dos .ini sempre terá um campo assim 'Nome=qualquer texto' mas tem alguns arquivos que não possuem em seu interior, você sabe algum comando para não trazer esses arquivos?
Agradeço!
GOSTEI 0
Raimundo Pereira
08/01/2020
Seguindo a linha de raciocínio, fiz um exemplo
Arquivos INI >> https://ibb.co/d5jc7Zf
Resultado da Rotina >> https://ibb.co/NypZJBs
Nesta rotina possuo 7 arquivos ini, dos 7, 2 não possui a chave nome, simplesmente a rotina ignora esse arquivo e segue o for..
Espero que te der uma luz para resolver sua dúvida
procedure TForm1.Btn_Ler_ConfsClick(Sender: TObject); var I: Integer; begin //Limpeza FileListBox1.clear; Memo1.Lines.Clear; //Listagem os CONF.ini no Filelistbox FileListBox1.Directory:=ExtractFilePath(Application.ExeName); FileListBox1.Update; //Verifica se foi encontrado algum arquivo no Filelistbox // Deixei o filtro *.ini if FileListBox1.Items.Count=0 then begin ShowMessage('Nenhum INI encontrado'); end else begin // Realizo o FOR e leio cada arquivo for I := 0 to FileListBox1.Items.Count-1 do BEGIN FileListBox1.ItemIndex:=I; Sleep(100); Application.ProcessMessages; LerINI(FileListBox1.FileName,'CNX_BD','NOME'); //Função qual ler o arquivo e realiza o procedimento desejado end; function TForm1.LerINI(Caminho_Arquivo,ID_Chave, Campo_Chave_INI: string): string; var Arq:Tinifile; begin if NOT FileExists(Caminho_Arquivo) then BEGIN ShowMessage('Arquivo de conexão, não localizado'); EXIT; END; Try Arq := Tinifile.Create(Caminho_Arquivo); If Arq.ReadString(ID_Chave, Campo_Chave_INI, '') = '' THEN begin Result:=''; end Else begin Result:=Arq.ReadString(ID_Chave, Campo_Chave_INI, ''); Tratamento_('Coletado do ARQ ['+FileListBox1.FileName+'] O nome:'+Result );// Aqui é apenas uma fução opcional End; Except on E: Exception do begin ShowMessage('Erro: ' + E.Message); Close; End; End; End; end; end; function TForm1.Tratamento_(Valor: String): String; begin Memo1.Lines.Add(Valor); end;
Arquivos INI >> https://ibb.co/d5jc7Zf
Resultado da Rotina >> https://ibb.co/NypZJBs
Nesta rotina possuo 7 arquivos ini, dos 7, 2 não possui a chave nome, simplesmente a rotina ignora esse arquivo e segue o for..
Espero que te der uma luz para resolver sua dúvida
GOSTEI 0
Rafael Martins
08/01/2020
P2, Bom dia!
Me ajudou muito consegui fazer o que queria muito obrigado!
Me ajudou muito consegui fazer o que queria muito obrigado!
GOSTEI 0