Compression de tableau...

vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005 - 3 oct. 2004 à 17:16
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005 - 4 oct. 2004 à 21:09
Si qqn peut m'éclairer, il sera béni de ma reconnaissance éternelle (réponse gratuite sans obligation d'achat du Vlad :P)

Y aurait - il des codes permettant de compresser un tableau de donnée, tout langage évidemment ...

Vlad

6 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
3 oct. 2004 à 18:03
Qu'appelles tu "compresser un tableau de donnée" ?

Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
0
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
3 oct. 2004 à 18:08
Ce que j'entends ...

J'ai par exemple un tableau, mettons Tableau() contenant un nombre

pour vb par exemple :

Dim Tableau() as Byte
Dim TableauSortie() as Byte
Redim Tableau(12558)

Compression (Tableau(), TableauSortie())

J'éspère que c'est compréhensible... :)
Vlad
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
3 oct. 2004 à 19:32
Ce que j'ai compris c'est que tu veux éliminer les items du tableau qui sont à 0 ? Alors essaie ça dans une form :

Dim Tableau() As Byte
Dim TableauSortie() As Byte

Private Sub Form_Load()
ReDim Tableau(12558)

Tableau(1) = 12
Tableau(12500) = 15

compression Tableau, TableauSortie

End Sub

Sub compression(t1, t2)
Dim i As Long, j As Long

For i = LBound(t1) To UBound(t1)
If t1(i) <> 0 Then
  ReDim Preserve t2(j)
  t2(j) = t1(i)
  j = j + 1
End If
Next

MsgBox UBound(t2) - LBound(t2) + 1 & " lignes dans le nouveau tableau"

End Sub


Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
0
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
4 oct. 2004 à 17:16
Tu n'as pas compris ...

Compression, pas délétion, ni supression = compresser (WinZip te dit qqch ?)

:)

Vlad
0

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

Posez votre question
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
4 oct. 2004 à 19:56
Effectivement, j'ai mal compris.
Finalement, tu veux compresser des données en mémoire et les décompresser quand tu as besoin ? Ou recréer un prog de compression ? Ou j'ai encore mal compris ?
Avoue que t'es pas clair !
Pour la 1ère proposition, je ne sais pas mais, si ça se peut, ça doit bouffer plus de ressources que de laisser le tableau comme il est.
Pour la 2ème proposition, non seulement je connais WinZip mais un tas d'autres utilitaires de compression plus ou moins performants (payants et gratuits). Si tu veux en recréer un de plus, cherche avec google "compression données" tu liras des milliers de pages sur le sujet.

Cordialement, CanisLupus

Tous les glands ne deviennent pas des chênes mais tous les chênes ont été des glands
0
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
4 oct. 2004 à 21:09
J'avoues tout, je suis po clair ... :)

Ce nest plus très important, je cherchais une mise en pratique rapide pour éviter d'avoir à tout faire de moi meme (trop tard...)

La théorie c po ce qui manque, j'avais moi meme fait un sujet (ds les tutoriels) sur la compression...

J'ai fini par me résoudre a tout faire hehe... les débutants en profiterons, je mettrais ce code sur le site dès qu'il sera bien fini... ce n'est toujours qu'une adaptation en VB de mon tutoriel ...

Ce que je voulais, c'est etre capable de compresser, effectivement, en mémoire, des tableaux d'octets... pour les passer via winsock a un autre poste (ps : la compression s'avère nécessaire meme)...

Ce que j'ai fait, c'est un code qui passe une chaine de texte en octets, la compresse (la compression / décompression a été extrement clarifiée et simplifiée, au prix d'une vitesse moindre) et décompresse in situ ...

Ma méthode marche bien, pour du texte, mais il s'agit de passer 2048 octets (soit autant de lettres) et le temps perdu à compressé rattrape celui du a la transmission ...

Si tu trouves une méthode (please, exemples fournis) qui permet de compresser ne serait-ce que du texte (ps: pas le code de clémentio svp, je connais dejà, ni huffman :p) je serait très très heureux (g po dit gai)...

Vlad (qui n'est pas un gland en chaines) ... mais qui n'en est po plus clair
0
Rejoignez-nous