Compression de fichier

souma29 Messages postés 30 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 17 avril 2007 - 26 févr. 2007 à 23:45
NHenry Messages postés 15118 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 mai 2024 - 26 mars 2007 à 11:19
j'ai trouvé ce code publié  dans vbfrance  : compresser les fichiers et les transmettre par la suite via le port série, mais c'est juste pour les fichiers de type Bmp (image).

Svp comment je peux, le rendre valable pour tous les fichiers?

Dim pic As String
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)




Private Sub File1_Click()
pic = File1.FileName
Image1.Picture = LoadPicture(pic)


End Sub


Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "56000,n,8,1"
MSComm1.PortOpen = True
pic = App.Path & "\sample.bmp"
End Sub


Private Sub Command1_Click()


Call Compression.CompressFile(pic, App.Path & "\shoot.jp_", 9)
Dim Datas As String
Datas = ""
Open App.Path & "\shoot.jp_" For Binary Access Read As #1
    Datas = Input(LOF(1), #1)
Close


'envoi le fichier compressé
lng = Len(Datas)


If lng > 499 Then    'si la longueur est suppérieur à 499 octets, on divise par 500
   For rt = 1 To lng Step 500
       ProgressBar1.Value = (Int((rt * 100) / lng))
       DoEvents
       b$ = (Mid(Datas, rt, 500))
       MSComm1.Output = b$
   Next rt
   reste = (lng - ((Int(lng / 500) * 500)))
   b$ = (Right(Datas, reste))
Else      'sinon on l'envoi comme ça
   b$ = (Datas)
End If


MSComm1.Output = b$


qsd = Timer    ' Une petite pause
Do
DoEvents
Loop Until Timer > qsd + 0.5


MSComm1.Output = "Fin"  ' on envoi "Fin"
ProgressBar1.Value = 0
End Sub

5 réponses

NHenry Messages postés 15118 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 mai 2024 159
27 févr. 2007 à 12:57
Bonjour


Pour transmettre une fichier compressé quelquonque :

1) Compresser le fichier

2) Envoyer par le port série


1) :

Il existe plusieurs méthodes, à toi de voir celle que tu préfère (par
exe externe, par DLL). Je citerais 7z comme exemple de format
www.7zip.org


2) :

Pour cela tu doit définir un protocole.


Selon ton exemple, la partie après

Call Compression.CompressFile(pic, App.Path & "\shoot.jp_", 9)


Effectue le transfert du fichier "shoot.jp_", il te suffit de le remplacer par le fichier de ton choix et voila.

Il est plus facile de batiser quelqu'un que de la convertir.(surtout en programmation)
VB (6, A excel, .NET), C++, C#.Net
Mon site
0
souma29 Messages postés 30 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 17 avril 2007
27 févr. 2007 à 14:02
oui , le probleme que je n'ai pas reussi a remplacer cette partie

Call Compression.CompressFile(pic, App.Path & "\shoot.jp_", 9)

pour la rendre valable pour n'importe quel fichier

Pouvez vous m'aider  ??
0
NHenry Messages postés 15118 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 mai 2024 159
28 févr. 2007 à 12:35
Bonjour


Pour la compression, va voir ces sources :

http://www.vbfrance.com/codes/FORMAT-COMPRESSION-ZIP-7Z-DANS-APPLICATION-VB_21487.aspx

http://www.vbfrance.com/codes/LISTER-EXTRAIRE-FICHIER-7Z-FORMAT-ZIP_30493.aspx


A toi d'adapter.

Il est plus facile de batiser quelqu'un que de la convertir.(surtout en programmation)
VB (6, A excel, .NET), C++, C#.Net
Mon site
0
souma29 Messages postés 30 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 17 avril 2007
23 mars 2007 à 23:41
bon ca fait longtemps que j'ai posé le sujet , mais j'ai pas arriver encore a rendre le transfert de cette image, valable pour tous les fichiers............

svp, vous m'aidez alors ?????
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15118 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 11 mai 2024 159
26 mars 2007 à 11:19
Bonjour

Je n'ai pas de code tout fait, mais je suppose que tu doit avoir un pb avec le pic, tu peux le remplacer par le nom du fichier à compresser, ce qui donnerais :
sub Compress(byval pFileSrc as string,byval pFileDest as string, byval pCompressionLevel as long)
Voila, je ne peux pas te dire mieux.

Il est plus facile de batiser quelqu'un que de le convertir.(surtout en programmation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
Rejoignez-nous