Newsgroup: it.comp.lang.visual-basic
Titolo: Zippare su floppy

Devo zippare un file tramite codice e fin qui tutto bene ma come posso
zipparlo sul floppy e gestire il multiple disk spanning?

Devo zippare un file tramite codice, e fin qui tutto bene, ma non so come
gestire il multiple disk spanning se lo zippo su floppy. Qualcuno può darmi
qualche suggerimento?

Devo zippare un file tramite codice, e finchè è su hard disk tutto bene, ma
non so gestire il multiple disk spanning su floppy. Qualcuno mi sa aiutare?
Grazie.


Per zippare e gestire il multiple disk spanning con pkzip puoi usare il
comando pkzip -& a:\nomefile.zip c:\nomefiledazippare.doc e ti sarà chiesto
d'inserire i dischetti successivi se ce ne fosse bisogno.
Ciao Roberto - Syd

 zipparlo sul floppy e gestire il multiple disk spanning?
Cosa intendi per "zippare da codice"?
Usi un componente per il zip o ti appoggi a programmi esterni (es. pkzip o
winzip)???
Sii più chiaro!
CiaoZ
SebaMix

 zipparlo sul floppy e gestire il multiple disk spanning?
Una possibile soluzione potrebbe essere quella di creare lo Zip sull'Hard
Disk e poi dividerlo su più dischetti utilizzando queste due funzioni,
trovate su una rivista:
Static Function SplitUpFile(strFile As String, lngMaxSize As Long)
    Dim intX As Integer, strRoot As String, strExt As String, intHSource As
Integer, _
        intHDest As Integer, lngSourceLen As Long, intDest As Integer,
lngLenght As Long, _
        intRes As Integer, intHBat As Integer, lngDestCount As Long
    Dim strBat As String
    intX = InStr(Right(strFile, 4), ".")
    strExt = Right(strFile, 4 - intX)
    strRoot = Left(strFile, Len(strFile) - Len(strExt))
    intHSource = FreeFile
    Open strRoot & strExt For Binary As #intHSource
    lngSourceLen = LOF(intHSource)
    If lngSourceLen <= lngMaxSize Then
        SplitUpFile = 999
        Close #intHSource
        Exit Function
    End If
    lngDestCount = 1 + lngSourceLen \ lngMaxSize
    intHBat = FreeFile
    Open strRoot & "Bat" For Output As #intHBat
    For intDest = 1 To lngDestCount
        intHDest = FreeFile
        Open strRoot & Right("000" & Trim(Str(intDest)), 3) For Binary As
#intHDest
        If intDest = lngDestCount Then
            lngLenght = lngSourceLen Mod lngMaxSize
        Else
            lngLenght = lngMaxSize
        End If
        Err = 0
        intRes = CopyFile(intHSource, intHDest, lngLenght)
        If intRes <> 0 Then
            MsgBox "Errore in copia n°.:" & Error(Err), 16
            Close #intHSource
            Close #intHBat
            Close #intHDest
            Exit For
        End If
        Close #intHDest
        If intDest = 1 Then
            strBat = "copy " & strRoot & Right("000" & Trim(Str(intDest)),
3) & " /b "
        Else
            strBat = strBat & "+ " & strRoot & Right("000" &
Trim(Str(intDest)), _
                3) & " /b "
        End If
    Next
    strBat = strBat & strFile
    Print #intHBat, strBat
    Close #intHBat
    Close #intHSource
    SplitUpFile = Err
End Function
Static Function CopyFile(intHSource As Integer, intHDest As Integer,
lngLenght As Long)
    Dim BlockSize As Integer, Buffer As String, Blocks As Integer, _
        LastBlockSize As Integer, Block As Integer
    On Local Error Resume Next
    BlockSize = 8192
    Buffer = Space(BlockSize)
    Blocks = (lngLenght \ BlockSize) + 1
    LastBlockSize = lngLenght Mod BlockSize
    Err = 0
    For Block = 1 To Blocks
        If Block = Blocks Then Buffer = Space(LastBlockSize)
        Get #intHSource, , Buffer
        Put #intHDest, , Buffer
    Next
    CopyFile = Err
End Function
Altre soluzioni le puoi trovare sul sito comune.
Ciao!
--
Esteban
Hosted by 
www.seber.it
(Remove nonspammare for reply)