Fórum Trim #292847
23/08/2005
0
Quando a função Trim do Delphi não funciona o que fazer?
Preciso eliminar os espaços de campos que estou importando de planilha excel.
Na verdade estou acessando a planilha excel com adoquery então tenho um campo que tenho que quebrar em até tres campos ( ex>: ´Cidade - UF - 99999-99´ para importar.
Estou usando o copy(str,x,y) e como o ´-´ sempre esta separando, eu consigo determinar quando termina e começa o string que preciso importar o problema é que as vezes tem um espaço entre o ´-´ e as vezes tem dois então em alguns caso esta ficando espaço.
Roberto_conetsys
Curtir tópico
+ 0Posts
23/08/2005
Lucas Silva
Gostei + 0
23/08/2005
Roberto_conetsys
Gostei + 0
23/08/2005
Adriano Santos
Veja esta função que tira espacos antes e depois da string, ve se ajuda:
function Alltrim(const Search: string): string;
{Remove os espaços em branco de ambos os lados da string}
const
BlackSpace = [33..126];
var
Index: byte;
begin
Index:=1;
while (Index <= Length(Search)) and not (Search[Index] in BlackSpace) do
begin
Index:=Index + 1;
end;
Result:=Copy(Search, Index, 255);
Index := Length(Result);
while (Index > 0) and not (Result[Index] in BlackSpace) do
begin
Index:=Index - 1;
end;
Result := Copy(Result, 1, Index);
end;
Gostei + 0
23/08/2005
Roberto_conetsys
Valeu, a sua função funcionou.
Depois que coloquei a questão no forum, criei a função abaixo mas não estava tirando os espaços da esquerda, isto é, do começo da string.
function TFrm_ImpExcel.removeespaco(str: string): string;
var
x: integer;
begin
x:=1;
while (str[x]=´´) or (str[x]=´ ´) do
begin
str:=copy(str,1,x-1);
inc(x)
end;
x:=length(str)-1 ;
while str[x]=´ ´ do
begin
str:=copy(str,1,x-1);
dec(x)
end;
result := str;
end;
Gostei + 0
23/08/2005
Adriano Santos
Gostei + 0
23/08/2005
Roberto_conetsys
A sua função esta tirando do final as letras acentuadas deve ter haver com o BlackSpace que vc criou.
Vc tem uma solução?
Gostei + 0
24/08/2005
Adriano Santos
procedure TForm1.Button2Click(Sender: TObject); function AllTrim(sTexto: string): string; begin while (Copy(sTexto, 1, 1) = ´ ´) and (Length(sTexto) > 0) do Delete(sTexto, 1, 1); while (Copy(sTexto, Length(sTexto), 1) = ´ ´) and (Length(sTexto) > 0) do Delete(sTexto, Length(sTexto), 1); AllTrim := sTexto; end; begin Edit1.Text := AllTrim(´OLHA - O - MANO - AÍ´); end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)