Hola, creo que no me di entender mucho, pero aquí escribo el código ya corregido y cual es exactamente mi problema:
Código:
//Función para identificar letras
procedure TMain.OpenArrayLetras(const constArray: array of const);
var
i : Integer;
begin
for i := 0 to 54 {High(constArray)} do
begin
Abcd:=ConstArray[i].VChar;
if Abcd=LetraFile then
break;
end;
end;
//Función para identificar números
procedure TMain.OpenArrayNumero(const constArray: array of const);
var
i : Integer;
begin
for i := 0 to 9 {High(constArray)} do
begin
ABC123:=ConstArray[i].VChar;
if ABC123=NumFile then
break;
end;
end;
//Procedimiento (dentro de un botón)
procedure TMain.AdvSmoothButton4Click(Sender: TObject);
var
Letra, numero, Punto: Integer;
Final, FinalNum, Plana, PlanaNum, PkaCmp, PkaCmp2, PkaCmp3: String;
begin
//String que quiero leer. que puede ser de dos o tres letras
//y de dos o cuatro pares de números:
// 've56-21.doc' o 'jun01-06-82-11.pdf'
PkaCmp:='aca01-02-99-16.PDF';
// al string le eliminamos la extensión y nos queda el string asi:
// 'aca01-02-69--99-16'
punto:=Pos('.',PkaCmp);
Delete(PkaCmp,Punto,4);
//se inicia el recorrido del string (PkaCmp) para buscar letras
for letra := 1 to Length(PkaCmp) do
begin
LetraFile:=PkaCmp[Letra];
OpenArrayLetras(['a','b','c','d','e','f','g','h','i','j','k','l','m','n','ñ',
'o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H',
'I','J','K','L','M','N','Ñ','O','P','Q','R','S','T','U','V','W','X','Y','Z']);
if not (LetraFile=Abcd) then
Begin
//inicio de busqueda de nomenclatura
Final:=PkaCmp;
Delete(Final, Letra, Length(Final));
Plana:=Final;
//este es es resultado de las dos o tres primeras letras de string
NomPub:=Plana;
Memo2.Lines.Add(Plana);
//termina el recorrido del string (PkaCmp) y nos encontramos dos o tres letras
//inicio de busqueda de dos digitos de la plana
//Se elimina la nomenclatura y se dejan los numeros de página
PkaCmp2:= Copy(PkaCmp,Letra,length(PkaCmp));
for numero := 1 to Length(PkaCmp2) do
Begin
NumFile:=PkaCmp2[Numero];
OpenArrayNumero(['0','1','2','3','4','5','6','7','8','9']);
if Not (NumFile=ABC123) then
Begin
FinalNum:=PkaCmp2;
PlanaNum:= copy(FinalNum, ((numero)-(2)),2 );
//este es el resultado de los primeros dos digitos del string
Digito:=PlanaNum;
//en el primer recorrido ya tengo mi primer string (PkaCmp:='aca01')
//y junto mus letras + mi primer digito y realizo una búsqueda
//es donde tengo mi problema, si hago la busqueda de los primeros
// tres digitos:'aca01' 'aca02' 'aca99' y el cuarto ya no lo hace
PlanaBusqueda:=NomPub+Digito;
Memo2.Lines.Add(PlanaBusqueda);
end;
end;
end;
end;
end;