Ver Mensaje Individual
  #4  
Antiguo 23-04-2009
Carmen Flores Carmen Flores is offline
Registrado
 
Registrado: feb 2008
Posts: 4
Reputación: 0
Carmen Flores Va por buen camino
Recorrer Sting

Hola, creo que no me di entender mucho, pero aquí escribo el código ya corregido y cual es exactamente mi problema:

Gracias y saludos

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;
Responder Con Cita