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

Arquivos .ini


Guest - Julio -

Pergunta

Guest - Julio -

Como faço para ler um arquivo .ini e armazenar seus valores em uma tabela com os seguintes campos " des_programa, versao, tamanho "

- A quantidade de variáveis "Programas instaladosX" não pode ser difinida, ou seja varia de um arquivo para outro.

- Capturar os valore da "Versão" e "Tamanho"

-------------------------------------------------------------------------------

[Programas]

Programas instalados1=Adobe Acrobat 5.0

Adobe Acrobat 5.0|Versão=5.0

Adobe Acrobat 5.0|Tamanho=17.3 MB

Programas instalados2=Atualização de Segurança para Windows XP (KB896422)

Atualização de Segurança para Windows XP (KB896422)|Versão=1

Atualização de Segurança para Windows XP (KB896422)|Tamanho=Desconhecido

Programas instalados3=Atualização para Windows XP (KB898461)

Atualização para Windows XP (KB898461)|Versão=1

Atualização para Windows XP (KB898461)|Tamanho=Desconhecido

------------------------------------------------------------------------------

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Tenta algo assim...

Var

Query: TQuery;

slMeusArquivos: TStringList;

iPosTamanho, iPosVersao, iLinha: Integer;

sDescricaoSW, sVersaoSW, sTamanhoSW, sInBuffer: String;

Begin

slMeusArquivos := TStringList.Create;

Query := TQuery.Create;

// 1) Criando uma tabela, tipo VisualDBase 7.

With Query do Begin

DataBaseName := 'acme';

SQL.Clear;

SQL.Add('create table '+#39+'tabelasw.dbf'+#39);

SQL.Add('(item autoinc,');

SQL.Add(' descricao char(50),');

SQL.Add(' versao char(40),');

SQL.Add(' tamanho char(30))';

ExecSQL;

Close;

// 2) Criando um índice (.mdx), acelera pesquisa e gravação.

SQL.Clear;

SQL.Add('create index descricao on '+#39+'tabeasw.dbf'+#39+' (descricao)');

ExecSQL;

Close;

SQL.Clear;

SQL.Add('');

End;{With Query}

// 3) Criar uma lista de strings e obter o arquivo .Ini.

slMeusArquivos := TStringList.Create;

slMeusArquivos.LoadFromFile('c:\lista.ini');

iLinha := 1;

// 4) Sequencialmente, obter os dados de cada "string" da lista, analisar o conteúdo e gravar.

While iLinha<=slMeusArquivos.Count do Begin

sInBuffer := slMeusArquivos.Strings[iLinha-1];

iPosVersao := Pos('Versão',sInBuffer);

If iPosVersao>0 then

Begin

sDescricaoSW := Copy(sInBuffer,1,iPosVersao-1);

sVersaoSW := Copy(sInBuffer,iPosVersao,(Length(sInBuffer)-iPosVersao)+1);

End;

{EndIf iPosVersao>0}

iPosTamanho := Pos('Tamanho',sInBuffer);

If iPosTamanho>0 then

Begin

sTamanhoSW := Copy(sInBuffer,iPosTamanho,(Length(sInBufer)-iPosTamanho)+1);

Query.SQL.Strings[0] :=

'insert into '+#39+'tabelasw.dbf'+#39+#13+#10+

'(descricao, versao, tamanho)'+#13+#10+

'values'+#13+#10+

'('+#39+sDescricaoSW+#39+','+#13+#10+

#39+sVersaoSW+#39+','+#13+#10+

#39+sTamanhoSW+#39+')';

Query.ExecSQL;

End;

{EndIf iPosTamanho>0}

Inc(iLinha}

End;{While iLinha<=slMeusArquivos.Count}

Query.Free;

slMeusArquivos.Free;

Link para o comentário
Compartilhar em outros sites

  • 0

a rotina para ler o arquivo poderia ser assim:

var
  C: Integer;
  F: IniFile;
  S: String;
  L: TStringList;
begin
  F := TIniFile.Create('arquivo.ini');
  L := TStringList.Create;
  C := 1;

  S := F.ReadString('programas', 'Programas instalados' + IntToStr(C)', '');

  while(S <> '') do
    begin
      L.Text := StringReplace(S, '|', #13#10, [rfReplaceAll]);
      ..........{rotinas com cada linhas do L, use outro contador}

      Inc(C);
      S := F.ReadString('programas', 'Programas instalados' + IntToStr(C)', '');
    end;

  F.Free;
end;

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...