IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Problème de pointeur


Sujet :

Langage Delphi

  1. #1
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 681
    Points
    681
    Par défaut Problème de pointeur
    Bonjour,

    ça fait longtemp que je n'ai pas travaillé avec des pointers et impossible de m'en sortir. Je souhaite incrémenter mon pointer pour lire le tableau qui est renvoyé par la zLib

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    var
      i : integer ;
      Char1 : char ;
      outStream,inpStream: TMemoryStream;
      SI : array[0..12] of char ;
      DI : pointer ;
      lenSo : integer ;
     
    begin
    SI[0] := 'a' ;
    SI[1] := 'z' ;
    SI[2] := 'e' ;
    SI[3] := 'r' ;
    SI[4] := 't' ;
    SI[5] := 'y' ;
    SI[6] := 'a' ;
    SI[7] := 'z' ;
    SI[8] := 'e' ;
    SI[9] := 'r' ;
    SI[10] := 't' ;
    SI[11] := 'y' ;
    SI[12] := '0' ;
     
    InpStream := TMemoryStream.Create;
    InpStream.Write(SI, 13);
    outStream := TMemoryStream.Create;
     
    BZCompressBuf(
                  InpStream,
                  7,
                  //$9AA020
                  DI,
                  lenSO
                 );
     
    Caption := '' ;
     
    For i := 0 to lenSO do
    begin
        Char1 := Char((DI)^);
        Caption := Caption + Format('%x ', [Ord(Char1)]) ;
    end ;
    end ;
    en fait. Mon problème c'est de compresser des données à la voler pour mettre tout ça dans un fichier compressé. Si ça se trouve il y a une méthode plus simple. Mais je n'ai rien trouvé, c'est toujours à partir d'un fichier.

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    autant ne pas réinventer la roue delphizlib

  3. #3
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 681
    Points
    681
    Par défaut
    Super merci du coup de pouce. Sais-tu comment on utilise la compression à la volée (on fournit block par block les données à compresser).
    Je n'ai pas très bien compris.

    est-ce que si je remplace la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyStream.LoadFromFile(Strings[0]);
    par
    dans une boucle ça va fonctionner ?

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Bonjour,
    est-ce que si je remplace la ligne

    Code :
    MyStream.LoadFromFile(Strings[0]);par

    Code :
    MyStream.Write(...) dans une boucle ça va fonctionner ?
    ... tout dépend de ton objectif car pour charger un stream depuis un File LoadFromFile proçède par lecture du Fichier nommé par String[0] et dans ce cas pourquoi tu le remplacerais par un Write ?
    ... mais si tu veux charger ton stream avec un Write cela suppose que les données à charger proviennent d'ailleurs.
    ... en plus, dans le lien indiqué par Paul TOTH je n'ai vu nulle part dans le code qu'il y était utilisé une ligne MyStream.LoadFromFile(Strings[0]) ce qui fait que ta question reste incompréhensible.

    Pour plus d'infos sur les Streams voir la rubrique Tutoriaux sinon dans la Faq car je suis sûr et certain que ce sujet est développé dans l'un ou dans l'autre je ne souviens simplement plus laquelle des deux.

    A+

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 434
    Points : 5 846
    Points
    5 846
    Par défaut
    salut

    pour la compression a la volé il faut en fait creer ton dictionnaire et ensuite
    l'enregistrer
    pour la decompression c'est diferent elle peut se faire en lecture direct

    fait des recherche sur huffman

    @+ Phil

  6. #6
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 681
    Points
    681
    Par défaut
    En fait, je suis en train de reprendre le projet RawWrite pour windows et donc quand je lis une disquette, je voudrais compresser les données à la volée et les écrire dans un fichier.
    De même lorsque je lis un image compresser pour l'écrire sur la disquette.
    Et j'aurais bien aimé le format zip avec un bibliothèque GPL2.

Discussions similaires

  1. Problème de pointeurs..embrouillé
    Par Frenchy dans le forum C++
    Réponses: 11
    Dernier message: 10/03/2005, 16h33
  2. Problème de pointeur avec un TQuery
    Par Oluha dans le forum Bases de données
    Réponses: 3
    Dernier message: 25/01/2005, 13h57
  3. Problème de pointeur
    Par toma_lille dans le forum C++
    Réponses: 1
    Dernier message: 07/12/2004, 21h26
  4. [MFC] Problème de pointeur !!
    Par acastor dans le forum MFC
    Réponses: 7
    Dernier message: 19/03/2004, 15h50
  5. TBitmap et problèmes de pointeurs...
    Par benj63 dans le forum C++Builder
    Réponses: 8
    Dernier message: 28/07/2003, 13h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo