GARANTIR DESCONTO

Fórum Copy com pos de trás pra frente #404311

04/07/2011

0

Tenho essa string:
19900711-35399--NAC-001-CADE.TIF
e assim vem outros arquivos, 002,003 e também com os nome CADE,NOT,AGRI e etc... Preciso fazer um copy que me traga somente as palavras CADE, NOT,AGRI,CLASS, ou seja, apartir do '.' até encontrar o primeiro '-'. Mas tentei aqui de várias formas e não achei nada. Dá pra fazer de outra forma, mas se escreve muitas linhas. Gostaria de saber se há uma forma mais simples, tipo um COPY com POS. É possivel?
Pjava

Pjava

Responder

Post mais votado

05/07/2011

Ha muitas maneiras de serem feitas

Aqui mais uma

uses
StrUtils ;

var
str:string;
begin
str:='19900711-35399--NAC-001-CADE.TIF';
str:=ReverseString(Str);
delete(str,pos('-',str),length(Str));
str:=copy(str,pos('.',str)+1,length(Str));
str:= ReverseString(Str);
showmessage(str);
end;

Marco Salles

Marco Salles
Responder

Gostei + 1

Mais Posts

04/07/2011

Wilson Junior

Lhe aconselho a fazer uma função para tratar este tipo de string, ainda mais que é um tratamento especial.

Espero ter colaborado.
Responder

Gostei + 0

04/07/2011

Rafael Mattos

function Pega(Texto : String) : String;
var
  Posicao : Byte;
begin
  Posicao := Pos('.',Texto)-1;
  while Texto[Posicao] <> '-' do
  begin
     Result := Texto[Posicao]+Result;
     Inc(Posicao,-1);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    ShowMessage(Pega(Edit1.Text));
end;




--------------------------------------------------------------------------------
Blog: http://mundodoprogramador.wordpress.com/
MSN: rafmattos@hotmail.com
Twitter: _rafmattos
Responder

Gostei + 0

05/07/2011

Emerson Nascimento

eu sugiro a você criar uma função, baseada no código postado pelo Marco Salles.

deverá ficar mais ou menos assim:

function PosEnd(const substr, str: string) // busca a partir do final da string
begin
  result := pos(substr,ReverseString(str));
end;



e, para usar:

  cStr := '19900711-35399--NAC-001-CADE.TIF';
  nPos := PosEnd(cStr, '-');
  if nPos > 0
    ShowMessage(Copy(cStr,nPos+1,Length(cStr)));
Responder

Gostei + 0

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

Aceitar