VDOPRINT caracteres especiais
EU uso o VDOPrint a um tempo, e atualmente venho enfrentando um problema um tanto complicado.. não consigo imprimir caracteres especiais como por exemplo o º ª... sai um negocio mais ou menos assim na impressão || ... e usando outro metodo de impressao nativo do delphi consigo emitir a impressao destes caracteres.. mas não consigo um gerenciamento t~]ao bom quanto o do VDO com o resto do testo... será q existe alguma maneira de Imprimir estes caracteres usando o VDOPRINT??? se puderem me ajudar.. fico Grato..
:lol: 8) :shock:
:lol: 8) :shock:
Ken_masters
Curtidas 0
Respostas
Eniorm
06/10/2008
eu tbm já notei isso, inclusive acentos tbm não deu muito certo...
a dica que eu te recomendo para que vc faça um teste ai é colocar mais ou menos assim
Print(01,´N´+#167);
esse 167 equivale ao código ASCII para º, e 166 para ª
abraço
a dica que eu te recomendo para que vc faça um teste ai é colocar mais ou menos assim
Print(01,´N´+#167);
esse 167 equivale ao código ASCII para º, e 166 para ª
abraço
GOSTEI 0
Ken_masters
06/10/2008
Então Enio eu consegui resolver o problema do nº mas não dava pra fazer do jeito q vc me passou pq nem sempre ele estava na mesma posição... então eu fiz uma funçãozinha
function trocaletra(L : string): string;
var
i : Integer;
caracter, nova : string;
begin
for i := 1 to Length(L) do
begin
caracter := l[i];
if caracter = ´º´ then
begin
caracter := ´?´
end;
nova := nova + caracter;
caracter := ´´;
end;
Result := nova;
end;
function trocaletra(L : string): string;
var
i : Integer;
caracter, nova : string;
begin
for i := 1 to Length(L) do
begin
caracter := l[i];
if caracter = ´º´ then
begin
caracter := ´?´
end;
nova := nova + caracter;
caracter := ´´;
end;
Result := nova;
end;
GOSTEI 0
Eniorm
06/10/2008
Opa!
Independente da posição do caractere, pode ser usado normalmente
Veja
´Classificação Nº 123´
Eu faria assim
Print(01,´Classificacao N´+#167+´ 123´);
abraços
Independente da posição do caractere, pode ser usado normalmente
Veja
´Classificação Nº 123´
Eu faria assim
Print(01,´Classificacao N´+#167+´ 123´);
abraços
GOSTEI 0
Ken_masters
06/10/2008
fuciona mais ou menos assim.. tem um memo que grava uma informacao de até 222 caracteres.. e eu não sei exatamente onde vai aparecer o numero... por exemplo.. hj eu posso cadastrar assim..
´ o ultimo registro do dia doi o nº 33´ e o meu proximo registro pode ser
´ o Nº do registro foi removido ´
com aquela funcao eu faço uma varredura na string inteira e localizo o ´º´ em qualquer parte da string e automaticamente ja substituo por ´?´ q é equivalente ao º na impressora.. bom funcionou!
´ o ultimo registro do dia doi o nº 33´ e o meu proximo registro pode ser
´ o Nº do registro foi removido ´
com aquela funcao eu faço uma varredura na string inteira e localizo o ´º´ em qualquer parte da string e automaticamente ja substituo por ´?´ q é equivalente ao º na impressora.. bom funcionou!
GOSTEI 0
Eniorm
06/10/2008
sim, eu compreendi....
poderiamos simplificar para que ficasse mais ou menos assim
while (Pos(´º´,suastring) <> 0) do
suastring[Pos(´º´,suastring)] := #167;
poderiamos simplificar para que ficasse mais ou menos assim
while (Pos(´º´,suastring) <> 0) do
suastring[Pos(´º´,suastring)] := #167;
GOSTEI 0
Eniorm
06/10/2008
muito estranho!
o resultado de Alt+167 é º, mas de #167 é ?
fiz um teste aqui, e o retorno para o caractere º é o código ascii 186
então, tente assim
o resultado de Alt+167 é º, mas de #167 é ?
fiz um teste aqui, e o retorno para o caractere º é o código ascii 186
então, tente assim
while (Pos(´º´,suastring) <> 0) do suastring[Pos(´º´,suastring)] := 167;
GOSTEI 0
Eniorm
06/10/2008
eita! mania de ctrl+c ctrl+v, acabei colando errado
o correto é
tenta ai quem sabe da certo, caso contrário, eu recomendo vc dar uma pesquisada no forum sobre VDO
[url]vdo.sourceforge.net[/url]
abraços
o correto é
while (Pos(´º´,suastring) <> 0) do suastring[Pos(´º´,suastring)] := 186; // corrija aqui
tenta ai quem sabe da certo, caso contrário, eu recomendo vc dar uma pesquisada no forum sobre VDO
[url]vdo.sourceforge.net[/url]
abraços
GOSTEI 0
Ken_masters
06/10/2008
FUncionou perfeitamente .. e com um fonte muito mais compacto hehehe... Vou Usar assim mesmo.. VAlew ENIO.. precisando de alguma coisa é só chamar... VAlew mesmo
GOSTEI 0