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:
PUBLICIDAD


Links do Yahoo! Grupos

Responder a