Newsgroup: it.comp.lang.visual-basic
Titolo: [OT] Testing programma client news

Salve a tutti.
Ho completato una nuova versione del mio programma per leggere le news.
C'e' qualcuno disposto ad usarlo\testarlo\debuggarlo?
Lo trovate qui.
http://digilander.iol.it/battarsa/programmi/leggiminews.html
--
Samuele Battarra
mail server: 
libero.it
account: battarsa

Mhmhmhmhh... Pregiato... A prima vista é veramente molto carino
Senza contare la generosità con cui rendi disponibile anche il codice!
Non ho parole...
            Grazie
                    Allanon

 ha scritto nel messaggio
news:LZDY6.439$8R5....@news.infostrada.it...


Io li vedo i messaggi, ma solo le intestazioni....
Come faccio per scaricare il corpo?
Ciao
Grazie
Oz

 wrote in message
LZDY6.439$8R5....@news.infostrada.it...


 Come faccio per scaricare il corpo?
Opps, mi rispondo da solo, Prima si deve seguire una discussione, poi si
scarica...
Ciao
P.s. Non male...L'elenco me gusta assai.....
Però mi è uscito un errore la prima volta che ho scaricato i mes.
Operation cancelled by user (non ho premuto nulla..) e poi si è chiuso il
pgm...
P.p.s COMPLIMENTI, mi sa che userò questo pgm d'ora in poi, almeno ho un
bell'archivio mdb contenente i messaggi del Ng!!!
Oz

 ha scritto nel messaggio
news:LZDY6.439$8R5....@news.infostrada.it...

Il programma è una figata e lo scaricamento è velocissimo, rispetto a
OE, però ogni volta mi da "Errore di runtime 5. Chiamata di routine o
argomento non valido."
Si sa di cosa si tratta?
ciao
degra

 
Forse avrei dovuto allegare al programma un minimo di "istruzioni".
Comunque questo + o - il funzionamento.
Per prima cosa nella finestra Account memorizzi i dati del server.
Poi dall finestra Elenco gruppi sottoscrivi i newsgroup che ti interessano,
impostandone eventualmente il tipo di sincronizzazione.
Quindi dal menu' gruppi selezioni il gruppo che ti interessa.
A questo punto devi scegliere il comando scarica intesatazioni.
Ti vengono date due possibilità.
1) Scaricare tutte le intestazioni del gruppo presenti sul server.
2) Non scaricare niente, ma segnare l'ultimo messaggio presente sul server
   come ultimo messaggio scaricato, in modo che la prossima volta
   scaricherai solo i messaggi successivi a quello.
Quando hai l'elenco, per visualizzare un messaggio lo selezioni
e premi la barra spaziatrice.
In alternativa puoi segnare il thread come seguito, quindi dargli il
comando scarica messaggi seguiti.
Per segnare il thread come seguito\ignorato, puoi usare le voci nel
menu' messaggi, oppure premere ripetutamente il tasto "/".
Una volta visualizzato il messaggio, premendo Alt + "+" e Alt + "-" e'
possibile cambiare le proporzioni delle due finestre di visualizzazione.
Per scrivere\rispondere a un messaggio, vai sul gruppo in cui effettuare
il post, seleziona il comando nuovo\rispondi.
Andando nella cartella "in uscita" e' possibile modificare\cancellare
i messaggi non ancora inviati.
Per modificare un messaggio selezionalo, quindi seleziona il comando nuovo.
Per cancellare un messaggio selezionalo, quindi premi il tasto "canc".
Ho creato una newsletter per segnalare gli aggiornamenti del programma.
Chi e' interessato a riceverla mi mandi un e-mail (vedi indirizzo
nella firma) con oggetto "[newsletter]".


 
Vedi mia risposta al post originale.


 
Strano, questo non mi era mai capitato.
Ti ha segnalato un codice di errore?
Avevi abilitato il log di connessione? Ci hai dato un'occhiata?


 
Indica un errore di sintassi nel comando inviato al server.
Che server usi?
Prova ad abilitare il log delle connessioni, cosi' da vedere il punto
preciso in cui va in errore.


 Si sa di cosa si tratta?
