Salvar em UTF-8 em versões antigas do Delphi
Procedure para gravar em UTF-8 num arquivo .TXT, para identificação.
Obervar que é necessário utilizar a função UTF8Encode para garantir
Então vamos começar?
Vamos utilizar para nosso teste:
- TMemo - Nome: mmUTF8
- TPanel - Nome: pnlUTF8
- TBitBtn - Nome: BtnUTF8
Com isso vamos criar a procedure
procedure TFSistema.SalvaUTF8(wCaminho: String; wConteudo: TStrings);
const
cUTF8 = $BFBBEF;
var
wUTF8: Integer;
wTXT: UTF8String;
wFS: TFileStream;
begin
if Trim(wConteudo.Text) <> EmptyWideStr then begin
wTXT := wConteudo.Text;
wFS := TFileStream.Create(wCaminho, fmCreate);
try
wUTF8 := cUTF8;
wFS.WriteBuffer(wUTF8, sizeof(wUTF8) - 1);
wFS.WriteBuffer(wTXT[1], Length(wTXT) * sizeof(wTXT[1]));
finally
wFS.free
end;
end;
end;
Coloque o mmUTF8 (Tmemo) com o alinhamento em "alClient";
O pnlUTF8 (TPanel) com o alinhamento em "alTop";O BtnUTF8 (TBitBtn) dentro do pnlUTF8
E por fim de um duplo clique no BtnUTF8 e coloque o código a seguir para poder salvar o contudo digitado no mmUTF8 ;
procedure TFSistema.BtnUTF8Click(Sender: TObject);
begin
SalvaUTF8('C:\UTF8.txt', mmUTF8.Lines);
end;
Exemplo: Download do exemplo
Ana tudo bem, me chamo Alessandro sou inicante e hobista de programação a um tempo atrás fiz um programa no Lazarus que pegava o texto de um arquivo(bloco de notas do windows) no sistema .txt e jogava o conteúdo do texto num MEMO, só que o texto que aparecia no Memo onde as letras acentuadas ficavam todas modificadas por outros caracteres ou não aparecia nehum caracteres nestas letras acentuadas.
ResponderExcluirBem procurei a solução na internet e nada já estava desestindo, até que percebi que bloco de notas do windows na hora de salvar o texto tem a opção de salvar na codificaçao ANSI (que é padrão do blocos de notas) e escolhi salvar na codificação UFT-8
Resolveu o problema escolhendo a codificação UFT-8 assim o texto salvo nesta codificação apareciam todos corretos no MEMO do Lazarus e se resolve-se salvar o texto apartir normal para ler.
Só que o problema que eu é toda hora lembrar de fazer esta codificação no bloco de notas antes de salvar
Queria fazer uma pergunta para você Ana se este código seu resolve isso, ou seja ele pega o o textos do blocos de notas seja a codificação ANSI e passa para UFT-8 e salva nesta codificação automáticamente.
Obrigado
Boa noite! Sim é esse o intuito desta função!
Excluir