Newsgroup: it.comp.lang.visual-basic
Titolo: input # e spazi

Salvo una stringa in un file con l'istruzione write#.
Nel file trovo (ad esempio):
"w PLxa. zk)"
Vado poi a leggere questo file con input# e lo spazio tra "Ą" e "č" 
sparisce.
Cerco allora su google, sostituisco input# con line input# ma il 
problema persiste.
Dopo un po' di prove giungo alla conclusione che il fenomeno e' casuale: 
a volte lo spazio sparisce, a volte no.
Ho provato a riaprire il file ed a salvarlo e subito dopo la stringa 
viene letta correttamente.
Qualche indicazione?
grazie
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!

 Qualche indicazione?
Se leggi con Line Input#, perchč non scrivere con Print #?
Anche se formattato (records/linee strutturati a lunghezza fissa)

 
Perche' scrivo con write#  e la guida suggerisce di usare input#
Mistero. Era notte fonda, ma non stavo facendo strani esperimenti, ho 
solo cambiato una stringa in un file e si e' verificato un problema di 
decriptazione (vedi il mio altro post). Partendo da li' provando a 
criptare e decriptare mi sono accorto del fatto che a volte la stringa 
non veniva caricata correttamente.
ciao


 Perche' scrivo con write#  e la guida suggerisce di usare input#
Veramente strano. Non uso la write e la input, ma la cosa mi incuriosisce.
Potresti, senza citare nulla della fase di crittatura, pubblicare un po' di
codice, in particolare quello che esegue la write e la input, magari con una
stringa "precomposta"?

 
Public Type info_mail
     smtpServer As String
     smtpUser As String
     smtpPwd As String
     popServer As String
     popUser As String
     popPwd As String
     mailAddress As String
     ID As Long
End Type
Public Sub GetMailData(ByRef MailData As info_mail)
     Dim percorso As String
     Dim filehandle As Integer
     On Error GoTo GetMailData_Error
     'usa PATH per ottenere il percorso del file contenente la versione
     percorso = App.PATH
     If right(percorso, 1) = "\" Then
         percorso = percorso & "userData.ini"
     Else
         percorso = percorso & "\userData.ini"
     End If
     filehandle = FreeFile
     Open percorso For Input As #filehandle
     Input #filehandle, MailData.smtpServer
     Input #filehandle, MailData.smtpUser
     Input #filehandle, MailData.smtpPwd
     Input #filehandle, MailData.popServer
     Input #filehandle, MailData.popUser
     Input #filehandle, MailData.popPwd
     Input #filehandle, MailData.mailAddress
     Input #filehandle, MailData.ID
     Close filehandle
     Reset
'...
end sub
Public Sub SaveMailData(ByRef MailData As info_mail)
     Dim filehandle As Integer
     Dim percorso As String
     Dim cripta As clsCrypto
     Dim cryptokey As String
     On Error GoTo SaveMailData_Error
     'usa app.PATH per ottenere il percorso del file contenente la versione
     percorso = App.PATH
     If right(percorso, 1) = "\" Then
         percorso = percorso & "userData.ini"
     Else
         percorso = percorso & "\userData.ini"
     End If
     Set cripta = New clsCrypto
     cryptokey = "sitoComune"
     filehandle = FreeFile
     Open percorso For Output As #filehandle
     Write #filehandle, MailData.smtpServer
     Write #filehandle, MailData.smtpUser
     Write #filehandle, cripta.Encrypt(MailData.smtpPwd, cryptokey)
     Write #filehandle, MailData.popServer
     Write #filehandle, MailData.popUser
     Write #filehandle, cripta.Encrypt(MailData.popPwd, cryptokey)
     Write #filehandle, MailData.mailAddress
     Write #filehandle, MailData.ID
     Close filehandle
     Reset
'...
end sub
userdata.ini:
"
spam.it
"
""
""
"
spam.it
"
"emme-x-x"
"w PLxa. zk)"
"
emm...@spam.it
"
0


[*emmexx* = 
emme...@tiscalinet.it
 in
news:cqxIb.17993$
Jw2....@tornado.fastwebnet.it
] ha scritto:
...
Grazie. Ci guarderň, ... ma ... domani
Chiudo baracca, pigio la fichetta stilizzata e vado ad invecchiare, come
voi.
Ultimo, definitivo, globale e sincero buon anno a tutti.

 
Anche a te
	maxx


Qualche indicazione?
Premesso che neanch'io, come Lupo, ho mai usato Write# e Input# (le
trovo inutili e dannose), ho notato che la guida dice che:
---> a proposito di Write:
Multiple expressions can be separated with a space, a semicolon, or a
comma. A space has the same effect as a semicolon.
Questo potrebbe spiegare la "sparizione".
-- 
ciao, hal

 
La sparizione non avviene sul file! Nel file c'e' una riga con scritto:
"A Bcdef"
ma quando vado a leggere quella riga con:
input#1, tmpstr
a volte, dopo la lettura, risulta che tmpstr="ABcdef"!!!
ciao


a volte, dopo la lettura, risulta che tmpstr="ABcdef"!!!
Non ci credo neanche se lo vedo: secondo me fai qualcosa che non dici
o ti sfugge.
Ho appena provato con questo codice stupidissimo, senza gestione
errori, usando il file .ini che hai pubblicato: lo spazio non sparisce
mai.
Option Explicit
Public Sub Main()
    Dim nFile As Integer
    Dim sFile As String
    Dim buffer As String
 
    nFile = FreeFile()
    sFile = App.Path & "\userdata.ini"
    Open sFile For Input As #nFile
    While Not EOF(nFile)
        Input #nFile, buffer
        Debug.Print buffer
    Wend
    Close #nFile
End Sub
-- 
ciao, hal

 o ti sfugge.
Puo' anche essere...
Se mi dai un indirizzo valido ti mando la foto.


Se mi dai un indirizzo valido ti mando la foto.
Lo e' ;-)
-- 
ciao, hal