Concatenare 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
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 2: Riga 2:


Esempio:
Esempio:
  '''Public''' Sub Main()
  Public Sub Main()
   
   
  Dim s1, s2, unione As String
  Dim s1, s2, unione As String
    
    
   s1 = "aaaa"
   s1 = "aaaa"
Riga 13: Riga 13:
   Print unione
   Print unione
    
    
  '''End'''
  End
Questa rappresenta la modalità più comune, usuale e la più semplice da utilizzare per unire due stringhe.
Questa rappresenta la modalità più comune, usuale e la più semplice da utilizzare per unire due stringhe.


Esistono, però, anche altre modalità, che possono essere utilizzare, soprattutto in relazione ai casi ed alle situazioni in cui versa il codice
Esistono, però, anche altre modalità, che possono essere utilizzare, soprattutto in relazione ai casi ed alle situazioni in cui versa il codice
Riga 21: Riga 20:
Eccone alcune.
Eccone alcune.


==Uso della funzione ''Mid( )''==
==Uso della funzione "Mid()"==
Questa modalità fa uso della funzione ''Mid( )''. <SUP>&#91;[[#Note|Nota 1]]&#93;</sup>
Questa modalità fa uso della funzione "Mid()". <SUP>&#91;[[#Note|nota 1]]&#93;</sup>


Vediamo un semplice esempio:
Vediamo un semplice esempio:
  '''Public''' Sub Main()
  Public Sub Main()
 
  Dim s1 As String = "aaa"
  Dim s2 As String = "bbb"
  Dim unica As String
    
    
  Dim s1 As String = "aaa"
  Dim s2 As String = "bbb"
  Dim unica As String
   unica = s2
   unica = s2
    
    
Riga 37: Riga 36:
   Print unica
   Print unica
   
   
  '''End'''
  End


==Uso della Funzione ''Subst( )''==


Questa modalità fa uso della funzione ''Subst( )''. <SUP>&#91;[[#Note|Nota 2]]&#93;</sup>
==Uso della Funzione "Subst()"==
Questa modalità fa uso della funzione "Subst()". <SUP>&#91;[[#Note|nota 2]]&#93;</sup>


Vediamo un semplice esempio:
Vediamo un semplice esempio:
  '''Public''' Sub Main()
  Public Sub Main()
    
    
  Dim s1 As String = "aaa"
  Dim s1 As String = "aaa"
  Dim s2 As String = "bbb"
  Dim s2 As String = "bbb"
  Dim unica As String
  Dim unica As String
    
    
   unica = Subst(("&1&2"), s1, s2)
   unica = Subst(("&1&2"), s1, s2)
Riga 54: Riga 53:
   Print unica
   Print unica
   
   
  '''End'''
  End


==Uso della funzione ''Replace( )''==
 
Questa modalità fa uso della funzione ''Replace( )''. <SUP>&#91;[[#Note|Nota 2]]&#93;</sup>
==Uso della funzione "Replace()"==
Questa modalità fa uso della funzione "Replace()". <SUP>&#91;[[#Note|nota 2]]&#93;</sup>


Vediamo un semplice esempio:
Vediamo un semplice esempio:
  '''Public''' Sub Main()
  Public Sub Main()
 
  Dim s1 As String = "aaa"
  Dim s2 As String = "bbb" 
  Dim unica As String
    
    
  Dim s1 As String = "aaa"
  Dim s2 As String = "bbb" 
  Dim unica As String
   unica = "*Y"
   unica = "*Y"
   unica = Replace(unica, "*", s1)
   unica = Replace(unica, "*", s1)
Riga 72: Riga 72:
   Print unica
   Print unica
    
    
  '''End'''
  End
 


