LoadFromStream não funciona
27/12/2005
0
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
Curtir tópico
+ 0
Responder
Posts
27/12/2005
Sourcecode
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
Responder
28/12/2005
Lehapan
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;
Responder
Clique aqui para fazer login e interagir na Comunidade :)