Differenze tra le versioni di "Convertire un carattere maiuscolo in minuscolo senza la funzione LCase()"

Da Gambas-it.org - Wikipedia.
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
Riga 5: Riga 5:
 
Così, ad esempio, il carattere della lettera "A" ha un numero di codice ASCII 65; pertanto la relativa lettera minuscola "a" ha un numero uguale a 65 + 32 = 97.
 
Così, ad esempio, il carattere della lettera "A" ha un numero di codice ASCII 65; pertanto la relativa lettera minuscola "a" ha un numero uguale a 65 + 32 = 97.
  
 
+
Pertanto, se vogliamo effettuare una conversione in minuscolo di una stringa di caratteri alfabetici, scritti tutti in lettere maiuscole, senza l'uso della funzione nativa di Gambas "LCase()", potremo utilizzare un algoritmo simile al seguente:
Pertanto, se vogliamo effettuare una conversione in minuscolo di una stringa di caratteri alfabetici, scritti tutti in lettere maiuscole, senza l'uso della funzione di Gambas ''LCase( )'', potremo utilizzare un algoritmo simile al seguente:
 
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
    
 
    
Riga 13: Riga 12:
 
   Dim b As Byte
 
   Dim b As Byte
 
    
 
    
  s = "ABCDEFGHIJKLMNOPQRSTUVYWZ"
+
  s = "ABCDEFGHIJKLMNOPQRSTUVYWZ"
 
    
 
    
  bb = Byte[].FromString(s)
+
  bb = Byte[].FromString(s)
 
    
 
    
  For b = 0 To bb.Max
+
  For b = 0 To bb.Max
    bb[b] += 32
+
    bb[b] += 32
  Next
+
  Next
 
    
 
    
  Print bb.ToString(0, bb.Count)
+
  Print bb.ToString(0, bb.Count)
 
    
 
    
 
  '''End'''
 
  '''End'''
 
+
Va da sé che, avendo per ottenere la conversione da minuscolo in maiuscolo, sarà necessario sottrarre il valore 32 al numero di codice ASCII di un carattere alfabetico.
 
 
Va da sé che, avendo per ottenenre la conversione da minuscolo in maiuscolo, sarà necessario sottrarre il valore 32 al numero di codice ASCII di un carattere alfabetico.
 
 
<BR>Esempio: [a]97 - 32 = 65[A]
 
<BR>Esempio: [a]97 - 32 = 65[A]

Versione attuale delle 06:00, 11 mag 2023

Come è noto, per convertire uno o più caratteri alfabetici maiuscoli di una stringa in corrispondenti minuscoli, è sufficiente utilizzare la funzione LCase( ).

Se non si vuole utilizzare detta funzione di Gambas, per effettuare comunque la conversione da maiuscolo in minuscolo è necessario tenere conto che nel codice ASCII i caratteri alfabetici minuscoli hanno un corrispondente codice numerico pari a quello dei caratteri alfabetici maiuscoli + 32.

Così, ad esempio, il carattere della lettera "A" ha un numero di codice ASCII 65; pertanto la relativa lettera minuscola "a" ha un numero uguale a 65 + 32 = 97.

Pertanto, se vogliamo effettuare una conversione in minuscolo di una stringa di caratteri alfabetici, scritti tutti in lettere maiuscole, senza l'uso della funzione nativa di Gambas "LCase()", potremo utilizzare un algoritmo simile al seguente:

Public Sub Main()
 
 Dim s As String
 Dim bb As Byte[]
 Dim b As Byte
 
 s = "ABCDEFGHIJKLMNOPQRSTUVYWZ"
  
 bb = Byte[].FromString(s)
  
 For b = 0 To bb.Max
   bb[b] += 32
 Next
  
 Print bb.ToString(0, bb.Count)
  
End

Va da sé che, avendo per ottenere la conversione da minuscolo in maiuscolo, sarà necessario sottrarre il valore 32 al numero di codice ASCII di un carattere alfabetico.
Esempio: [a]97 - 32 = 65[A]