Função não tá funcionando
08/12/2003
0
e outra para ajustar valores e strings. Essas duas funcionam mais a q transforma ANSI para ASCII, não. Eis elas:
AnsiToAscii(str:string):string;
var
i:integer;
begin
for i := 1 to length(str) do
case string of str[i] do
´ã´:str[i]:=´a´;
´á´:str[i]:=´a´;//e assim sucessivamente até todos os caracteres especiais
end;
end;
AjustaStr(str:string;tam:integer):string;
begin
while length(str) < tam do
str:=str+´ ´;
if length(str) > tam then
str:=copy(str,1,tam)
result:=str;
end;
a outra semelhante a esta, só que os espaços eu os coloco antes da string e não depois. Na chamada eu faço assim:
var
arq:textfile;
begin
assignfile(arq, ´LPT1´);
rewrite(arq);
writeln(arq, #15);
writeln(arq,+AnsiToAscii(AjustaStr(TabelaStringSerImpressa.Value, tam);
//Normalmente dentro de um While, para imprimir tudo. Desta forma, não funciona. porem ae eu retirar, a função AnsiToAscii, funciona bem, sem nenhum problema, tanto a AjustaStr quanto a AjustaNum. Poem se chamo AnsiToAscii, não imprime o campo ou a string, que a função está cobrindo. O que pode ser? A função está correta,
end;
E aproveitando a boa vontade, como faço para reimprimir numa lista de preços(usando textfile) o nome do grupo a que pertence o produto?
Ex: Quando for listar todos os amortecedores, apareça um tipo de cabeçalho, com o nome do grupo AMORTECEDOR, e todos os amortecedores, qdo terminar e começar, por exemplo, Faróis, que escreva Farol em cima e em baixo todos os faróis e assim por diante.
Paulo
Posts
08/12/2003
Nildo
Arrumei sua função:
function AnsiToAscii(str:string):string; var i:integer; begin for i := 1 to length(str) do case str[i] of ´ã´, ´á´:str[i]:=´a´; // Fica mais facil assim tambem. end; end;
11/11/2012
Aline Silva
Estou fazendo uma busca pelo nome do cliente, sendo que minha busca nao faz a busca se o nome do cliente está em maiúscula ou minuscula ou com acento, Ex: se eu tiver 2 cliente com o nome Anderson e ANDERSON, a busca só acha se eu escrever conforme está no banco de dados...
Preciso que eu escreva em maiuscula ou minuscula, ou com acento, e que a busca nao faça essa diferença.
Estava tentando usar a função
function AnsiToAscii ( str: String ): String;
var
i: Integer;
begin
for i := 1 to Length ( str ) do
case str[i] of
á: str[i] := a;
é: str[i] := e;
í: str[i] := i;
ó: str[i] := o;
ú: str[i] := u;
à: str[i] := a;
è: str[i] := e;
ì: str[i] := i;
ò: str[i] := o;
ù: str[i] := u;
â: str[i] := a;
ê: str[i] := e;
î: str[i] := i;
ô: str[i] := o;
û: str[i] := u;
ä: str[i] := a;
ë: str[i] := e;
ï: str[i] := i;
ö: str[i] := o;
ü: str[i] := u;
ã: str[i] := a;
õ: str[i] := o;
ñ: str[i] := n;
ç: str[i] := c;
Á: str[i] := A;
É: str[i] := E;
Í: str[i] := I;
Ó: str[i] := O;
Ú: str[i] := U;
À: str[i] := A;
È: str[i] := E;
Ì: str[i] := I;
Ò: str[i] := O;
Ù: str[i] := U;
Â: str[i] := A;
Ê: str[i] := E;
Î: str[i] := I;
Ô: str[i] := O;
Û: str[i] := U;
Ä: str[i] := A;
Ë: str[i] := E;
Ï: str[i] := I;
Ö: str[i] := O;
Ü: str[i] := U;
Ã: str[i] := A;
Õ: str[i] := O;
Ñ: str[i] := N;
Ç: str[i] := C;
end;
Result := str;
end;
DMCONSULTA.TBBUSCACLIENTE.Close; EditBusca.text := AnsiToAscii(EditBusca.text); DMCONSULTA.SQLDATASETBUSCACLIENTE.Params[0].AsString:= % + EditBusca.Text + %; DMCONSULTA.TBBUSCACLIENTE.Open; If NOT DMCONSULTA.TBBUSCACLIENTE.IsEmpty then DBGMOT.Visible:= TRUE else begin DBGMOT.Visible:= FALSE; Application.MessageBox (A busca não resultou em nenhum resultado., Aviso, MB_OK + MB_ICONINFORMATION); end;
Porém a função só pela a primeira letra da string e deixa em minusculo, e exclui as outras letras da string...
Se alguém puder me ajudar...
Grata
12/11/2012
Luiz Menin
12/11/2012
Aline Silva
SELECT processos.cod_proc, processos.nr_processo,processos.data_audiencia_incial, processos.hora_audiencia_incial, processos.data_adiamento_incial,processos.concluir_processo,advogado.nome_adv, clientes.nome_cliente from processos INNER JOIN advogado ON processos.cod_adv = advogado.cod_adv INNER JOIN clientes ON processos.cod_cliente = clientes.cod_cliente where clientes.nome_cliente LIKE :NOME order by clientes.nome_cliente;
12/11/2012
Claudia Nogueira
SELECT processos.cod_proc, processos.nr_processo,processos.data_audiencia_incial, processos.hora_audiencia_incial, processos.data_adiamento_incial,processos.concluir_processo,advogado.nome_adv, clientes.nome_cliente from processos INNER JOIN advogado ON processos.cod_adv = advogado.cod_adv INNER JOIN clientes ON processos.cod_cliente = clientes.cod_cliente where CAST(clientes.nome_cliente AS VARCHAR(50) CHARACTER SET ISO8859_1) COLLATE PT_BR LIKE :NOME order by clientes.nome_cliente;
Clique aqui para fazer login e interagir na Comunidade :)