Newsgroup: it.comp.lang.visual-basic
Titolo: Domanda strana .. :)

[CODICE]
   Dim buffer_size As Long
     buffer_size = 4096 'Setto il buffer di lettura
     Dim byte_letti() As Byte
     Dim conta_byte_letti As Long
     Open App.Path + "\esempio.txt" For Binary As #1 ' File originale
     Open App.Path + "\esempio_copia.txt" For Binary As #2 ' file copia
     conta_byte_letti = 0
     Do
         If LOF(1) > (conta_byte_letti + buffer_size) Then
             ReDim byte_letti(buffer_size) As Byte
             conta_byte_letti = conta_byte_letti + buffer_size
         Else
             ReDim byte_letti(LOF(1) - conta_byte_letti) As Byte
             conta_byte_letti = conta_byte_letti + (LOF(1) - 
conta_byte_letti)
             MsgBox UBound(byte_letti)
         End If
         Get #1, , byte_letti
         Put #2, , byte_letti
         ' Uscita
         If conta_byte_letti = LOF(1) Then Exit Do
     Loop
     Close #2, #1
     MsgBox "fine"
[/CODICE]
Questo pezzo di un semplicissimo codice che copia un file ha un 
comportamento strano ..
il file esempio.txt che al suo interno ha una semplice stringa e pesa 
20k quando fa la copia il file copiato miracolosamente pesa 21k ???
qualcuno saprebbe dirmi il motivo di questo mistero ..
Ammetto di essere alquanto stanco :°(
Grazie
--
[CapoBecchino]

 ...


[CapoBecchino] ha scritto:
(snip)
Ma non esiste un modo più semplice per copiare un file?
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

"[CapoBecchino]" <capoNOb...@hotSPAMmail.com> ha scritto nel messaggio news:p1aze.6849$b93....@tornado.fastwebnet.it...

c'è un errore in effetti subdolo,
non consideri che l'array parte da zero,
quindi per ogni ciclo appendi un byte blank in più
per un totale di 5 blank
20000 -> 20005

 ha scritto nel 
messaggio news:dajcea$q5b$1...@news.newsland.it...


 Esiste FileCopy (src,dst) che è una funzione built-in di vb!
Credo proprio fosse una domanda retorica...
Già che ci siamo Andrea, impara a quotare per favore. =)
Lokar

 
Ma in verità avevo pensato anche a questo .. ma non riesco a farmene una 
ragione .. in quanto se io dichiaro il mio array di n elementi .. quindi 
lui leggerà n elementi o sbaglio e nel mio caso se io ho dichiarato che 
la sua dimensione è 20 quindi lui leggerà semplicemente 20 byte e 
dovrebbe scrivere i 20 byte che ha letto .. quindi perchè sbaglia .. ???
--
[CapoBecchino]

 [...]


 Ma non esiste un modo più semplice per copiare un file?
Certo che esiste .. ma dovevo effettuare alcune operazioni sui bit di un 
file e avevo notato questo errore e quindi mi ero ricreato questo 
codicino per poterlo testare .. :D ed in effetti avevo ragione ..;)
--
[CapoBecchino]

> 20000 -> 20005
A meno di avere Option Base 1 (deprecato) l'istruzione:
Redim myArray(100) As Byte
ridimensionera' l'array da 0 a 100, ovvero 101 byte, che e' l'errore 
subdolo che indicava per l'appunto salclem2.
Nel tuo caso dimensioni l'array a 4097 e poi ne leggi 4096.
hth,
Lokar
P.S. La punteggiatura si legge. Per favore usala con criterio.
-- 
Sito Comune: 
http://www.it-lang-vb.net/
Manifesto: 
http://www.it-lang-vb.net/docs
­/Manifesto.txt
Statuto: 
http://www.it-lang-vb.net/docs
­/Statuto.txt
UGIdotNET - 
http://www.ugidotnet.org

Perchè in vb nella dichiarazione dell'array definisci
il limite massimo (ubound) dell'array, non la dimensione
dello stesso come in c.
Se tu fai
Dim test(10) as integer
Stai creando un array da 0 a 10, non di 10 elementi.
Per cambiare la base di partenza degli array puoi sempre fare:
Dim test(1 to 10) as integer
oppure:
Option Base 1
Dim test(10)
che fa sempre un array da 1 a 10.
Andrea Fontana
www.e-nuts.net
"[CapoBecchino]" <capoNOb...@hotSPAMmail.com> ha scritto nel messaggio 
news:XFaze.7014$b93....@tornado.fastwebnet.it...


 dall'utente medio...
Beh, Sergio NON e' un utente medio =)
Lokar
-- 
R. Perche' incasina l'ordine con cui la gente legge normalmente.
D. Perche' il top posting e' cosi' antipatico? 

 D. Perche' il top posting e' cosi' antipatico?
Non ho intenzione di andare avanti molto con questa discussione :-)
Comunque il termine "utente medio" non era riferito nè a Sergio nè a
nessuno in particolare, ma a un utente medio che legge questo
newsgroup. Forse mi sbaglio e tutti gli utenti del newsgroup sanno
a cosa servono quelle funzioni :) In tal caso avrò sprecato qualche
kb di banda e minuto di tempo!
Andrea Fontana
www.e-nuts.net

 ha scritto nel 
messaggio news:pLaze.4690$tX6....@twister1.libero.it...
Ehm... scusate l'OT ....Non centra un niente , perň giusto per sapere...... 
sei mica di Torino? conosco una persona con il tuo stesso nome-cognome.
Saluti. 

 ha scritto nel messaggio 
news:dalfr4$7j8$1...@news.ngi.it...
