Innanzitutto colgo l'occasione di questo nuovo Topic per ringraziare in particolar modo piercing e poi tutti gli altri che hanno risposto in maniera assai interessante ai miei topics precedenti.
Vi pongo un altro problema che mi è sorto, programmando una piccola applicazione ad uso personale in VB Script.
Si tratta, in sostanza, di un semplice programmino che mi permette di salvare in un file di testo i messaggi SMS che desidero conservare. Vorrei implementare la funzione "Messaggio del giorno...". Ovvero, attraverso la generazione di un numero casuale, far sì che appaia in un MSGBOX il messaggio con quel numero di indice.
Per questo ho scritto il seguente codice:
- Codice: Seleziona tutto
origine="c:\sms.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set OggFile = fso.GetFile (origine)
Set OggTextStream = OggFile.OpenAsTextStream(1)
msgoggi = Int((176 - 1 + 1) * Rnd + 1)
Set OggTextStream = OggFile.OpenAsTextStream(1)
ok = 0
do while ok = 0
linea = OggTextStream.ReadLine
if linea = "#" then
numeromsg = numeromsg + 1
if numeromsg = msgoggi then
do while not riga = "#"
riga = oggtextstream.readline
if riga <> "#" then
messaggio = messaggio & riga & vbcrlf
end if
loop
ok = 1
end if
end if
loop
msgbox messaggio, 64, "Messaggio del giorno..."
oggtextstream.close
Sicuramente vi sono delle ridondanze che si possono perfezionare, ma il punto non è questo. Il codice funziona perfettamente se inserito in un VBS a sè stante che fa comparire il MSGBOX in questione e poi si termina. Compaiono invece dei problemi se lo immetto nel codice dell'applicazione. Ovvero l'operazione viene eseguita correttamente la prima volta che viene richiesta. Se poi si riprova a cercare un altro messaggio casuale (il VBS non viene ovviamente terminato), ecco che viene ripetuto lo stesso di prima. Se infine lo si fa per la terza volta, viene dato l'errore "Input oltre la fine del file."
Perchè? Il file viene chiuso ogni volta che viene aperto per ricercare il messaggio, dunque perchè il puntatore non torna all'inizio dello stesso?
Mi scuso per la lunghezza del post e ringrazio fin d'ora chi avrà la pazienza di leggermi e rispondermi!
Ciao!