GARANTIR DESCONTO

Fórum Trim #292847

23/08/2005

0

Ola pessoal

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

Roberto_conetsys

Responder

Posts

23/08/2005

Lucas Silva

[b:95fb64a3f7]Usa o lefttrim e righttrim[/b:95fb64a3f7]


Responder

Gostei + 0

23/08/2005

Roberto_conetsys

Não funciona tambem, já tinha testado.


Responder

Gostei + 0

23/08/2005

Adriano Santos

Posta a função que tá usando para copiar a string, talvez nos ajude.
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;



Responder

Gostei + 0

23/08/2005

Roberto_conetsys

Adriano,

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;


Responder

Gostei + 0

23/08/2005

Adriano Santos

falow veio, precisando tamos ai.


Responder

Gostei + 0

23/08/2005

Roberto_conetsys

Adriano,

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?


Responder

Gostei + 0

24/08/2005

Adriano Santos

Desculpe cara, mas eu peguei esta função de uma das minhas bibliotecas e nem sabia que estava com erro. Olha, dei uma booooaaa reformulada, agora funciona eu testei.

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;



Responder

Gostei + 0

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

Aceitar