Newsgroup: it.comp.lang.visual-basic
Titolo: Numeri=Lettere

Problema,
Data tabella1 dove
ci sono 2 colonne così popolate
Num    Lettera
1            A
2            B
3            C
4            E
5            F
6            G
7            H
8            I
9            L
0            Z
come posso abbinare un numero (esempio: 1350) con le lettere della tabella
sopra?
nell'esempio il risultato dovrebbe essere
ACFZ
Quanlcuno ha già affrontato il problema?
Grazie1000

[slim_slim = 
circa_s...@tin.it
 in 1nXec.49988$
hc5.2...@news3.tin.it
]
ha scritto:

Ehhhh.
Asc (o Val), Choose e Chr.
Più facile se le lettere fossero nella sequenza ASCII.

 ha scritto nel messaggio
news:c5hg61$1r2nk$1...@ID-174464.news.uni-berlin.de...

La sequenza devo lasciarla libera per permetere al cliente l'abbinamento
personalizzato

 l'abbinamento personalizzato
E' comunque facile.


wrote:


 Asc (o Val), Choose e Chr.
Oppure una Replace e un for.
bye
-- 
Esistono 10 tipi di persone: chi conosce il binario e chi no.
Gestione Ottica - Gestionale per Ottici e Programmi Gratuiti su:
http://www.nicolaottomano.it

 Oppure una Replace e un for.
Giusto, allora rilancio: senza For.

bye
Se poi uno vuole andare a efficienza estrema, lavora coi vettori di
bytes e coy CopyMemory... :))))
Ciao!
Luca

ACFZ
Questo č il modo piů subdolo per farlo :)
Function conv(s As String) As String
Dim a As Long
Dim e As Long
For a = 1 To Len(s)
    e = Mid(s, a, 1)
    conv = conv & Switch(1 = e, "A", 2 = e, "B", 3 = e, _
      "C", 4 = e, "E", 5 = e, "F", 6 = e, "G", 7 = e, _
      "H", 8 = e, "I", 9 = e, "L", 0 = e, "Z")
Next
End Function
questo invece č il modo piů efficiente... forse :)
Function conv(s As String) As String
Static arr(0 To 9) As String * 1
Dim a As Long
If arr(1) <> "A" Then
    arr(1) = "A"
    arr(2) = "B"
    arr(3) = "C"
    arr(4) = "E"
    arr(5) = "F"
    arr(6) = "G"
    arr(7) = "H"
    arr(8) = "I"
    arr(9) = "L"
    arr(0) = "Z"
End If
conv = Space$(Len(s))
For a = 1 To Len(s)
    Mid$(conv, a, 1) = arr(Mid$(s, a, 1))
Next
End Function
termoPilucco


Mmmm ... una cosa non definita senza for?? Son proprio curioso di
vederla.... :))))
Ciao!
Luca

[Luca Menegotto = 
circa_otl...@yahoo.it
 in
piio70psb3t6l9luh...@4ax.com
] ha scritto:

Facile, ovviamente partiamo da una stringa di crt da "0" a "9", non di una
tabella di una database.
Ehm... ho detto "solo Replace", non "solo una Replace"... ;-)

> Giusto, allora rilancio: senza For.
E cioč? Mettere una serie di replace? mmmm...
No, sicuramente stai pensando a qualcosa di piů elegante...


 No, sicuramente stai pensando a qualcosa di più elegante...
Non ho mai parlato di eleganza, sei tu che mi hai stuzzicato.

In data Tue, 13 Apr 2004 22:14:06 +0200, termoPilucco: scrisse:
Oh... non bisognava scrivere il codice... 
...ma voi non avete proprio nulla da fare la sera? :O
termoPilucco, questa č solo una mia istanza... l'originale se la sta' spassando
altrove...

 Non ho mai parlato di eleganza, sei tu che mi hai stuzzicato.
azz! E ci hai ragione! ;-)


Facile, ovviamente partiamo da una stringa di crt da "0" a "9", non di una
Eh no, tu bari!!! :)))))))
anche se in effetti con 10 replace hai comunque risolto il problema.
Non e' efficientissima come soluzione, pero'.....
OK, vedo di buttare giu' qualcosa.
Supponiamo che da qualche parte io abbia caricato il mio vettore
byArray(0 to 9) As Byte con i caratteri letti e convertiti in Ascii.
Dopodiche', secondo me, la piu' efficiente e':
Private Function Convert(lPar As Long) As String
    Dim byApp() As Byte
    Dim strConvert As String
    Dim lLen As Long
    Dim lApp As Long
 
    '' ha senso con segno?
    If lPar < 0 Then Exit Sub
 
    strConvert = CStr(lPar)
    lLen = Len(strConvert)
    ReDim byApp(0 To lLen - 1)
    CopyMemory byApp(0), ByVal strConvert, lLen
 
    For lApp = 0 To lLen - 1
        byApp(lApp) = byArray(byApp(lApp))
    Next
 
    CopyMemory ByVal strConvert, byApp(0), lLen
    Convert = strConvert
End Function
Ciao!
Luca

        byApp(lApp) = byArray(byApp(lApp))
Comincio ad avere sonno......
Questa corretta e':
        byApp(lApp) = byArray(byApp(lApp) - 48) 
se non gli tiro via il codice ASCII di 0 non andra' mai.
Sperando di non aver scritto altre belinate (inizia a calarmi la
palpebra).
Ciao!
Luca

[Luca Menegotto = 
circa_otl...@yahoo.it
 in
krjo70tbbp2bsa6lu...@4ax.com
] ha scritto:

Nulla da dire, pur non avendo provato mi fido.
Ma chi ha mai parlato di efficienza?

*Lupo* ha provocato un errore irreversibile in mex.dll
 Dettagli : "il newsgroup non poteva essere written" - Stack :
ok, vedo i tuoi 10 Replace e rilancio di 1 SelectCase e vi ho fregati :p
-- 
<Gigio2K>
--- 
http://www.g2kweb.it/gigio2k
 ---
Nokia -> I.T.H.N. -> 
http://www.ithn.it/
VB -> I.C.L.VB -> 
http://www.it-lang-vb.net/

 ha scritto nel messaggio
news:tmio70t88nf4dapn2...@4ax.com...

In 
VB.NET
, con la SortedList
fa risparmiare codice
Ave
giuseppeD

 altrove...
Come fai a sapere qual'e' l'istanza e quale l'originale? Quale 
proprieta' della classe usi?
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!

 :p
Cuori contro picche.
Scrivi 22 righe quando ne basta una?
:-P

 
Sorry: "... qual e' ..."


 proprieta' della classe usi?
Ovviamente uso 'me'.
If presuntoTermoPilucco is me then
    msgbox "Sono io."
else
    msgbox "Sono una semplice istanza."
end if
termoPilucco

Il 14/04/2004 9.11, termoPilucco scrisse:

Secondo Me questo metodo non funziona, anzi mi sembri un po' confuso, 
alla ricerca della tua identita'.
Ma hai fatto il debug della classe prima di utilizzarla in produzione?
:-)


 Ma hai fatto il debug della classe prima di utilizzarla in produzione?
L'ho fatto fare ad una mia istanza...
termoPilucco, ricorsivo

 
Ma non era in un altro thread la ricorsione?
:-)
	maxx
P.S. Con 512MB di ram quante istanze di te stesso riesci a creare?


 :-P
we' non imbrogliare , si parlava di Numero di costrutti !!!
Quindi 1 Select case batte 10Replace :pp
-- 
-Gigio@Work(?)-