Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Convertire lettere in numeri
Forum - Visual Basic 6 - Convertire lettere in numeri

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
meno (Normal User)
Newbie


Messaggi: 19
Iscritto: 02/02/2008

Segnala al moderatore
Postato alle 20:09
Mercoledì, 06/02/2008
Salve a tutti:k::k:
come posso fare per trasformare una una parola ad esempio:
ciao
in numeri ma nn stabiliti da ma che corrispondessero al loro "codice".per codice,anche se nn e la definizione esatta, e sapere ad esempio il numero che se inserio nella stringa
Codice sorgente - presumibilmente Plain Text

  1. Text3.Text = Chr([b]34[/b])

, questo corrisponde al carattere ", mi dia il carattere messo in un'altra tet box..Quindi ricapitolando se avessi due textbox e un pulsante convertisse il testo inserito in una textbox in una sequenza di numeri pari al "codice"di ogni lettera!!!nn mi serve per criptare un testo ma per generare un numero da una parola!!!GRAZIEE:k::k::k::k::k::k::k::k::k::k::rotfl::rotfl::rotfl::rotfl::rotfl:;);););)

PM Quote
Avatar
meno (Normal User)
Newbie


Messaggi: 19
Iscritto: 02/02/2008

Segnala al moderatore
Postato alle 20:11
Mercoledì, 06/02/2008
scusate intendevo :
Codice sorgente - presumibilmente Plain Text

  1. Text3.Text = Chr(34)


senza [B] errore mio scusate

PM Quote
Avatar
gius (Ex-Member)
Expert


Messaggi: 294
Iscritto: 20/06/2007

Segnala al moderatore
Postato alle 20:14
Mercoledì, 06/02/2008
Per generare il numero da una parola puoi usare l'ascii
Codice sorgente - presumibilmente Plain Text

  1. Text1.Text = Asc("ciao")


PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 20:16
Mercoledì, 06/02/2008
Devi semplicemente usare

un ciclo For
la funzione Len
la funzione Mid$
la funzione Asc
la funzione Str$

... pensaci ...

PM Quote
Avatar
meno (Normal User)
Newbie


Messaggi: 19
Iscritto: 02/02/2008

Segnala al moderatore
Postato alle 20:17
Mercoledì, 06/02/2008
Grazie ad entrambi adesso ci lavoro su e vi faccio sapere:k::k::k::k::k::k:

PM Quote
Avatar
meno (Normal User)
Newbie


Messaggi: 19
Iscritto: 02/02/2008

Segnala al moderatore
Postato alle 22:17
Mercoledì, 06/02/2008
Grazie a tutti ci sono riuscito..adesso ripensandoci era una cavolata!!!:
Codice sorgente - presumibilmente VB.NET

  1. Dim x As Integer
  2. Dim c As Long
  3. c = Len(Text1.Text) + 1
  4. For x = x To Len(Text1.Text) - 1
  5. c = c - 1
  6. Text3.Text = Mid$(Text1.Text, c)
  7. Text2.Text = Asc(Text3.Text)
  8. Text4.Text = Text4.Text + Text2.Text
  9. Next x
  10. Exit Sub
  11. ciao:
  12. MsgBox Err.Description


..ok ma adesso insorge un altro problema....il numero che mi compare e giustamente molto alto perche nn si parla di somma algebbrica ma di  letterale inendo 1+1=11 quindi a me servirebbe trovare anche con una divisione un numero che poi possa usare per chr("numero trovato")...quindi avevo in mente di fare un ciclo for che parti da 1 fino all nuemro alto trovato e che dividi per il numero di una text che ad ogni cilo viende aggiunto uno...quindi uscirebbe numeroalto /1,/2,/3,/... ecc fino ad arrivare a dividersi per se stesso... e che il cilo si fermasse appena trova(riguardo il risultato delle divisioni), il primo numero pari.. nn so se mi spiego...adesso per fare il cilo delle divisioni ci sono ma come posso fare per far  fermare o comunque far scattare qualche evento appena trova un numero pari?P.S: Scusate la confusione per pari intendo un numero nn decimale cioe intero...scusate di nuovo

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 21:05
Giovedì, 07/02/2008
Diciamo che non ho capito nulla ...

Non ho capito cosa vuoi fare (magari con un esempio pratico viene meglio spiegarlo ...) ne' come pensi di farlo ...

A "naso" ... mi sembra che tu stia molto molto lontano dalla corretta di soluzione (ammesso che abbia capito il problema ...)

PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 18:31
Venerdì, 08/02/2008
allora, il numero piu basso in grado di essere trasformato in una parola/frase in modo totalmente univoco, secondo i suoi componenti è facile.
i numeri da 0 a 255 indicano un corrispettivo carattere ascii.
se noi prendiamo 256? potremmo farlo conicidere con la seconda lettera.
in breve
diciamo che la nostra stringa esempio è
Stringa = "ciao"
e l'abbiamo divisa con dei cicli in
L(0) = "c"
L(1) = "i"
L(2) = "a"
L(3) = "o"
ora creiamo in nostro numero univoco.
Nuniv = asc(L(0)) + asc(l(1))*256 + asc(L(2))*256*256 + asc(L(3))*256*256*256

cosa abbiamo fatto? somme che non si sovrapporranno mai.
infatti la prima lettera sarà
Nuniv mod 256
la seconda sarà
Nuniv - (Nuniv mod 256) mod (256 * 256)
ovvero i resti

ovviamente questo (e quello prima) vanno fatti con i cicli. e al posto dei 256 *256 *256 usi 256^x.

spero di essermi speigato bene.
quello che ti ho spiegato non è altro che portare i tasti della tastiera intesi come sistema numerico a base 256 in decimale.

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 22:45
Venerdì, 08/02/2008
ti consiglio di usare un vettore nel quale metti il corrispondente ascii di ogni singolo carattere...

Codice sorgente - presumibilmente VB.NET

  1. dim ascii(65536) as byte
  2. for i=0 to len(testo)
  3. ascii(i)=asc(mid(testo,i,1))
  4. next i



PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo