Confrontare i caratteri di due stringhe: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 2: Riga 2:


Potremo procedere utilizzando la funzione ''Mid(...)'', e l'intento sarà quello di  
Potremo procedere utilizzando la funzione ''Mid(...)'', e l'intento sarà quello di  
  '''Public''' Sub Button1_Click()
  '''Public''' Sub Main()
 
   Dim s1, s2, diversi As String
   Dim s1, s2, sp, diversi As String
   Dim j, a As Byte
   Dim i, c As Integer
 
   s1 = "abc0101"
   s1 = "hola gamberos"
   s2 = "abd0111"
   s2 = "hoLa gamberos del foro"
 
   For j = 1 To Len(s1)
   For i = 1 To Max(Len(s1), Len(s2))
  <FONT color=#006400>' ''Se i rispettivi caratteri in posizione j all'interno delle due stringhe non corrispondono fra loro...''</font>
  <FONT Color=gray>' ''Se i rispettivi caratteri in posizione j all'interno delle due stringhe non corrispondono fra loro...''</font>
     If Mid(s1, j, 1) <> Mid(s2, j, 1) Then
     If Mid(s1, i, 1) <> Mid(s2, i, 1) Then
  <FONT color=#006400>' ''...allora viene incrementata la variabile "a" per determinare il totale dei caratteri differenti...''</font>
<FONT Color=gray>' ''...allora viene incrementata la variabile "c" per determinare il totale dei caratteri differenti...''</font>
       Inc a
       Inc c
  <FONT color=#006400>' ''...nonché vengono aggiunti alla variabile, chiamata "diversi", affinché siano mostrati accoppiati in console:''</font>
  <FONT Color=gray>' ''...nonché vengono aggiunti alla variabile, chiamata "diversi", affinché siano mostrati accoppiati in console:''</font>
       diversi = diversi & " " & Mid(s1, j, 1) & Mid(s2, j, 1)
       sp = Mid(s1, i, 1)
      If IsNull(sp) Then sp = Chr(32)
      diversi &= "\n" & sp & " | " & Mid(s2, i, 1)
     Endif
     Endif
   Next
   Next
 
    Print "I caratteri diversi della stringa \"s1\" e della stringa \"s2\" sono:"; diversi
  Print "I caratteri diversi della stringa \"s1\" e della stringa \"s2\" sono:\n\ns1  s2\n------\n"; diversi
    Print "per un totale di "; a & " caratteri."
  Print "\nper un totale di "; c & " caratteri."
 
  '''End'''
  '''End'''

Versione delle 12:54, 1 ago 2017

Il caso è quello in cui, avendo due stringhe di eguale lunghezza di caratteri, vogliamo verificare quali e quanti caratteri sono eventualmente diversi all'interno delle predette stringhe.

Potremo procedere utilizzando la funzione Mid(...), e l'intento sarà quello di

Public Sub Main()
 
 Dim s1, s2, sp, diversi As String
 Dim i, c As Integer
 
  s1 = "hola gamberos"
  s2 = "hoLa gamberos del foro"
 
  For i = 1 To Max(Len(s1), Len(s2))
' Se i rispettivi caratteri in posizione j all'interno delle due stringhe non corrispondono fra loro...
    If Mid(s1, i, 1) <> Mid(s2, i, 1) Then
' ...allora viene incrementata la variabile "c" per determinare il totale dei caratteri differenti...
      Inc c
' ...nonché vengono aggiunti alla variabile, chiamata "diversi", affinché siano mostrati accoppiati in console:
      sp = Mid(s1, i, 1)
      If IsNull(sp) Then sp = Chr(32)
      diversi &= "\n" & sp & " | " & Mid(s2, i, 1)
    Endif
  Next
  
  Print "I caratteri diversi della stringa \"s1\" e della stringa \"s2\" sono:\n\ns1   s2\n------\n"; diversi
  Print "\nper un totale di "; c & " caratteri."
  
End