Autore Topic: (risolto) dove toppo?  (Letto 449 volte)

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
(risolto) dove toppo?
« il: 31 Agosto 2013, 00:18:24 »
ciao raga
sto testando un piccolo codice e non riesco a capire perchè sull'ultima lettera mi da il codice binario 0

codice
Codice: [Seleziona]
  Dim n, i As Integer
  Dim b As String
  Dim testo As String
  
           testo = "prova funzione"
           n = 8
          
       For i = 1 To Len(testo)
           b = Mid(testo, i, 1)
  
           Print b & " code " & Bin(String.Code(b, n))
 
      Next


risultato di print
Codice: [Seleziona]
p code 1110010
r code 1101111
o code 1110110
v code 1100001
a code 100000
  code 1100110
f code 1110101
u code 1101110
n code 1111010
z code 1101001
i code 1101111
o code 1101110
n code 1100101
e code 0

« Ultima modifica: 01 Settembre 2013, 02:21:18 da dex »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.266
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: dove toppo?
« Risposta #1 il: 31 Agosto 2013, 22:58:52 »
La tua domanda è: "Dove toppo ?"

Ehmmm... nell'interpretazione della funzione String.Code(). Infatti tale funzione richiede l'intera stringa ed il numero d'indice (in questo caso esso parte da 1 ) per l'individuazione del carattere.

Dunque, il tuo codice dovrà essere così corretto:
Codice: gambas [Seleziona]

Public Sub Form_Open()

  Dim i As Integer
  Dim testo As String

    testo = "prova funzione"
           
    For i = 1 To Len(testo)

' Qui adottiamo anche una modifica/integrazione per ricavare senza la funzione "Mid()" il singolo carattere
' da mostrare a sinistra del corrispondente numero binario:
      Print Chr(String.Code(testo, i)) & " code " & Bin(String.Code(testo, i), 8)

    Next

End

« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: dove toppo?
« Risposta #2 il: 01 Settembre 2013, 02:20:45 »
grazie vuott
risolto