Newsgroup: it.comp.lang.visual-basic
Titolo: Incremento stringhe

Per caso esiste una funzione che permetta di incrementare (tipo il for -
next) le stringhe?
nel senso io ho una stringa "aa" voglio che ad ogni ciclo diventi ab, ac,
ad..........az, ......ba,bb,bc.........zz????
Se non esiste quale codice (piu' corto possibile) mi suggerite?
ciao e grazie.



Una soluzione (piuttosto grezza, da rifinire) potrebbe essere:
dim stringa as string
stringa = "aa"
do
	stringa = incrementa(stringa)
	debug.print stringa
loop until stringa = "zz"
function incrementa(stringa as string) as string
	if asc(right(stringa, 1)) < 122 then
		incrementa = left(stringa, len(stringa) - 1) & chr(asc(right(stringa, 1)) + 1)
	else
		incrementa = chr(asc(left(stringa, 1)) + 1) & "a"
	end if
end function
Ovviamente questo esempio funziona solo con stringhe da "aa" a "zz", però si potrebbe modificare
affinché funzioni con una lunghezza di stringhe variabile...
Ciao,
Moreno
#sirri#@#
morenosoft.com#
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.msvbsite.net
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.it-lang-vb.net
---------------------------------------------------------------------------

 affinché funzioni con una lunghezza di stringhe variabile...
Moreno .. visto che ci sei .. dagli anche una fettina di culo !
Capisco che il problema sia una banalità dal tuo punto di vista ... ma la
nostra amica Chiara non ha neanche fatto lo sforzo di pensarci ... e poi di
solito a domande come queste non rispondi cose del tipo :
- MSDN vedi chr, asc, left right e funzioni stringa.
Mi sa che cambierò nick .. tutto al femminile ..
senza offesa per nessuno ovviamente ...
Saluti

Per caso esiste una funzione che permetta di incrementare (tipo il for -

Se fai un ciclo da 0 a 675, ovvero da "aa" a  "zz" puoi generare la
stringa in questo modo
for x=0 to 675
	print chr$(int(x/26)+97) & chr$(x-(int(x/26)*26)+97)
next x
ovviamente non puoi cosi' incrementare la stringa sapendo il
contenuto, per farlo potresti usare
x=(asc(left$(stringa,1))-97)*26+asc(right$(stringa,1)-97)+1
stringa=chr$(int(x/26)+97) & chr$(x-(int(x/26)*26)+97)
Ciao


Non dirmi che sei geloso??
Se tanto poi ti interessa ci avevo pensato come fare, ma il mio algoritmo
era troppo lungo, cosi' ho chiesto un consiglio, certo Moreno č stato molto
gentile a mandarmi tutto il codice, se mi mandava come dici tu MSDN vedi
chr, asc, left right e funzioni stringa avrei scoperto asc (che non
conoscevo) e ci avrei ragionato sopra.
Ma non ti sembra di esagerare??
O forse sei solo uno a cui piace fare questioni e critiche? Non č necessario
polemizzare su tutto, sai dopo diventi troppo pesante......ma forse ce l'hai
solo su con le donne..................(_*_)

senza offesa per nessuno ovviamente ...
Sinceramente non è che ci faccia molto caso se chi posta è m/f/?... Oddio, se invece devo mandarlo a
quel paese, controllo: se è una signorina cerco di usare un tono non troppo... aggressivo... :-)


 polemizzare su tutto
Credo volesse solo scherzare, se ti chiamavi Mario Vettori magari ti beccavi
solo un "Premi [F1]" di risposta... ma e' solo per ridere, mi sembra una
cosa simpatica :-)
Il mio nick (Mela) e' ambiguo e alle volte vengo interpretato come ragazza
(e non lo sono ;-))
Su alcuni Ng alle volte ho riscontrato una insolta gentilezza, scoprendo poi
che mi credevano "la Mela" :-) altrimenti (tastuali parole) non sarebbero
stati cosi' "disponibili" :-)
Si sa, su usenet il rapporto donne/uomini e in misura di 1/1024...

 solo su con le donne..................(_*_)
Allora non me lo dice solo mia moglie !
Non prendertela .. sai non č poi cosě facile cogliere in contraddizione
Moreno.. certo poi si č salvato in corner ...
ma una castagna l'ha comunque presa ..
Chiara ... insultami pure in privato :)
Saluti