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