Ho la necessità di incrementare di 1 unità una stringa di valori.... ovvero
se io ho una stringa: A12 e voglio fare A12+1=A13 in maniera tale che quando arrivo a A99+1=B00 .... come posso fare?
Ho la necessità di incrementare di 1 unità una stringa di valori.... ovvero
se io ho una stringa: A12 e voglio fare A12+1=A13 in maniera tale che quando arrivo a A99+1=B00 .... come posso fare?
devi fare per forza il parsing della stringa, qual'è la sua specifica (sempre di tre caratteri il primo una lettera maiuscola seguita sempre da due cifre, o può essere qualcosa d'altro?).
ciao
sergio
a dire la verità volevo fare una cosa abbastanza generalizzata
comunque la specifica della stringa di partenza devi saperla:
- se ha un numero fisso di caratteri
- se può essere caratteri e numeri mischiati a piacere
- se sono prima i caratteri e poi i numeri
e così via.
Nota la specifica si crea un piccolo parser adeguato.
ciao
sergio
mmh allora mettiamo che sia 1/2 lettere e poi il numero ad esempio A21
se i primi due sono caratteri e gli ultimi due sono numeri puoi scomporre la stringa nelle sue due parti
ciaocodice:var str, str_char, str_num : string; num : integer; begin str := 'AA12'; str_char := Copy (str, 1, 2); str_num := Copy (str, 3, 2); // incremento str_num di una unità num := StrToInt (str_num); num := num + 1 ; // ritrasformo in string if ( num >= 100 ) then begin num := 0; // devo modificare anche str_char // prova a farlo tu end; str_num := IntToStr(num); if ( Len(str_num) = 1 ) then str_num := '0' + str_num; str := str_char + str_num; end;
sergio