GARANTIR DESCONTO

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;


L3gion4rio

L3gion4rio

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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar