Rimuovere da una stringa tutti i caratteri non-stampabili eventualmente presenti

Da Gambas-it.org - Wikipedia.
Versione del 27 lug 2017 alle 18:24 di Vuott (Discussione | contributi) (Creata pagina con "Come è noto, i caratteri sono rappresentati numericamenti dalla codifica ASCII. Nella codifica a 7 bit (quindi fino al valore 127) sono compresi anche 33 caratteri definiti "...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Come è noto, i caratteri sono rappresentati numericamenti dalla codifica ASCII. Nella codifica a 7 bit (quindi fino al valore 127) sono compresi anche 33 caratteri definiti "non stampabili", in quanto definiti solitamente come "caratteri di controllo".

All'interno della tabella ASCII i caratteri, definiti "non stampabili" sono quelli rappresentati dal numero 0 sino al numero 31, nonché il numero 127.

Se si intende eliminare da una stringa di caratteri tutti quelli non-stampabili, eventualmente presenti, è possibile adottare agevolmente questa funzione:

Private Function RimNonStamp(car As String) As String
 
 Dim bb As Byte[]
 Dim b As Byte
     
  For b = 0 To 31
    car = Replace(car, Chr(b), Null)
  Next
  car = Replace(car, Chr(127), Null)
  
  Return car
  
End


oppure questa:

Private Function RimNonStamp(car As String) As String
 
 Dim bb As Byte[]
 Dim b As Byte
  
  bb = Byte[].FromString(car)
   
  Repeat
    If (bb[b] < &20) Or (bb[b] = &7F) Then
      bb.Remove(b, 1)
      Continue
    Endif
    Inc b
  Until b == bb.max
  
  Return bb.ToString(0, bb.Count)
    
End