Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: anacleto96 - 20 Maggio 2013, 15:22:57

Titolo: array di caratteri
Inserito da: anacleto96 - 20 Maggio 2013, 15:22:57
Buongiorno a tutti!

Ho un terribile problema che blocca il mio programma! :'( :'(

Il mio obiettivo è: dato un testo scritto all'interno di una TextArea, sostiuire ogni carattere della stringa con un "●". Ad esempio se all'interno della textarea scrivo "Ciao come stai?" vorrei che il nuovo testo diventasse "●●●● ●●●● ●●●● ●" .


Qualcuno sa aiutarmi? :-\
Titolo: Re: array di caratteri
Inserito da: vuott - 20 Maggio 2013, 15:25:14
Per utilizzare caratteri... particolari, devi gestire gli Unicode:

http://www.gambas-it.org/wiki/index.php?title=Uso_di_Unicode_con_gli_oggetti_di_testo
Titolo: Re: array di caratteri
Inserito da: anacleto96 - 20 Maggio 2013, 15:51:01
Ti ringrazio per la risposta, ma non è quello il punto. :-[ Io riesco a stampare il ● (facendo copia e incolla funziona!) solo che io non riesco ad estrapolare dalla stringa i singoli caratteri.
Utilizzando i caratteri escape riesco a dividere la stringa "ciao come stai" in "ciao" "come" "stai", ma a me servono le singole lettere. Devo riuscire a stampare
c
i
a
o

ecc. al fine di sostituire ad ogni lettera il pallino nero. Si può fare?
Titolo: Re: array di caratteri
Inserito da: vuott - 20 Maggio 2013, 15:52:35
Riguardo al tuo obiettivo iniziale le soluzioni possono essere diverse. Una di queste può essere ad esempio la seguente:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

  Dim ss As String[]
  Dim j As Byte

' Imponiamo un testo iniziale alla "TextArea":
   TextArea1.Text = "Ciao come stai ?"

' Distinguiamo quel testo per ciascuna parola
' (il carattere discriminante sarà, appunto, lo spazio presente fra parola e parola),
' e poniamo ogni parola in un elemento di una variabile array di tipi stringa:
    ss = Split(TextArea1.Text, " ")

' "Sostituiamo" i caratteri della "prima" parola del testo originario, secondo i simboli prescelti dell'Unicode,
' avendo l'accortezza di "rigenerare" lo spazio che prima esisteva con la successiva parola:
     TextArea1.Text = String$(Len(ss[0]), String.Chr(&2219)) & " "
  
' Procediamo a "sostituire" i caratteri per le altre stringhe contenute nei restanti elementi dell'array,
' anche qui avendo l'accortezza di "rigenerare" lo spazio che prima esisteva fra una parola e l'altra.
' Ogni parola, così mutata, sarà aggiunta ad ogni ciclo del "For" al testo della "TextArea":
    For j = 1 To ss.Max
      TextArea1.Text &= String$(Len(ss[j]), String.Chr(&2219)) & " "
    Next

End
Titolo: Re: array di caratteri
Inserito da: vuott - 20 Maggio 2013, 15:56:29
Ti suggerisco di fare un po' di ricerca nel Forum: l'argomento sulle stringhe è stato abbastanza trattato.
Inoltre, puoi consultare la nostra WIKI relativamente sempre alle stringhe e caratteri:
http://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0#Stringhe.2C_caratteri_e_testo

In particolare, per estrapolare dalla stringa i singoli caratteri, puoi dare un'occhiata qui:
http://www.gambas-it.org/wiki/index.php?title=Verifica_%22passo-passo%22_di_ciascun_carattere_in_una_data_stringa
Titolo: Re: array di caratteri
Inserito da: anacleto96 - 20 Maggio 2013, 17:05:06
Gentilissimo!!! ;)

Funziona tutto alla perfezione!

Grazie! :ciao: