Guest - Julio - Postado Março 9, 2006 Denunciar Share Postado Março 9, 2006 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.0Adobe Acrobat 5.0|Versão=5.0Adobe Acrobat 5.0|Tamanho=17.3 MBProgramas instalados2=Atualização de Segurança para Windows XP (KB896422)Atualização de Segurança para Windows XP (KB896422)|Versão=1Atualização de Segurança para Windows XP (KB896422)|Tamanho=DesconhecidoProgramas instalados3=Atualização para Windows XP (KB898461)Atualização para Windows XP (KB898461)|Versão=1Atualização para Windows XP (KB898461)|Tamanho=Desconhecido------------------------------------------------------------------------------ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 paulobergo Postado Março 12, 2006 Denunciar Share Postado Março 12, 2006 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; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 CorN_Sk8 Postado Março 16, 2006 Denunciar Share Postado Março 16, 2006 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; Citar Link para o comentário Compartilhar em outros sites More sharing options...
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
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.