Ler varios arquivos ini só pela extensão
08/01/2020
0
Rafael Martins
Post mais votado
09/01/2020
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.
Raimundo Pereira
Mais Posts
08/01/2020
Raimundo Pereira
Depois realize um for no filelistbox lendo os arquivos listados
08/01/2020
Nomad
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!
09/01/2020
Rafael Martins
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!
09/01/2020
Raimundo Pereira
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
10/01/2020
Rafael Martins
Me ajudou muito consegui fazer o que queria muito obrigado!
Clique aqui para fazer login e interagir na Comunidade :)