Newsgroup: it.comp.lang.visual-basic
Titolo: Copia binaria

Salve a tutti, sto cercando di realizzare un programma per splittare un file
in 3 parti incontrando però diversi probelmi.
Di seguito qualche porzione di codice:
Per prima cosa apro il file di origine
-Open "FileSrc" For Binary Access Read As #1
poi lo metto in un array di byte
- ReDim bytSrc(lof(1))
- Get #1, , bytSrc
poi copio con un for byte per byte il primo terzo,il secondo terzo ed il
terzo dell'array source in un'altro di appoggio
salvandolo con la seguente istruzione
- Open "split1" For Binary Access Write As #2
- Put #2, , bytTgt
- Close #2
....cosi il 2° ed il 3° terzo.
Quando vado a ricompattare con la stessa logica i tre file sembra che abbia
un file diverso da quello di origine.
Io ho provato con un .doc, cercando di aprire il secondo file word mi dice
formato non valido.
Spero qualcuno mi possa aiutare.
Grazie.
--------------------------------
Inviato via 
http://usenet.libero.it

 Grazie.
Non me ne intendo molto ma probabilmente devi fare in Append mode.
O meglio, scrivere il file composto da tre parti senza mai chiuderlo.
Quindi scrivendo tutte le parti(3) tutte di seguito..
Ciao :)

 ha scritto nel messaggio
news:195Z223Z91Z133Y...@usenet.libero.it...


 ....cosi il 2° ed il 3° terzo.
Se fai una open/close ad ogni byte oltre ad andare a scrivere sempre sul
primo byte (non specifichi la posizione) il tuo programma sarà un bradipo.
Per me ti conviene aprire tutti e tre i file di destinazione e fare le 3 put
consecutive
incrementando il contatore per l'array di partenza.
Ciao
--
Math Parser : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net

 in 3 parti...
Prova cosě:
Sub TiSpiezzoInTre()
   Dim UnByte As Byte
 
   fOut1 = FreeFile
   Open "Out1.txt" For Output As fOut1
   Close fOut1
   fOut2 = FreeFile
   Open "Out2.txt" For Output As fOut2
   Close fOut2
   fOut3 = FreeFile
   Open "Out3.txt" For Output As fOut3
   Close fOut3
 
   fInput = FreeFile
   Open "input.txt" For Binary As fInput
   fOut1 = FreeFile
   Open "Out1.txt" For Binary As fOut1
   fOut2 = FreeFile
   Open "Out2.txt" For Binary As fOut2
   fOut3 = FreeFile
   Open "Out3.txt" For Binary As fOut3
   Do
      Get #fInput, , UnByte
      If Not EOF(fInput) Then
         Put #fOut1, , UnByte
         Get #fInput, , UnByte
         If Not EOF(fInput) Then
            Put #fOut2, , UnByte
            Get #fInput, , UnByte
            If Not EOF(fInput) Then
               Put #fOut3, , UnByte
            Else
               Exit Do
            End If
         Else
            Exit Do
         End If
      Else
         Exit Do
      End If
   Loop
   Close fInput
   Close fOut1
   Close fOut2
   Close fOut3
End Sub
-- 
Ciao, Mauro CB

salve ho provato a seguire i vostri consigli ma purtroppo sembra che quando
io vado a riunire i tre files il risultante sia diverso dall'originale.
A me serve di spostare la SP1 di XP (130M) tra due pc che non sono in rete,
avendo a disposizione una chiavetta USB da 64.
A queto punto volendo cambiare strada ho provato ad usare Makecab.exe per
creare 3 files .cab, perň ho ancora problemi,pensavo che scrivendo :
makecab /d MaxDiskSize=50 xpsp1_it_x86.exe
mi creasse piů files al max da 50M e invece niente mi crea un unico file
.cab che non posso mettere sulla chiave.
Prima di smontare l'harddisk e metterlo sull'altro pc che potrei provare????
grazie.


Prima di smontare l'harddisk e metterlo sull'altro pc che potrei provare????
Questa sarebbe la soluzione piu' veloce, ma, se non puoi farlo,
scaricati il windows commander, che ha, fra le tante opzioni, anche
quella di split dei file.
-- 
ciao, hal

 provare???? grazie.
WINRAR.
www.rarsoft.com
Permette di fare lo span dell'archivio (dividerlo in piu' file, della
grandezza che vuoi tu.)
Ciao, Pascal