==Uso del Metodo ''.Join( )'' fornito dalle variabili vettoriali del tipo ''string[ ]''==
==Uso del Metodo ".Join()" fornito dalle variabili vettoriali del tipo "string[]"==
Vediamo di quest'altra modalità un semplice esempio:
Vediamo un semplice esempio di questa modalità che fa uso del Metodo ".Join()" dei vettori di tipo "String[]": <SUP>&#91;[[#Note|nota 3]]&#93;</sup>
  '''Public''' Sub Main()
  Public Sub Main()
    
    
  Dim s1, s2, unica As String
  Dim s1, s2, unica As String
  Dim ss As New String[]
  Dim ss As New String[]
    
    
   s1 = "aaa"
   s1 = "aaa"
Riga 91: Riga 92:
   Print unica
   Print unica
    
    
  '''End'''
  End
 


==Uso di una variabile vettoriale di tipo ''Byte[ ]'' e della funzione ''Asc( )''==
==Uso di una variabile vettoriale di tipo "Byte[]" e della funzione "Asc()"==
Vediamo di quest'altra modalità un semplice esempio:
Vediamo di quest'altra modalità un semplice esempio:
  '''Public''' Sub Main()
  Public Sub Main()
    
    
  Dim s1, s2, unica As String
  Dim s1, s2, unica As String
  Dim bb As Byte[]
  Dim bb As Byte[]
  Dim b As Byte
  Dim b As Byte
 
   s1 = "aaa"
   s1 = "aaa"
   s2 = "bbb"
   s2 = "bbb"
Riga 114: Riga 116:
   Print unica
   Print unica
      
      
  '''End'''
  End
 


==Uso di un ''Puntatore'' e dei ''Memory Stream''==
==Uso di un ''Puntatore'' e dei ''Memory Stream''==
Vediamo di quest'altra modalità un semplice esempio:
Vediamo di quest'altra modalità un semplice esempio:
  '''Public''' Sub Main()
  Public Sub Main()
 
  Dim s1, s2, unica As String
  Dim p As Pointer
  Dim st As Stream
    
    
  Dim s1, s2, unica As String
  Dim p As Pointer
  Dim st As Stream
   s1 = "aaa"
   s1 = "aaa"
   s2 = "bbb"
   s2 = "bbb"
Riga 140: Riga 143:
   Free(p)
   Free(p)
    
    
  '''End'''
  End
 


==Analogo al precedente esempio, ma usando un file temporaneo==
==Analogo al precedente esempio, ma usando un file temporaneo==
Vediamo quest'altro caso:
Vediamo quest'altro caso:
  '''Public''' Sub Main()
  Public Sub Main()
 
  Dim s1, s2, t, unica As String
  Dim fl As File
    
    
  Dim s1, s2, t, unica As String
  Dim fl As File
   s1 = "aaa"
   s1 = "aaa"
   s2 = "bbb"
   s2 = "bbb"
Riga 163: Riga 167:
   Print unica
   Print unica
    
    
  '''End'''
  End




Riga 171: Riga 175:


