Fórum Copy com pos de trás pra frente #404311
04/07/2011
0
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
Curtir tópico
+ 0Post mais votado
05/07/2011
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
Gostei + 1
Mais Posts
04/07/2011
Wilson Junior
Espero ter colaborado.
Gostei + 0
04/07/2011
Rafael Mattos
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
Gostei + 0
05/07/2011
Emerson Nascimento
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)));
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)