Ir para conteúdo
Fórum Script Brasil
  • 0

Ler Arquivo Ini e joga-lo em um DBGrid


marcioarrud

Pergunta

Eu tenho uma rotina que le caminhos de pastas e subpastas de um determinado diretório e gravo estes caminhos em um arquivo .ini.

O que preciso é ler este arquivo .ini e gravar linha a linha em um dbgrid, não precisa nem acessar em tabela alguma, somente ler o ini.

Desde já agradeço a atenção.

Marcioarrud

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Eu tenho uma rotina que le caminhos de pastas e subpastas de um determinado diretório e gravo estes caminhos em um arquivo .ini.

De um exemplo de como está os registros nesse arquivo .ini e um exemplo de como voce quer o DBgrid

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Em primeiro lugar obrigado pela atenção.

O arquivo ini fica mais ou menos assim, só que com mais linhas:

[diretorio]

H:\cds\14 BIS\[0001]Música1.mp3

H:\cds\ACAPELLA\[0002]Música2.mp3

H:\cds\EVER\[0003]Música3.mp3

E o grid eu gostaria que ficasse assim:

CODIGO NOME CAMINHO

0001 Música1.mp3 H:\cds\14 BIS\

0002 Música2.mp3 H:\cds\ACAPELLA\

0003 Música3.mp3 H:\cds\EVER\

Desde já agradeço pela ajuda.

Marcioarrud

Link para o comentário
Compartilhar em outros sites

  • 0

O arquivo ini fica mais ou menos assim, só que com mais linhas:

ARQUIVO: DIRETORIO.INI

H:\cds\14 BIS\[0001]Música1.mp3

H:\cds\ACAPELLA\[0002]Música2.mp3

H:\cds\EVER\[0003]Música3.mp3

E o grid eu gostaria que ficasse assim:

CODIGO NOME CAMINHO

0001 Música1.mp3 H:\cds\14 BIS\

0002 Música2.mp3 H:\cds\ACAPELLA\

0003 Música3.mp3 H:\cds\EVER\

O código fica dessa maneira:

Primeiro voce define os tipos, tamanhos e nomes dos campos do ClientDataSet

depois indexa os registros por um dos campos ( no caso CODIGO ) // ordenar por CODIGO

Depois voce lê os registros linha a linha, do arquivo DIRETORIO.INI

e a cada leitura voce divide a string nos respectivos campos e salva os registros na tabela

procedure TForm1.Button1Click(Sender: TObject);
VAR f:TextFile; linha:String; A : INTEGER;
begin

  with ClientDataSet1 do
  begin

    with FieldDefs.AddFieldDef do
    begin
      DataType := ftString;
      Size := 10;
      Name := 'CODIGO';
    end;

    with FieldDefs.AddFieldDef do
    begin
      DataType := ftString;
      Size := 50;
      Name := 'NOME';
    end;

    with FieldDefs.AddFieldDef do
    begin
      DataType := ftString;
      Size := 50;
      Name := 'CAMINHO';
    end;

    with IndexDefs.AddIndexDef do
    begin
      Fields := 'CODIGO';
      Name := 'IntIndex';
    end;
    CreateDataSet;
  end;

  DBGrid1.Visible := false;
  ClientDataSet1.Open;

  AssignFile(f,'C:\DIRETORIO.INI');
  Reset(f);
  while not eof (f) do
     begin
        Readln(f,linha);

        Form1.ClientDataSet1.Last;
        Form1.ClientDataSet1.Append;

        Form1.ClientDataSet1.FieldByName('CODIGO').Value := copy(linha,pos('[',linha)+1,4);
        Form1.ClientDataSet1.FieldByName('NOME').Value := copy(linha,pos(']',linha)+1,20);
        Form1.ClientDataSet1.FieldByName('CAMINHO').Text := copy(linha,1,pos('[',linha)-1);

        ClientDataSet1.Post;
        ClientDataSet1.ApplyUpdates(-1);
      end;

Closefile(f);
DBGrid1.Visible := true;

end;

O resultado fica assim:

CODIGO------NOME--------------CAMINHO

0001--------Musica1.mp3-------H:\cds\14 BIS\

0002--------Musica2.mp3-------H:\cds\ACAPELLA\

0003--------Musica3.mp3-------H:\cds\EVER\

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...