Gambas-it

Gambas3 => Programmazione => Topic aperto da: dex - 31 Agosto 2013, 00:18:24

Titolo: (risolto) dove toppo?
Inserito da: dex - 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

Titolo: Re: dove toppo?
Inserito da: vuott - 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

Titolo: Re: dove toppo?
Inserito da: dex - 01 Settembre 2013, 02:20:45
grazie vuott
risolto