Se mi dici in che condizioni (ovvero quando) ti da questo errore,
cerchero' di correggere, altrimenti non ci posso far niente.


cerchero' di correggere, altrimenti non ci posso far
niente.
Hai ragione...
L'errore compare appena cerco di interrompere il
download di tutte le intestazioni del ng (perchè 89000 sono troppe...) e al
riavvio, appena caricati tutti i post si verifica lo stesso errore e il
programma termina.
Se interessa il mio sistema è win98se.
ciao
degra
--------------------------------
Inviato via 
http://usenet.iol.it
 

 ha scritto nel messaggio
news:LZDY6.439$8R5....@news.infostrada.it...


L'errore di chiamata di routine non valida si verifica nella routine di
decodifica iso nel punto indicato con >>:
Public Function
DecodificaISO(ByVal Oggetto As String) As String
'Esegue la decodidica di
una stringa formattata
'con lo standard ISO-8859-1
   Dim Prefisso As
String
   Dim Suffisso As String
   Dim Tmp As String
   Dim PosI As
Long
   Dim PosF As Long
   Dim I As Long
   Dim ChrHex As String
PosI = InStr(Oggetto, "=?")
   Do While PosI <> 0
      PosF = InStr(PosI
+ 15, Oggetto, "?=")
      Prefisso = Left$(Oggetto, PosI - 1)
Suffisso = Mid$(Oggetto, PosF + 2)
 >>     Tmp = Mid$(Oggetto, PosI + 2,
PosF - PosI - 2)
      If UCase$(Left$(Tmp, 13)) = "ISO-8859-1?Q?" Then
Tmp = Mid$(Tmp, 14)
         Tmp = Replace(Tmp, "_", " ")
         For I
= 0 To 255
            ChrHex = Hex(I)
            If Len(ChrHex) = 1
Then ChrHex = "0" & ChrHex
            Tmp = Replace(Tmp, "=" & ChrHex,
Chr$(I))
         Next I
         Oggetto = Prefisso & Tmp & Suffisso
PosI = InStr(Oggetto, "=?")
      Else
         'Non so come
decodificare, lascio cosě com'č
         PosI = 0 'Per far terminare il
ciclo
      End If
   Loop
   DecodificaISO = Oggetto
End Function



http://digilander.iol.it/battarsa/programmi/leggiminews.html
Veramente lodevole il fatto di fornire i sorgenti, e il prog. non sembra
niente male.
Però:
1) Un paio di screenshot non sarebbero male.
2) !! Sicuro che la DBGrid sia un componente standard di VB6 e non un
retaggio di VB5?
    Io non ce l'ho proprio installato, per cui mi va in runtime-error!
3) Nota marginale: Perchè non hai usato ADO?
Ciao

 
In VB esistono due versioni della griglia dati, una per l'utilizzo con
ADO e una per l'utilizzo con DAO.
In VB6 viene installata solo quella per ADO, in quanto quella per DAO viene
considerata un vecchi componente di VB5.
Comunque nel CD di visual studio c'e' anche l'altra nascosta da qualche parte.


 3) Nota marginale: Perchè non hai usato ADO?
Perche' quando iniziai a programmare ADO non c'e' l'avevo.
Poi ho continuato a usare DAO per sfruttare il codice gia' scritto.


Samuele Battarra ha scritto nel messaggio
[snip]
Ok, funziona.
Notevole, veramente.
Ora veniamo al test.
Mancano ancora un mucchio di facilities.
Es.: menu contestuali, ordinamento dei messaggi, lo scaricamento dei
messaggi avviene in modo frustrante (con la barra, ma almeno documentarlo
:P) e altre piccole finezze che possono essere aggiunte.
Poi, il fatto che sia scritto in VB6 con componenti di versioni precedenti
mi lascia un po' perplesso.
Un po' meno il problema ADO/DAO, che (per ora) è solo una questione di
gusti.
Migliorabile, ma le basi per un ottimo prodotto ci sono tutte.
P.S.: accetti aiuti esterni?
Ciao

 
Allora ho capito, si tratta di un messaggio in cui oggetto o autore
sono codificati in un modo che non viene riconosciuto.
Cerco di rimediare.
Non e' che, visto che hai individuato il punto dell'errore, mi sai
dire cosa conteneva la variabile Oggetto in quel punto e all'inizio
della funzione?


 
Ciao


 ha scritto nel messaggio
news:wikZ6.22531$8R5.5...@news.infostrada.it...


 
potresti mandarmi il log delle connessioni, cosi' posso capire dove sta'
l'errore.


 preciso in cui va in errore.
Magari!!  non mi tiene memorizzato il check sulle opzioni.
Ciao.
Paolo.


 Magari!!  non mi tiene memorizzato il check sulle opzioni.
L'impostazione viene memorizzata nel registro.
Se non te lo tiene memorizzato vul dire che non ne hai accesso.



Comunque se scarichi i sorgenti non ci vuol niente a disabilitare il controllo sulla
chiave rendendo l'attivazione del log permanente.
Il problema è che se non hai accesso al registro non funziona nemmeno la funzione
GetTimeBias, per cui devi modificarla in modo che restituisca un valore costante,
altrimenti non potrai vedere niente.



Comunque se scarichi i sorgenti non ci vuol niente a disabilitare il controllo sulla
chiave rendendo l'attivazione del log permanente.
Il problema è che se non hai accesso al registro non funziona nemmeno la funzione
GetTimeBias, per cui devi modificarla in modo che restituisca un valore costante,
altrimenti non potrai vedere niente.
--



Comunque se scarichi i sorgenti non ci vuol niente a disabilitare il controllo sulla
chiave rendendo l'attivazione del log permanente.
Il problema è che se non hai accesso al registro non funziona nemmeno la funzione
GetTimeBias, per cui devi modificarla in modo che restituisca un valore costante,
altrimenti non potrai vedere niente.
--



Comunque se scarichi i sorgenti non ci vuol niente a disabilitare il controllo sulla
chiave rendendo l'attivazione del log permanente.
Il problema è che se non hai accesso al registro non funziona nemmeno la funzione
GetTimeBias, per cui devi modificarla in modo che restituisca un valore costante,
altrimenti non potrai vedere niente.
--


 ha scritto nel messaggio
news:h0oZ6.23914$8R5.6...@news.infostrada.it...


 
Il problema e' che il programma per funzionare ha bisogno di poter
accedere in lettura alla chiave di registro
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation
e in lettura/scrittura/creazione alla chiave
HKEY_CURRENT_USER\Software\News Navigator
Se quest'ultima non puo' venir scritta, il prog. non riesce a memorizzare
le impostazioni, come ad esempio l'abilitazione del log.
La prima chiave viene utilizzata dalla funzione TimeBias, che restituisce
lo sfasamento orario dovuto al fuso e all'ora legale.
Se non puo' essere letta da l'errore di runtime da te descritto.
Possibili soluzioni
1)
Sei hai la possibilita' di autorizzare l'accesso alle chiavi di registro,
fallo, e' la via piu' semplice.
2)
Per quanto riguarda le impostazioni, posso memorizzarle altrove
(ad esempio nel db). Per la funzione TimeBias, una soluzione temporanea
puo' essere modificarla in modo che se non riesce a leggere la chiave
di registro restituisce -120, il valore dello sfasamento attuale il Italia.
Per una soluzione definitiva bisonga trovare un altro metodo di 
implementare tale funzione. Al riguardo ho inviato un richiesta in un nuovo thread.
-- 
Samuele Battarra
account: battarsa
mail server: 
libero.it

Ho scritto un programma(quello riportato nella firma) che per funzionare ha bisogno delle
informazioni sulla TimeZone.
Inizialmente ho provato ad utilizzare le aposite API per leggerle, ma queste (sotto win98)
mi davano dei valori sballati.
Ho risolto andando a leggere direttamente i valori nella chiave
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation
Purtroppo sotto win2000 l'accesso a tale chiave non e' consentito.
Non potendo cambiare tale accesso, come si puo' risolvere?
--
Samuele Battarra
mail server: 
libero.it
account: battarsa
provate il mio newsreader
http://digilander.iol.it/battarsa/programmi/leggiminews.html

Ho scritto un programma(quello riportato nella firma) che per funzionare ha bisogno delle
informazioni sulla TimeZone.
Inizialmente ho provato ad utilizzare le aposite API per leggerle, ma queste (sotto win98)
mi davano dei valori sballati.
Ho risolto andando a leggere direttamente i valori nella chiave
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation
Purtroppo sotto win2000 l'accesso a tale chiave non e' consentito.
Non potendo cambiare tale accesso, come si puo' risolvere?
--
Samuele Battarra
mail server: 
libero.it
account: battarsa
provate il mio newsreader
http://digilander.iol.it/battarsa/programmi/leggiminews.html

Ho scritto un programma(quello riportato nella firma) che per funzionare ha bisogno delle
informazioni sulla TimeZone.
Inizialmente ho provato ad utilizzare le aposite API per leggerle, ma queste (sotto win98)
mi davano dei valori sballati.
Ho risolto andando a leggere direttamente i valori nella chiave
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation
Purtroppo sotto win2000 l'accesso a tale chiave non e' consentito.
Non potendo cambiare tale accesso, come si puo' risolvere?
--
Samuele Battarra
mail server: 
libero.it
account: battarsa
provate il mio newsreader
http://digilander.iol.it/battarsa/programmi/leggiminews.html



 ha scritto nel messaggio news:9h72j2$50r$1...@newsfeed.cineca.it...


Non potendo cambiare tale accesso, come si puo' risolvere?
Dico una sciocchezza.
Non è sufficente usare lo stesso sistema usato per avere i privilegi di fare
lo shutdown di NT?
Se fosse così c'è un esempietto su msdn che utilizza la
AdjustTokenPrivilegies() (se non mi sbaglio sul nome)
Ciao


No, però aprendo il db delle news, ho letto gli ID delle intestazioni
codificati e quello del primo messaggio cominciava col carattere "%" ed
era l'unico. Può essere quello il problema?
ciao
degra


anche a me dà lo stesso problema: non scsrica le intestazioni con win2k
e l'accesso al registro ce l'ho, mentre col 98 dà l'errore di cui ho
scritto prima, solo se si scaricano tutti i post, mentre se si parte da
0 li aggiunge tranquillamente
ciao
degra

 Zanna ha scritto:


 ha scritto nel messaggio
news:G0KZ6.677$Wg4.9...@news.edisontel.com...


Zanna ha scritto:

Ci guardero', grazie!
-- 
Samuele Battarra
mail server: 
libero.it
account: battarsa
Prova il mio newsreader:
http://digilander.iol.it/battarsa/programmi/leggiminews.html

 --
