MIL GRACIAS YA LO RESOLVÍ, AHÍ LES VA POR SI A ALGUIEN LE SIRVE.
Código Delphi
[-]var
serie: string;
finales:set of char = ['Z','z','9'];
iniciales: set of char = ['A','a','0'];
function siguiente_serie(serie_base: string; longitud: byte): string;
var caracter, caracter_s:char;
begin
caracter:=serie_base[longitud];
caracter_s:=caracter_siguiente(caracter);
if (caracter_s in iniciales) then
begin
serie_base:=siguiente_serie(copy(serie_base,0,longitud-1),longitud-1);
end;
result:=copy(serie_base,0,longitud-1)+caracter_s;
end;
function caracter_siguiente(caracter_base: char): char;
begin
if caracter_base in finales then
begin
case caracter_base of
'Z': result:='A';
'z': result:='a';
'9': result:='0';
end;
end
else
begin
result:=char((ord(caracter_base)+1));
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var nueva_serie:string;
i:integer;
begin
for i:=2 to sg_series.RowCount-2 do
begin
serie:=sg_series.Cells[0,i-1];
nueva_serie:=siguiente_serie(serie,length(serie));
sg_series.Cells[0,i]:=nueva_serie;
end;
end;
FALTA DEPURAR ALGUNAS COSAS PERO FUNCIONA