Hola Paulao.
Si siempre respeta ese formato, esta función te va a devolver la cadena buscada:
Código Delphi
[-]
uses StrUtils;
function ExtraerCad(Cad: string): string;
var
i: Integer;
begin
Result:= '';
i:= Length(Cad);
while Cad[i] <> '-' do
begin
Result:= Result + Cad[i];
Dec(i);
end;
Result:= ReverseString(Result);
Result:= Copy(Result,1,Pos('.',Result)-1);
end;
Aunque no es precisamente 'elegante'...
Ejemplo de llamada:
Código Delphi
[-]
var
s1,s2,s3: string;
begin
s1:= '19900711-35399--NAC-001-CADE.TIF';
s2:= '19900711-35399--NAC-001-NOT.TIF';
s3:= '19900711-35399--NAC-002-AGRI.TIF';
ShowMessage(ExtraerCad(s1)+ #13 +ExtraerCad(s2)+ #13 +ExtraerCad(s3));
end;
Saludos.