Differenze tra le versioni di "Rimuovere da una stringa tutti i caratteri non-stampabili eventualmente presenti"

Da Gambas-it.org - Wikipedia.
(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 "...")
 
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 1: Riga 1:
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''".
+
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.
+
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:
+
Se si intende eliminare da una stringa di caratteri tutti quelli "''non-stampabili'' ", eventualmente presenti, è possibile adottare agevolmente questa funzione: <SUP>&#091;[[#Note|nota 1]]&#093;</sup>
 
  '''Private''' Function RimNonStamp(car As String) As String
 
  '''Private''' Function RimNonStamp(car As String) As String
 
    
 
    
Riga 9: Riga 9:
 
   Dim b As Byte
 
   Dim b As Byte
 
        
 
        
  For b = 0 To 31
+
  For b = 0 To 31
    car = Replace(car, Chr(b), Null)
+
    car = Replace(car, Chr(b), Null)
  Next
+
  Next
  car = Replace(car, Chr(127), Null)
+
  car = Replace(car, Chr(127), Null)
 
    
 
    
  Return car
+
  Return car
 
    
 
    
 
  '''End'''
 
  '''End'''
Riga 25: Riga 25:
 
   Dim b As Byte
 
   Dim b As Byte
 
    
 
    
  bb = Byte[].FromString(car)
+
  bb = Byte[].FromString(car)
 
      
 
      
  Repeat
+
  Repeat
    If (bb[b] < &20) Or (bb[b] = &7F) Then
+
    If (bb[b] < &20) Or (bb[b] = &7F) Then
      bb.Remove(b, 1)
+
      bb.Remove(b, 1)
      Continue
+
      Continue
    Endif
+
    Endif
    Inc b
+
    Inc b
  Until b == bb.max
+
  Until b == bb.max
 
    
 
    
  Return bb.ToString(0, bb.Count)
+
  Return bb.ToString(0, bb.Count)
 
      
 
      
 
  '''End'''
 
  '''End'''
 +
 +
 +
 +
=Note=
 +
[1] Vedere anche le seguenti pagine:
 +
* [[Verificare se in una stringa vi sono caratteri non stampabili]]
 +
* [[Non visualizzare i caratteri non-stampabili di una stringa che inizia con caratteri stampabili]]

Versione attuale delle 08:35, 24 giu 2023

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: [nota 1]

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


Note

[1] Vedere anche le seguenti pagine: