Como gravar um TstringList em arquivo .ini
Olá bom dia!
Desejaria saber como gravar e ler uma variável tipo StringList em um arquivo .INI ?
100+
ANT.CARLOS/SP
Desejaria saber como gravar e ler uma variável tipo StringList em um arquivo .INI ?
100+
ANT.CARLOS/SP
Antonio Jesus
Curtidas 0
Respostas
Joel Rodrigues
16/01/2014
Basta usar o método SaveToFile da StringList. Exemplo:
minhaTStringList.SaveToFile('arquivo.ini');GOSTEI 0
Antonio Jesus
16/01/2014
Olá boa noite e obrigado pela atenção.
Mas não foi isto q eu quis dizer.
Ex:
Tenho uma var cc : TString;
nome : String.
numero : Integer;
IniFile : String;
Ini : TIniFile;
StreamMemo : TMemoryStream;
Begin
cc:=TstringList.Create;
cc.add('aaaaaaaaaaaaaa');
cc.add('bbbbbbbbbbbbbb');
cc.add('cccccccccccccccc');
Ini.WriteString( 'Email','Nome' ,nome);
Ini.WriteInteger( 'Email','Numero' ,numero);
StreamMemo := TMemoryStream.Create;
mmEmailMsg.Lines.SaveToStream(StreamMemo);
StreamMemo.Seek(0,soFromBeginning);
Ini.WriteBinaryStream( 'Email','Mensagem',StreamMemo); //gravando um campo memo
Então como gravaria o cc, q é um StringList ?
E como faria sua leitura ?
A quem puder ajudar, desde já meus agradecimento.
100+
ANT.CARLOS/SP
Mas não foi isto q eu quis dizer.
Ex:
Tenho uma var cc : TString;
nome : String.
numero : Integer;
IniFile : String;
Ini : TIniFile;
StreamMemo : TMemoryStream;
Begin
cc:=TstringList.Create;
cc.add('aaaaaaaaaaaaaa');
cc.add('bbbbbbbbbbbbbb');
cc.add('cccccccccccccccc');
Ini.WriteString( 'Email','Nome' ,nome);
Ini.WriteInteger( 'Email','Numero' ,numero);
StreamMemo := TMemoryStream.Create;
mmEmailMsg.Lines.SaveToStream(StreamMemo);
StreamMemo.Seek(0,soFromBeginning);
Ini.WriteBinaryStream( 'Email','Mensagem',StreamMemo); //gravando um campo memo
Então como gravaria o cc, q é um StringList ?
E como faria sua leitura ?
A quem puder ajudar, desde já meus agradecimento.
100+
ANT.CARLOS/SP
GOSTEI 0
Marco Salles
16/01/2014
Isto se consegue com as propriedades
Para Gravar
Values
Para ler
Names ****** ReadOnly
ValueFromIndex *** ReadOnly
Para Separar
NameValueSeparator // Padrão é o Sinal de Igual .. Pode ser alterado
Estude os códigos :
[]sds
Para Gravar
Values
Para ler
Names ****** ReadOnly
ValueFromIndex *** ReadOnly
Para Separar
NameValueSeparator // Padrão é o Sinal de Igual .. Pode ser alterado
Estude os códigos :
procedure TForm4.Button1Click(Sender: TObject);
var
sl:Tstrings;
begin
sl:=TStringList.Create;
try
Sl.Values['Email']:='Um email';
Sl.Values['Cidade']:='Uma Cidade';
Sl.SaveToFile('Teste.ini');
finally
sl.Free;
end;
sl:=TStringList.Create;
try
Sl.LoadFromFile('Teste.ini');
Showmessage(Sl.Names[0]+Sl.NameValueSeparator+Sl.ValueFromIndex[0]+sLineBreak+
Sl.Names[1]+Sl.NameValueSeparator+Sl.ValueFromIndex[1]);
Memo1.Lines.LoadFromFile('teste.ini');
finally
sl.Free;
end;
end;
[]sds
GOSTEI 0
Joel Rodrigues
16/01/2014
Cara, vá desculpando. Eu juro que li você perguntar como salvar uma TStringList em arquivo, por isso sugeri o SaveToFile. Só agora li direitinho e vi o que você realmente precisa.
GOSTEI 0
Marco Salles
16/01/2014
Isto se consegue com as propriedades
Para Gravar ou Para Ler Tb *** Desculpe esqueci de mencionar isto no meu Post anterior
Values
Para ler
Names ****** ReadOnly
ValueFromIndex *** ReadOnly
Para Separar
NameValueSeparator // Padrão é o Sinal de Igual .. Pode ser alterado
Estude os códigos :
[]sds
Para Gravar ou Para Ler Tb *** Desculpe esqueci de mencionar isto no meu Post anterior
Values
Para ler
Names ****** ReadOnly
ValueFromIndex *** ReadOnly
Para Separar
NameValueSeparator // Padrão é o Sinal de Igual .. Pode ser alterado
Estude os códigos :
procedure TForm4.Button1Click(Sender: TObject);
var
sl:Tstrings;
begin
sl:=TStringList.Create;
try
Sl.Values['Email']:='Um email';
Sl.Values['Cidade']:='Uma Cidade';
Sl.SaveToFile('Teste.ini');
finally
sl.Free;
end;
sl:=TStringList.Create;
try
Sl.LoadFromFile('Teste.ini');
Showmessage(Sl.Names[0]+Sl.NameValueSeparator+Sl.ValueFromIndex[0]+sLineBreak+
Sl.Names[1]+Sl.NameValueSeparator+Sl.ValueFromIndex[1]);
//utilizando o Values para Ler
Showmessage(Sl.Names[0]+Sl.NameValueSeparator+Sl.Values['Email']+sLineBreak+
Sl.Names[1]+Sl.NameValueSeparator+Sl.Values['Cidade']);;
Memo1.Lines.LoadFromFile('teste.ini');
finally
sl.Free;
end;
end;
[]sds
GOSTEI 0
Antonio Jesus
16/01/2014
Obrigado pela atenção + uma vez.
Bom eu já sei manipular arquivos .INI, só não sei manipular um StringList.
Eu consigo gravar e ler arquivos .ini e vi que para campos MEMO tenho um tratamento diferenciado para gravar, String/Integer/Booleam ok.
Me refiro ao campo tipo StringList (no caso cc), qual o procedimento para gravar e ler no arquivo .INI ?
100+
ANT.CARLOS/SP
Bom eu já sei manipular arquivos .INI, só não sei manipular um StringList.
Ex:
Tenho uma var cc : TString;
nome : String.
numero : Integer;
IniFile : String;
Ini : TIniFile;
StreamMemo : TMemoryStream;
Begin
cc:=TstringList.Create;
cc.add('aaaaaaaaaaaaaa');
cc.add('bbbbbbbbbbbbbb');
cc.add('cccccccccccccccc');
Ini.WriteString( 'Email','Nome' ,nome);
Ini.WriteInteger( 'Email','Numero' ,numero);
StreamMemo := TMemoryStream.Create;
mmEmailMsg.Lines.SaveToStream(StreamMemo);
StreamMemo.Seek(0,soFromBeginning);
Ini.WriteBinaryStream( 'Email','Mensagem',StreamMemo); //gravando um campo memo
Eu consigo gravar e ler arquivos .ini e vi que para campos MEMO tenho um tratamento diferenciado para gravar, String/Integer/Booleam ok.
Me refiro ao campo tipo StringList (no caso cc), qual o procedimento para gravar e ler no arquivo .INI ?
100+
ANT.CARLOS/SP
GOSTEI 0
Marco Salles
16/01/2014
Hummmm
Eu não testei , mas acredito que deva ser como se fosse um STRING com a Propriedade TXT da classe TStringList
cc.text
ps) não testei
[]sds
Eu não testei , mas acredito que deva ser como se fosse um STRING com a Propriedade TXT da classe TStringList
cc.text
SuaStringList.TEXT
ps) não testei
[]sds
GOSTEI 0
Alan Souza
16/01/2014
A propriedade Lines do Memo e a StringList são ambas derivadas de TStrings, e os métodos de leitura e gravação por Stream são iguais:
StreamStringList := TMemoryStream.Create; cc.SaveToStream(StreamStringList); StreamStringList.Seek(0,soFromBeginning); Ini.WriteBinaryStream( 'Email','StringList',StreamStringList);
GOSTEI 0
Marco Salles
16/01/2014
A propriedade Lines do Memo e a StringList são ambas derivadas de TStrings, e os métodos de leitura e gravação por Stream são iguais:
StreamStringList := TMemoryStream.Create; cc.SaveToStream(StreamStringList); StreamStringList.Seek(0,soFromBeginning); Ini.WriteBinaryStream( 'Email','StringList',StreamStringList);
Acho que vc entendeu realmente a necessidade do amigo ...
[]sds
GOSTEI 0