LoadFromStream não funciona
Tenho o seguinte código:
var
ms: TMemoryStream;
begin
ms := TMemoryStream.Create;
DBGrid1.Columns.SaveToStream( ms );
teste.Position := 0;
Memo1.Lines.Clear;
[b:ee7b7a08d6]Memo1.Lines.LoadFromStream( ms );[/b:ee7b7a08d6]
ms.free;
end;
Quando fiz um DBGrid1.Columns.SaveToFile( ´c:\teste.ini´ ), ele me colocou tudo certo dentro do arquivo, mas na hora de efetuar o [b:ee7b7a08d6]Memo1.Lines.LoadFromFile( ´C:\teste.ini´ );[/b:ee7b7a08d6] ele me retorna apenas alguns caracteres, pelo que pude perceber, ele me retorna até o primeiro espaço.
Exemplo:
[b:ee7b7a08d6]Conteúdo do arquivo c:\teste.ini[/b:ee7b7a08d6]
Como faço para retornar todo o conteúdo para um memo, ou RichEdit, ou stringlist, qualquer variável texto ?
var
ms: TMemoryStream;
begin
ms := TMemoryStream.Create;
DBGrid1.Columns.SaveToStream( ms );
teste.Position := 0;
Memo1.Lines.Clear;
[b:ee7b7a08d6]Memo1.Lines.LoadFromStream( ms );[/b:ee7b7a08d6]
ms.free;
end;
Quando fiz um DBGrid1.Columns.SaveToFile( ´c:\teste.ini´ ), ele me colocou tudo certo dentro do arquivo, mas na hora de efetuar o [b:ee7b7a08d6]Memo1.Lines.LoadFromFile( ´C:\teste.ini´ );[/b:ee7b7a08d6] ele me retorna apenas alguns caracteres, pelo que pude perceber, ele me retorna até o primeiro espaço.
Exemplo:
[b:ee7b7a08d6]Conteúdo do arquivo c:\teste.ini[/b:ee7b7a08d6]
Como faço para retornar todo o conteúdo para um memo, ou RichEdit, ou stringlist, qualquer variável texto ?
Lehapan
Curtidas 0
Respostas
Lehapan
27/12/2005
acima
GOSTEI 0
Sourcecode
27/12/2005
Cara, não sei se ajuda, mas, apesar de não ser bem o que você pede eu vou lhe dar uma sugestão: na hora de salvar as preferências fazer um loop pelas colunas e ir salvando uma por uma no ini, fazendo desta forma nunca tive problemas, somente vai gastar algumas linhas a mais pra fazer, mas melhor bem feito com muito código do mal feito com pouco código.
[]´s
[]´s
GOSTEI 0
Lehapan
27/12/2005
Espero ter ajudado
uses IniFiles, Classes;
var
StrStm: TStringStream;
S: string;
Caracter: integer;
MemIni: TMemIniFile;
begin
StrStm := TStringStream.Create( S );
DbGrid.Columns.SaveToStream( StrStm );
StrStm.Seek( 0, soFromBeginning );
{ Ele te retorna como uma string os dados das colunas de um DBGrid }
S := StrStm.ReadString( StrStm.Size );
Caracter := 123;
while Pos( chr( Caracter ), S ) > 0 do
begin
inc( Caracter );
end;
{ Substitui todos o chr(0) da string S pelo chr(Caracter) }
S := Substitui( S, chr( 0 ), chr( Caracter ) );
MemIni := TMemIniFile.Create(´´);
MemIni.WriteString( ´DbGrid´, ´Colunas´, S );
MemIni.WriteString( ´DbGrid´, ´Caracter´, chr( Caracter ) );
end;
GOSTEI 0