Fórum Duvida sobre PChar #268572
15/02/2005
0
como eu faço pra usar PChar nesta funcao:
Function FormataCPF(CPF : string): string;
begin
Result := Copy(CPF,1,3)+´.´+Copy(CPF,4,3)+´.´+Copy(CPF,7,3)+´-´+Copy(CPF,10,2);
end;
Function FormataCPF(CPF : string): string;
begin
Result := Copy(CPF,1,3)+´.´+Copy(CPF,4,3)+´.´+Copy(CPF,7,3)+´-´+Copy(CPF,10,2);
end;
L3gion4rio
Curtir tópico
+ 0
Responder
Posts
15/02/2005
Beppe
procedure FormataCPF(CPF: PChar; Result: PChar; BufLen: Integer); var Temp: String; begin Temp := CPF; Result := Copy(Temp,1,3)+´.´+Copy(Temp,4,3)+´.´+Copy(Temp,7,3)+´-´+Copy(Temp,10,2); StrPLCopy(Result, Temp, BufLen - 1); end;
Pra usar a função fica mais complexo:
var NovoCPF: array[0..100] of Char; CPF: String; begin ... FormataCPF(PChar(CPF), NovoCPF, Length(NovoCPF)); end;
Vc verá que com PChar vc perderá flexibilidade. Eu a recuperei convertendo a PChar em string, mas isso tem um preço(eficiência).
Strings são alocadas dinâmicamente, mas PChar é vc quer gerencia a memória. A função precisa saber de antemão a largura do buffer disponível(reserve um byte para o 0), senão é problema na certa.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)