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

Hola. Tengo un problema:
Necesito recorrer nombre de archivos como String:
ACA01-05-07-06.doc ó
VA05-06-07-08.PDF
y necesito identificar las primeras letras y enseguida ir formando otro string con las primeras letras más los siguientes dos digitos, ejemplo:

ACA01
ACA05
ACA07
ACA06
VA05
VA06
VA07
VA08

y después de que va separando el string debe hacer un busqueda (función que ya tengo) en una BD.

parte del codigo que estoy utilizando es este:


Funcion 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;

Funcion para identificar Numeros
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;



procedure TMain.AdvSmoothButton4Click(Sender: TObject);
var
Letra, numero, Punto: Integer;
Final, FinalNum, Plana, PlanaNum: String;
begin
//Punto:='.';
PkaCmp:='aca01-02-99-16.PDF';
punto:=Pos('.',PkaCmp);
Delete(PkaCmp,Punto,4);
//Delete(PkaCmp,Punto+1,3);

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;
NomPub:=Plana;
Memo2.Lines.Add(Plana);
//termino de busqueda de nomenclatura
//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 );
Digito:=PlanaNum;
PlanaBusqueda:=NomPub+Digito;
Memo2.Lines.Add(PlanaBusqueda);
end;

end;
end;


end;
end;
Responder Con Cita