Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [vb6] copia di file...non riesce

    Ciao a tutti,
    non riesco a copiare due file attraverso questo codice :

    Open "c:\temp.gif" For Input As #1
    Do Until EOF(1)
    Line Input #1, freader
    Winsock1.SendData freader
    Loop
    Close #1

    che dovrebbe consentirmi di prendere i bit dal primo e ricopiarli nel secondo.
    Qual' è il problema ?
    La copia avvine ma l' immagine poi non funge...

    Ho provato anche in modalità binaria, stessa cosa !
    flussocontinuo :-)

  2. #2
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, ci sono diversi modi, uno dei quali è questo:
    codice:
    Private Sub CopiaFile()
       Dim byteTotali As Long
       Dim byteDati As String
       Dim readByte As Long
       Open App.Path & "\copia.gif" For Binary As #2
       Open App.Path & "\originale.gif" For Binary As #1
       byteTotali = LOF(1)
       readByte = 512
       Do While byteTotali > 0
          If byteTotali < readByte Then
             readByte = byteTotali
          End If
          byteDati = Input(readByte, #1)
          Put #2, , byteDati
          byteTotali = byteTotali - readByte
       Loop
       Close #1
       Close #2
    End Sub
    Jupy

  3. #3
    provo e ti dico...

    grazie mille !
    flussocontinuo :-)

  4. #4
    Allora il tuo codice funziona perfettamente se faccio la copia direttamente...ho provato ad usarlo però con un invio socket e qualcosa non va...ti posto il codice:


    Questa prima parte del codice invia le varie stringhe estratte dal file:

    Dim byteTotali As Long
    Dim byteDati As String
    Dim readByte As Long
    Open "c:\temp.gif" For Binary As #1
    byteTotali = LOF(1)
    readByte = 512
    Do While byteTotali > 0
    If byteTotali < readByte Then
    readByte = byteTotali
    End If
    byteDati = Input(readByte, #1)
    byteTotali = byteTotali - readByte
    Winsock1.SendData byteDati
    Loop
    Close #1



    Questa riceve :

    Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
    Open "c:\xxx.gif" For Binary As #2
    Winsock2.GetData freceiver, vbString
    Text2 = Text2 & freceiver
    Put #2, , byteDati
    Close #2
    End Sub


    Se implementi il mio codice vedrai che ti verranno a amncare alcuni bit rispetto all' originale e non capisco perchè


    Grazie ciao
    flussocontinuo :-)

  5. #5
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, ora sono di fretta.. ma a grandi linee nel tuo codice manca un protocollo di comunicazione.. intanto prova a corregere in questa maniera(ti devi implementare un tuo protocollo), ESEMPIO:
    codice:
    myProt1=<START_COPIA>
    myProt2=<END_COPIA>
    Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long) 
       Winsock2.GetData freceiver, vbString
       if freceiver="<START_COPIA>" then
          Open "c:\xxx.gif" For Binary As #2 
       elseif freceiver="<END_COPIA>" then
          Close #2
       else
          Put #2, , freceiver
    end if
    End Sub
    in pratica prima di passare i dati del file, gli passi il comando (<START_COPIA<) aprire il file di copia, poi passi tutti i dati del file originale e poi alla fine gli passi il comando (<END_COPIA>) per chiudere il file...
    questo è solo un esempio di una gestione con tuoi protocolli..eventualmente deve essere migliorata e prevedere altre opzioni...
    se non funziona vedrò di vedere dove è che sbagli..
    Jupy

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.