PDA

View Full Version : Leggere FILE PARTICOLARI con Visual Basic


leadergl
01-09-2004, 20:39
ciao raga, ho un problema...devo aprire un file in lettura ed immagazinarlo in una variabile...fin qui tutto ok MA.....perchè quando apro il file quello che Visual Basic legge non è UGUALE al file originale??

Posto gli esempi:

Questo è uno spezzone del file originale:

Òꉾ „ýlpq` g¼_ÅÁrý¡¨x÷Cà à œ ¾£? 1

Questo invece è quello che Visual Basic mi legge:

Òꉾ„ýlpq`g¼_ÅÁrý¡¨x÷Cààœ¾£? 1

Praticamente mi ha eliminato quegli "spazi"...l'ho messo tra virgolette perchè non è uno spazio vero e proprio...se apro il file con un editor esadecimale quegli "spazi" hanno valore hex pari a 00, mentre uno spazio normale ha valore 20......

Come risolvo il problema?

Questa è la procedura che uso per leggere il file...HELP

Private Sub cmdApri_Seem_Click()

cdlBrowse.Filter = "SEEM File (.seem)|*.seem"
cdlBrowse.Flags = cdlOFNHideReadOnly
cdlBrowse.InitDir = "C:\"
cdlBrowse.ShowOpen
txt_seem.Text = cdlBrowse.FileName
If cdlBrowse.FileName <> "" Then
Open cdlBrowse.FileName For Input As #1
Line Input #1, sTemp_Seem
Close #1
End If
Text1.Text = sTemp_Seem

End Sub


:confused:

VICIUS
01-09-2004, 21:11
Forse è meglio usare un file aperto in modalità binaria. Ora non ricordo bene come si fa in vb ma penso che Open cdlBrowse.FileName For Binary Input As #1 o qualcosa del genere dovrebbe funzionare.


ciao ;)

leadergl
01-09-2004, 21:19
stavo provando proprio questo MA...

una volta fatto


Open nomefile for binary as #1
Get #1,, variabile
close #1


noto che nella mia variabile non mi salva niente.....come mai?

leadergl
01-09-2004, 21:43
son riuscito a fargli leggere in forma binaria, ma in questo modo appena arriva al primo spazio si ferma e non legge più

non so come fare....help :cry:

leadergl
02-09-2004, 08:22
Aiuto...........vi prego.....è importante....non so k fare....:cry: :mc: :muro:

xegallo
02-09-2004, 10:27
open "file" for binary as #numfile
variabile = space(LOF(numfile))
get #numfile ,, variabile
close #numfile

leadergl
02-09-2004, 10:43
non va.....non mi legge i caratteri NULL.......fa finta che il file li sia finito se lo apro in modalità binaria....

mentre se lo apro normalmente fa finta che quei caratteri NULL non esistano....

se vuoi ti allego il file così capisci meglio cos'è che non va

leadergl
02-09-2004, 20:11
raga mi serve aiuto....mai possibile che nessuno sa come fare???

HELP ... :cry:

matpez??? dove sei???......sei l'unico che può aiutarmi....help please...

BeRsErKeR2600+
03-09-2004, 10:31
... wait
:cool:

BeRsErKeR2600+
03-09-2004, 10:52
eccoti due modi x aprire il file: con una stringa "Str" e con una matrice di bytes "BMatrix"

Dim Str As String
Dim BMatrix() As Byte
Dim nBytes As Long

nBytes = FileLen("file.seem")
Str = Space(nBytes)
ReDim BMatrix(nBytes - 1)
Open "file.seem" For Binary As #1
Open "demofile.txt" For Binary As #2
Get #1, 1, Str
Get #1, 1, BMatrix() 'le parentesi puoi toglierle...
Put #2, 1, Str
Put #2, nBytes + 1, BMatrix()
Close 2
Close 1

OK?:D

leadergl
03-09-2004, 10:54
wow...fico...ora vedo se funge...thanks cmq...;)

leadergl
03-09-2004, 11:19
OTTIMO....sei un grande funziona..........ma se invece di creare un nuovo file io volessi copiare il tutto in una variabile o i una textbox????

BeRsErKeR2600+
03-09-2004, 11:27
hey il prog stampa l'output in un file ma lo riceve in una variabile... quindi puoi usare le variabile Str e BMatrix dove vuoi x farci quel che ti pare!

leadergl
03-09-2004, 11:36
per str non ho problemi...ma come gestisco bmatrix??

per avere il file completo devo fare una cosa del genere:

nomevariabile = nomevariabile & str & bmatrix ???

BeRsErKeR2600+
03-09-2004, 12:24
no, sia str che BMatrix contengono già il file completo, infatti il file demofile, in cui stampo prima l'uno e poi l'altro occupa esattamente il doppio dello spazio e contiene due copie del file originale.

X il file completo con la stringa lo puoi usaredirettamente, per BMatrix devi fare:

dim NewStr 'alla fine conterrà il file intero
for i=1 to nbytes
NewStr=NewStr & chr(BMatrix(i))
next i

se vuoi a sto punto puoi confrontare Str e NewStr, dovrebbero essere identici, contenendo lo stesso file ;)

leadergl
03-09-2004, 13:26
grazie mille...va che è una meraviglia... ;)