Newsgroup: it.comp.lang.visual-basic
Titolo: stringa rovesciata con ricorsione

Ciao a tutti.
E' da molto che non usavo la ricorsione e ho letto recentemente su qualche
ng in merito alla ricorsione per ribaltare una stringa e allora ho voluto
vedere se mi raspavo fuori.
io l'ho fatta cosě, ma magari ci sono altri metodi e sarei interessato a
conoscerli...
Imports OLD = Microsoft.VisualBasic
Private Function ribaltax(ByVal str As String)
If Len(str) = 1 Then
    Return str
Else
    Return OLD.Right(str, 1) + ribaltax(OLD.Left(str, Len(str) - 1))
End If
End Function
Ciao e grazie
Max

 Imports OLD = Microsoft.VisualBasic
Prima che provi, parli di .Net o di VB6?

 
Tempo fa in una libreria C++ ho visto un'implementazione molto furba per 
velocizzarla: partendo contemporaneamente da entrambi i lati della 
stringa scambi gli i-esimi caratteri fino a (str.Length \ 2) o (Len(str) 
\ 2) in VB6
Se usi VB.Net con l'imports di Microsoft.VisualBasic sei un masochista.
Ciao

 Prima che provi, parli di .Net o di VB6?
pensavo non fosse il caso di specificare... io ho usato il .net, ma se togli
i riferimenti old il vb prende le funzioni left e right senza bisogno di
qualificatori :)
e il return non funzia mi sa sul vb6...
ciao
max

 e il return non funzia mi sa sul vb6...
funzionare funzia... ma fa qualcos'altro.
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 Se usi VB.Net con l'imports di Microsoft.VisualBasic sei un masochista.
Di grazia, puoi spiegarmi perchč? grassie...
Max

 pensavo non fosse il caso di specificare...
Perchč?
Io non ho Net, ma, leggendo, pare che sia molto diverso da VB.
Tu non la pensi cosě?

 Di grazia, puoi spiegarmi perchè? grassie...
Perchè sono più lente, richiedono più risorse (devono chiamare i 
compiler services di VB.net anzichè lavorare direttamente sui dati) e ti 
abituano a una sintassi che non è propria di .Net, il che comporta una 
maggiore difficoltà se dovessi leggere esempi scritti in altri linguaggi 
(ad es. gli esempi in rete sono quasi tutti in C#, che è molto simile a 
VB.net scritto con le nuove logiche).
Io ad es. uso anche i tipi base definiti dal Framework piuttosto che gli 
alias del linguaggio: Int32 al posto di Integer, così nessuno potrà 
chiedersi se è in Integer VB6 o un Integer VB.net
Ciao

> funzionare funzia... ma fa qualcos'altro.
siiii... mi riferivo all'uso tipo C++ :)
Max

 siiii... mi riferivo all'uso tipo C++ :)
E siamo a 3: .Net, VB6 e C++
E secondo te non era nemmeno il caso di specificare... :-(

 Tu non la pensi cosě?
Si, č diverso, ma se noti sintaticcamente non č cambiato nulla (nel mio
codice, intendo) rispetto al vb6 eccetto le due cose che ho sottolineato, e
cioč la qualificazione su alcune funzioni (left, right) e il return che in
.net č uguale al C++...
Max

> Perchč?

Rileggici, prima che ti cataloghi come troll...

 chiedersi se è in Integer VB6 o un Integer VB.net
Ma come ti comporteresti se dovessi usare delle funzioni come la LEFT o la
RIGHT?
Premetto che non sono un esperto del .net.... stavo imparando l'anno scorso,
ma poi mi sono fermato...
Grazie
Max

 E secondo te non era nemmeno il caso di specificare... :-(
Perdonami...
ho usato troppa astrazione...
Max

> Rileggici, prima che ti cataloghi come troll...
Come preferisci...
Ho ragionato da persona che usa più linguaggi (spesso facendo casino)...
Penso che i troll siano altre persone...
Ho chiesto cmq venia qui sopra...
Max

 RIGHT?
Tutte le funzioni di base e molte altre nemmeno presenti in VB6 sono 
esposte direttamente dal tipo di dati:
Dim str As String = "left and right"
Dim strLeft = str.SubString(0, 4)
Dim strRight = str.SubString(str.Length - 6, 5)
Ciao

 Dim strRight = str.SubString(str.Length - 6, 5)
Ooops... rifaccio
Option Explicit On
Option Strict On
Dim str As String = "left and right"
Dim strLeft As String = str.SubString(0, 4)
Dim strRight As String = str.SubString(str.Length - 6, 5)
Ciao

 Dim strRight As String = str.SubString(str.Length - 6, 5)
C'avessi torto :)
Dovrò studiare di più!!
Grazie e ciao!

 Dim strRight As String = str.SubString(str.Length - 6, 5)
AZà, di Net non capisco nulla, ma ho la sensazione che tu sia un simpatico
imbroglione :-P

 imbroglione :-P
E tu il solito pignolo ;)

 Imports OLD = Microsoft.VisualBasic
Ops.
A questo punto dovresti poter usare la StrReverse, se ricordo bene il nome.
Bye, G.

 \ 2) in VB6
  Be questa implementazione ( furba... ) io la usavo a scuola!
Ciao
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/