Newsgroup: it.comp.lang.visual-basic
Titolo: una piccola domanda

Salve a tutti, volevo sottoporvi una domanda.
Ho notato che in molti codici, anche nel manuale che uso io per imparare
vb6, che in alcune parole viene indicato un segno speciale es. dir$ o i %,
etc,ect, ebbene la domanda sorge spontanea:
a cosa servono?
io credo di sapere che serve ad indicare a visual basic di che genere di
dichiarazione si sta facendo uso, ad esempio  inputbox$ che sta per ricevere
dall'utente una stringa, la cosa che mi fa venire ulteriori dubbi è che
proprio oggi mi sono imbattuto in un piccolo spezzone di codice che vi
riporto sotto
Dim strTime As String
strTime=Time$
if Mid$(lblclock.Caption, 3, 1) = ":" Then
   Mid$(strtime,3,1)=" "
etct etc
come potete vedere il segno $ compare in più parti, quindi ho pensato bene a
togliere il suddetto segno dalle voci Mid. Nell'esecuzione del prog non è
cambiato nulla, ma quando ho tolto il segno dalla voce Time, ho notato che
l'orario anziché comparire con i due punti ( : ) è apparso normale cioè con
un solo punto. Scusa te la banalità della domanda, ma questa cosa non ha
fatto altro che accrescere in me ulteriori dubbi, anche perchè strtime è
stata già dichiarata variabile tipo string, quindi capite il mio dilemma?
Scusate ancora, un grazie a chi mi risponderà

...................
Ciao, giusto ieri hanno risposto a questa domanda.....!!!! Meglio leggere
prima i msg.....oppure cercare su google.
Ti riporto la risposta che e' stata data:
Risposta data ieri:
Non ha alcuna utilità.
E' un retaggio delle vecchissime versioni di VB.
Serviva a far capire a VB che quella var. è una stringa e non un numero.
E' diverso invecie se usato con le _funzioni_ stringa:
Mid() restituisce un Variant(String)
Mid$() restituisce un String, e quindi è più performante.
Ovviamente le variabili devono essere sempre dichiarate, sia che si scelga
di usare
 Dim S as String
che
 Dim S$
Ciao


Grazie per la risposta, hai ragione per la risposta già data, soltato che
non ho avuto propio tempo di leggere i precedenti post, tra l'altro pensando
ad una domanda così banale non pensavo che fosse stata già postata.
Tuttavia, la mia domanda era volta soprattutto per comprendere come mai con
la funzione Time senza il carattere $ , l'orario viene visualizzato con il
punto (.) mentre time$ 12:23:34. E' stato proprio questo il motivo in
particolare che mi ha fatto uscire fuori di melone, o è stato il caldo, bho.
:-)
Ciao e grazie

 particolare che mi ha fatto uscire fuori di melone, o è stato il caldo,
bho.
Per lo stesso motivo per cui Date() e Date$() non sono la stessa cosa.
Come spiegato nel post precedente:
    Date = Variant(Date) ' tipo variant contenente la data
    Date$ = String       ' tipo string contenente la _rappresentazione_ di
una data
Ciao


Ciao, scusami ma non vorrei essere palloso, forse io nel primo post ho
omesso di indicare che sono un principiante...
Tuttavia grazie per la delucidazione.
Il mio dubbio è rimasto lo stesso, mi spiego meglio:
"Io ho provato a visualizzare in quantro label l'oraio Time con e senza il
segno $
stessa cossa con Date
ebbene l'unica cosa che ho notato di differenete è che nell'orario ci sono i
(:)
nella data viene espressa nel seguente formato 01/08/2001 riferito al primo
agosto mentre usando date() 01/08/01
 sempre riferito alla giornata di oggi. Quindi, a parte queste piccole
differenze di formato, non cambia un niente, per quanto rigurada l'orario il
tempo scorre regolarmente in tutti è due i casi uguale all'orologio di
sistema.
A questo punto mi chiedo, è solo una questione di leggibilità del codice,
oppure occupa meno memoria in fase di esecuzione?
Scusa ancora, ma voglio fare chiarezza, altrimento non riesco ad andare
avanti con lo studio.

 Scusa ancora
Nessun problema
Dunque, ripeto: sono 2 (_due_) cose diverse!
Le funzioni che terminano con $ sono delle stringhe! Sono delle parole! Sono
la _rappresentazione_ di un valore!
Presente il famoso quadro con disegnata una pipa e sotto scritto "ça n'est
pas un pipe" (questa non è una pipa).
Lasciando perdere Godel (con la dieresi?) e le sue frasi autoreferenzianti,
il quadro dice il vero: quella _non_ _è_ una pipa: è solo la sua
rappresentazione!
Hai capito?
Non puoi (leggi "non dovresti") usare stringhe per fare altro che
visualizzarle a video (o elaborarle per creare altre stringhe da
visualizzare o elaborare per ...)
Diverso per le funzioni che restituiscono un valore.
Voglio dire, se hai una mela e un quadro con disegnata una mela, non ti
verrebbe mai in mente di dire "ho 2 mele", perchè non è vero.
"1 gennaio 2001" non è e non indica un giorno, esprime solo il concetto di
un giorno.
E' un po' difficile spiegare 'ste robe a chi inizia a programmare con VB.
VB ti fa fare cose tipo (Date() + "123" * 5) & "ciao, come va".
Cosa esce non si sa, però te lo lascia fare.
Ciao


Ok! Grazie per aver avuto la pazienza di spiegarmi il concetto (più o meno
lo avevo capito).
Chiudo, altrimenti arrivo alla fine del libro che sto ancora capendo ste
robe qui. Tuttavia, permettimi di dire un'ultima cosa, (puoi anche non
rispondermi se non vuoi, sò che ti ho già assillato abbastanza) le due cose
sono differenti, e fin qui va bene. Ma se io volessi che in un programma ci
fosse un angolino dove viene indicato un orologio, io nel codice posso usare
sia l'una che l'altra funzione, questo perchè, sebbene l'esempio della mela
e la pipa sia molto esplicativo, un pinco pallino qualsiasi che esegue detto
programma vede che c'è un orologio e bho, non penso che faccia alcuna
differenza sapere come sia stato generato.
Ciao