Informe-se sobre a rotinas OemToAnsi() e OemToChar() da API do Windows. Elas
são a resposta pro seu problema.
Sds.
>From: "Luiz Escobar" <[EMAIL PROTECTED]>
>Reply-To: delphi-br@yahoogrupos.com.br
>To: delphi-br@yahoogrupos.com.br
>Subject: [delphi-br] converter texto DOS para WINDOWS como ?
>Date: Mon, 1 May 2006 22:50:56 -0300
>
>seguinte tenho uma função para converter a acentuação em textos DOS para
>textos em Windows....
>o problema que algumas coisas dão errado com Ó em dos que vira Ë em
>windows.... porque só DEUS e Bill Gates entende.. eu já desisti... a rotina
>é bem simples...........
>
>tenho dois arquivos um feitos no EDIT do DOS e outro feito no NOTEPAD do
>windows...
>neles tenho dos os caracteres acentuados, nos dois o caracteres estão na
>mesma ordem ou seja....
>em DOS:
>ÁÉÍÓÚ
>em Widnows:
>ÁÉÍÓÚ
>entre outro na mesma sequencia, a sequencia esta correta, não á troca de
>caracter... o "Á" do DOS esta na mesma possição do "Á" do windows..., mesmo
>assim a função teima em não funciona em ALGUNS caracteres.. como o "Ó" do
>DOS que retorna sempre o "Ë", pq ? ehhehe
>a sequencia do windows é essa
>"áéíóúÁÉÍÓÚäëïöüÄËÏÖÜâêîôûÂÊÎÔÛàèìòùÀÈÌÒÙãÃõÕçÇýÝÿ"
>do dos... aqui vai ficar meio confusão mas se color e abrir no EDIT do DOS
>vai ver que são exatamente a mesma.
>" ¡¢£µÖàéÓضÒ×âê ·ÔÞãëÆÇäåìí"
>não sei se esta sequencia em DOS vai ser enviada com sucesso, afinal tantos
>caracteres especiais... mas GARANTO que já foi conferida por mais de tres
>pessoas, e não esta errada... são exatamente iguais....
>
>
>em windos uso as funções, como poderam ver abaixo é tudo muito
>simples......
>procuro um caracter em DOS que esteja na STRING e troco ele pelo seu
>correspondente em WINDOWS....
>
>bom enfim, isso é o que eu faço, alguem conhece uma outra solução mas que
>funcine com TODOS os caracteres ?
>a minha estaria ótima se não fosse por 'XORORÓ', tinha que ser em musica
>sertaneja né... rsrsrs.. bom ve ai que puder me ajudar....
>
>
>
>var
> vardos, varwin : string;
>
>
>function DosToWin( str1: string ) : string;
>var
> x, y : integer;
>begin
> for x := 1 to Length( vardos ) do
> for y := 1 to Length( str1 ) do
> if str1[y] = vardos[x] then
> str1[y] := varwin[x];
> result := str1;
>end;
>
>procedure TForm1.FormCreate(Sender: TObject);
>begin
> asc.List.LoadFromFile('acentos.dos');
> vardos := Trim(asc.list.Text);
>
> asc.List.LoadFromFile('acentos.win');
> varwin := Trim(asc.list.Text);
>end;
>
>procedure TForm1.Button1Click(Sender: TObject);
>begin
> table1.First;
> while not table1.Eof do begin
> table1.Edit;
> table1.FieldByName('c1').asstring :=
>DosToWin(table1.FieldByName('di04').AsString);
> table1.FieldByName('c2').AsString :=
>DosToWin(table1.FieldByName('di05').AsString);
> table1.post;
> table1.next;
> end;
>end;
_________________________________________________________________
MSN Messenger: converse com os seus amigos online.
http://messenger.msn.com.br
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
<*> Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages
<*> Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
Yahoo! Grupos, um serviço oferecido por: | |
|
Links do Yahoo! Grupos
- Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/
- Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.