L'ora sbagliata e' dovuta al fatto che ho cercato di rimediare
a mano all'errore. Solo che mi sono sbagliato, ho messo uno
sfasamento di -2 ore anziche' di +2. Comunque il problema rimane.
-- 
Samuele Battarra
mail server: 
libero.it
account: battarsa
Prova il mio newsreader:
http://digilander.iol.it/battarsa/programmi/leggiminews.html

 
No, non centrano gli ID (che tra l'altro non sono codificati,
sono cosi' e basta).
Il problema e' con i campi Oggetto e Autore.
Talvolta puo' capitare di trovare come oggetto, ad esempio,
"=?iso-8859-1?Q?Re=3A=20Re=3A=20Screentoclient=20e=20affini?="
In questo caso la sub DecodificaISO si occupa di trasformare
la stringa in un piu' leggibile:
"Re: Re: Screentoclient e affini"
Nel tuo DB c'e' un qualche messaggio che non riconosce.
Per scovarlo fai cosi'.
Avvia il debug, come hai gia' fatto per trovare il punto
dell'errore.
Quindi apri la finestra delle variabili locali per vedere
cosa contiene la variabile oggetto.
-- 
Samuele Battarra
mail server: 
libero.it
account: battarsa
Prova il mio newsreader:
http://digilander.iol.it/battarsa/programmi/leggiminews.html

 
No, non centrano gli ID (che tra l'altro non sono codificati,
sono cosi' e basta).
Il problema e' con i campi Oggetto e Autore.
Talvolta puo' capitare di trovare come oggetto, ad esempio,
"=?iso-8859-1?Q?Re=3A=20Re=3A=20Screentoclient=20e=20affini?="
In questo caso la sub DecodificaISO si occupa di trasformare
la stringa in un piu' leggibile:
"Re: Re: Screentoclient e affini"
Nel tuo DB c'e' un qualche messaggio che non riconosce.
Per scovarlo fai cosi'.
Avvia il debug, come hai gia' fatto per trovare il punto
dell'errore.
Quindi apri la finestra delle variabili locali per vedere
cosa contiene la variabile oggetto.
-- 
Samuele Battarra
mail server: 
libero.it
account: battarsa
Prova il mio newsreader:
http://digilander.iol.it/battarsa/programmi/leggiminews.html


Il problema č che con windows 2000 non riesco piů ad aprire il programma
e fargli scaricare i messaggi (il db l'ho vuotato).
degra

 2742    56  Xref: 
news.infostrada.it
it.comp.lang.visual-basic:83184
per tutti i 90000 post del ng
degra

 
Questo conferma la mia diagnosi di prima.
Si tratta di un post che gli da fastidio, infatti se parti da 0
questo non viene scaricato e il problema non compare.
Per correggere l'errore dovrei pero' poter vedere come
e' fatto questo post.
-- 
Samuele Battarra
mail server: 
libero.it
account: battarsa
Prova il mio newsreader:
http://digilander.iol.it/battarsa/programmi/leggiminews.html

 alcune funzioni sicuramente molto utili per un programma come il tuo...
L'ho notato. Pero' ora voglio concentrare l'attenzione alla
correzione dei bug. Per gli abbellimenti c'e' tempo.


 
La funzione esiste solo per NT!
Se la uso faccio funzionare il prg sotto winNT/2000 (forse)
ma non funziona piu' sotto win95/98!


degra ha scritto:

Ora è tutto chiaro. Il server restituisce degli header con
dei campi mancanti.
Ora che so quali campi sono, posso correggere l'errore.
La nuova versione, corretta, sara' disponibile verso meta' settimana.
-- 
Samuele Battarra
mail server: 
libero.it
account: battarsa
prova il mio newsreader:
http://digilander.iol.it/battarsa/programmi/leggiminews.html

ma non funziona piu' sotto win95/98!
Ovvio!
Sotto 9x non ci sono problemi di privilegi.
Devi controllare se il sistema č un 9x o un NT/2000.
Esistono altre api per fare questo, ma qui cedo la parola a chi ne sa di
piů.
Ciao

 Ora è tutto chiaro.
Ho parlato troppo presto.
Ok, dammi un po' di info che faccio un po' di test.
Mi serve sapere:
sistema operativo
server a cui ti colleghi
gruppo di cui scarichi le intestazioni



win98se (errore di runtime 5)
win2000 profesional (ignora i messaggi)
server:  
news.libero.it
ng:  it.comp.lang.visual-basic
se vuoi mandarmi del codice come ho letto nel post piů sotto, fallo pure
all'indirizzo che c'č nel post
ciao
degra