[2] Questa modalità è stata proposta dal membro [http://www.gambas-it.org/smf/index.php?action=profile;u=1249 Gianluigi] del forum gambas-it.org .
[2] Questa modalità è stata proposta dal membro [http://www.gambas-it.org/smf/index.php?action=profile;u=1249 Gianluigi] del forum gambas-it.org .
[3] Con riferimento a questa modalità vedasi anche questa specifica pagina della Wiki:
[http://www.gambas-it.org/wiki/index.php?title=Ottenere_un%27unica_stringa_dalle_stringhe_contenute_dagli_elementi_di_un_vettore_di_tipo_Stringa Ottenere un'unica stringa dalle stringhe contenute dagli elementi di un vettore di tipo Stringa]

Versione attuale delle 17:40, 28 giu 2024

Come è noto, in Gambas, per concatenare due stringhe, si utilizza l'operatore &, posto fre le due stringhe.

Esempio:

Public Sub Main()

  Dim s1, s2, unione As String
 
  s1 = "aaaa"
  s2 = "bbbb"
  
  unione = s1 & s2
  
  Print unione
  
End

Questa rappresenta la modalità più comune, usuale e la più semplice da utilizzare per unire due stringhe.

Esistono, però, anche altre modalità, che possono essere utilizzare, soprattutto in relazione ai casi ed alle situazioni in cui versa il codice

Eccone alcune.

Uso della funzione "Mid()"

Questa modalità fa uso della funzione "Mid()". [nota 1]

Vediamo un semplice esempio:

Public Sub Main()
 
  Dim s1 As String = "aaa"
  Dim s2 As String = "bbb"
  Dim unica As String

  unica = s2
  
  Mid(unica, 1, 0) = s1
  
  Print unica

End


Uso della Funzione "Subst()"

Questa modalità fa uso della funzione "Subst()". [nota 2]

Vediamo un semplice esempio:

Public Sub Main()
 
  Dim s1 As String = "aaa"
  Dim s2 As String = "bbb"
  Dim unica As String
 
  unica = Subst(("&1&2"), s1, s2)
  
  Print unica

End


Uso della funzione "Replace()"

Questa modalità fa uso della funzione "Replace()". [nota 2]

Vediamo un semplice esempio:

Public Sub Main()
 
  Dim s1 As String = "aaa"
  Dim s2 As String = "bbb"  
  Dim unica As String

  unica = "*Y"
  unica = Replace(unica, "*", s1)
  unica = Replace(unica, "Y", s2)
  
  Print unica
  
End


Uso del Metodo ".Join()" fornito dalle variabili vettoriali del tipo "string[]"

Vediamo un semplice esempio di questa modalità che fa uso del Metodo ".Join()" dei vettori di tipo "String[]": [nota 3]

Public Sub Main()
 
  Dim s1, s2, unica As String
  Dim ss As New String[]
  
  s1 = "aaa"
  s2 = "bbb"
 
  ss.Push(s1)
  ss.Push(s2)
   
  unica = ss.Join(Null, Null)
   
  Print unica
 
End


Uso di una variabile vettoriale di tipo "Byte[]" e della funzione "Asc()"

Vediamo di quest'altra modalità un semplice esempio:

Public Sub Main()
 
  Dim s1, s2, unica As String
  Dim bb As Byte[]
  Dim b As Byte

  s1 = "aaa"
  s2 = "bbb"
   
  bb = Byte[].FromString(s1)
   
  For b = 1 To Len(s2) 
    bb.Push(Asc(s2, b))
  Next
   
  unica = bb.ToString(0, bb.Count)
   
  Print unica
   
End


Uso di un Puntatore e dei Memory Stream

Vediamo di quest'altra modalità un semplice esempio:

Public Sub Main()
 
  Dim s1, s2, unica As String
  Dim p As Pointer
  Dim st As Stream

  s1 = "aaa"
  s2 = "bbb"
   
  p = Alloc(SizeOf(gb.Byte), Len(s1) + Len(s2))
   
  st = Memory p For Write
  Write #st, s1
  Write #st, s2
  st.Close
   
  unica = String@(p)
   
  Print unica
   
  Free(p)
 
End


Analogo al precedente esempio, ma usando un file temporaneo

Vediamo quest'altro caso:

Public Sub Main()
 
  Dim s1, s2, t, unica As String
  Dim fl As File

  s1 = "aaa"
  s2 = "bbb"
   
  t = Temp()
   
  fl = Open t For Create
  Write #fl, s1
  Write #fl, s2
  fl.Close
   
  unica = File.Load(t)
  
  Print unica
 
End


Note

[1] Questa modalità è stata proposta dai membri Top Fuel e Gianluigi del forum gambas-it.org .

[2] Questa modalità è stata proposta dal membro Gianluigi del forum gambas-it.org .

[3] Con riferimento a questa modalità vedasi anche questa specifica pagina della Wiki: Ottenere un'unica stringa dalle stringhe contenute dagli elementi di un vettore di tipo Stringa