Newsgroup: it.comp.lang.visual-basic
Titolo: Vero o True ? NON CI POSSO CREDERE!!!!!!!!

Allora, sentite questa:
Ambiente di sviluppo VB5,
salviamo un parametro di configurazione di tipo booleano,
dim stato as boolean
 stato = true
tipo: SaveSetting App.Title, "Varie", "statoflag", stato
risultato:  nel registro di configurazione viene messa una chiave con
valore "Vero"
poi lo rileggiamo
stato= Getsetting(App.Title, "Varie", "statoflag")
risultato: 
 	stato= "Vero"
tutto bene.
OK,
compiliamo il programma e lanciamolo senza ambiente di sviluppo:
Risultato di savesetting: nel registro di configurazione viene messa una
chiave con valore "True"
SE e dico SE
l'ultimo savesetting era stato fatto dall'ambiente di sviluppo
IL RISULTATO della getsetting sara'un bellissimo errore, perche'siccome era
stato salvato "Vero" ma il programma compilato vuole "True" quello che
riceve e'un tipo stringa e non un tipo Boolean
Morale: VB si comporta in modi diversi se compilato o in ambiente di
sviluppo
Commenti?
-- 
h...@nospam.it
Per inviare posta sostituire fastnet a nospam
To send e-mail please change nospam with fastnet

Beh, se questo è uno leggiti questo se hai coraggio...
Un bel giorno mi installo VB5 Enterprise con l'SP3, lavoro per un progetto
gestionale con tale ambiente di sviluppo e naturalmente usando l'IDE va
tutto (o quasi) bene, nel frattempo installo IE4 e il fantomatico Active
Desktop e tutto continua (sempre con l'IDE) a funzionare.
A un certo punto dobbiamo fare l'installazione test e quindi bisogna
generare l'eseguibile, intanto niente ottimizzazioni, una passatina e via
col setup (ho usato il Setup Wizard di Visual Basic 5.0) compilo
tranquillamente, nessun problema, genero il setup e lo provo su una macchina
vergine...
Lanciato il programma mi si genera un "Unespected Error"...
Controllo il programma di Setup, le dipendenze delle librerie, i registry
delle varie macchine ecc... ma niente, tutto sembra regolare, allora
disinstallo e reinstallo a mano il tutto, passandomi libreria per libreria,
controllando la versione, ma ancora questo fantomatico "Unespected Error"
viene fuori.
Ricompilo il tutto (forse un errore di disco), ma niente, continua a darmi
questo errore.
Dopo tutta una serie di prove e di controlli, decido prima di buttarmi giù
da un ponte (prima VB, poi il PC, poi io) di ricompilare il tutto su una
macchina dove c'è solamente Office97 e VB5, compilo, faccio il setup,
installo e miracolo funziona!
Allora voglio vederci chiaro, inizio a togliere un po' di applicazioni a
cominciare da IE4, l'ultima applicazione installata, e proprio dopo che l'ho
disinstallata assieme all'Active Desktop, il programma compilato non ha più
generato quell'errore, chissà perchè?
Saluti
Longo Daniele
Riccardo ha scritto nel messaggio <01bda362$f1c9d220$dfa09384@Chiba>...


Anche a me all'improvviso il computer ha iniziato a dare Errore inaspettato
dopo qualsiasi lancio di exe scritto in vb. Dopo aver disinstallato anche
gesů cristo non mi č rimasto che formattare tutto.
Bho!
Microsoft potrebbe pensare a dei msg d'errore piů chiari.....




1 è, perciò l'errore non dovrebbe verificarsi.
E aggiungo che naturalmente VB la traduzione la fa in inglese: il msgbox
dice "True", ma appunto internamente è 1.
Domenico

...

Non solo, anche piů pertinenti, con l'IDE alcune volte mi ha generato degli
errori che in fase di soluzione erano di altra natura, che forse alla
Microsoft sia sfuggita di mano la situazione? O č la logica del Busi-ness di
casa Microsoft?
Ciao
Daniele Longo

E se provassi a convertire la parola in numero (0 o 1)?? Cambierebbe?
Ciao
Luca

 
Piccolissima correzione, in VB True=-1
-- 
Hi, Ciao
Ettore                 By -MES-
http://www.aspide.it/freeweb/ilmes
Il sito comune di programmatori VB
http://members.xoom.com/it_lang_vb

Piccolissima correzione, in VB True=-1
Verissimo. Mi sono confuso col C++, in cui TRUE = 1.
Domenico

 davvero da ridere.
Purtroppo e' tutto vero...
Personalmente ho risolto il problema convertendo i boolean in interi (0 e
-1) e viceversa nelle operazioni di lettura/scrittura dal/sul registry.
Che si tratti di un bug di VB lo si può constatare installando lo stesso
programma su macchine con Win versione inglese, dove il problema non si
verifica.
Probabilmente il difetto è così facilmente (anche se poco elegantemente)
risolvibile che non ha mai suscitato particolare scalpore.
E sottolineo che nei paesi di lingua anglosassone (e quindi anche negli
States, patria di MS) il problema non si verifica.
Saluti
PG




Ti consiglio di costrurirti una libreria tua e non usare le funzioni di
registro di VB.

 Daniele Longo
Immagino tu voglia parlare di bug-siness
ema
-- 
------------------------------------------------------
Emanuele Quinto
D.I.I.A.R. Politecnico di Milano
Phone:     +39 2 23996432
InterNet:  
qui...@amb1.amb.polimi.it
 
qui...@italymail.com
WWW:       
http://www.geocities.com/SoHo/Studios/2269/
 
           Sometimes you can only find something 
               by losing it
------------------------------------------------------

 
Io MI consiglierei di passare a C++, almeno ho un buon motivo per
costruirmi le librerie
 

...

Negativo....
In C/C++, Delphi e, probabilmente anche VB:
FALSE = 0
TRUE = not FALSE (ossia qualsiasi numero diverso da 0)
Roal Zanazzi
z...@iol.it

 TRUE = not FALSE (ossia qualsiasi numero diverso da 0)
Bhe... A pignoleria anche tu (come me) non scherzi  :-))
Comunque si parlava di 'True' e se fai Debug.print True ti da -1.
Ovviamente il fatto che VERO e' qualsiasi numero diverso da 0
e' Verissimo.
Salutoni
-- 
Hi, Ciao
Ettore                 By -MES-
http://freeweb.aspide.it/freeweb/ilmes
