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

Contribuez Pascal Discussion :

Quelques unités et un programme pour FreePascal


Sujet :

Contribuez Pascal

  1. #1
    Membre averti

    Homme Profil pro
    Diverses
    Inscrit en
    Février 2014
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Diverses

    Informations forums :
    Inscription : Février 2014
    Messages : 122
    Points : 428
    Points
    428
    Par défaut Quelques unités et un programme pour FreePascal
    Bonjour,

    Il y a quelque temps j'ai publié, sur mon site, quelques unités et un programme. Je n'avais pas fait d'annonce ici. Je répare.

    Attention : le site est rédigé dans une langue qui ressemble vaguement à de l'anglais.

    En vrac vous trouverez :

    • data2pas : un programme pour convertir de données binaires ou du texte en constantes pascal
    • CmdLine : une unité pour analyser les paramètres d'une ligne de commande
    • GContnrs : un ensemble de conteneurs génériques
    • UPasconf : une unité pour générer des programme imitant les scripts './configure'

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Citation Envoyé par yamer Voir le message
    Je n'avais pas fait d'annonce ici. Je répare.
    C'est une bonne chose.

    J'ai essayé le programme data2pas et je l'ai trouvé très intéressant.

    Après avoir compilé le programme, j'ai fabriqué (d'après l'exemple proposé sur le site) ce fichier que j'ai nommé data.txt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    FILE 'data.inc';
    BEGIN
     
      LazarusDescription : String = TEXT('lazdesc.txt');
     
      LazarusIcon : Array of Byte = DATA('lazarus16x16.png');
     
    END;
    J'ai placé dans le même dossier l'image PNG récupérée dans le répertoire de Lazarus, ainsi qu'un fichier lazdesc.txt contenant ceci :

    Ensuite j'ai fait glisser avec la souris le fichier data.txt sur data2pas.exe, et j'ai obtenu ce fichier data.inc :

    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
    45
    const
      LazarusDescription = 'Description de Lazarus'#13#10;
     
      LazarusIcon : array [0..554] of Byte = (
        $89, $50, $4E, $47, $0D, $0A, $1A, $0A, $00, $00, $00, $0D, $49, $48, 
        $44, $52, $00, $00, $00, $10, $00, $00, $00, $10, $08, $06, $00, $00, 
        $00, $1F, $F3, $FF, $61, $00, $00, $00, $01, $73, $52, $47, $42, $00, 
        $AE, $CE, $1C, $E9, $00, $00, $00, $06, $62, $4B, $47, $44, $00, $FF, 
        $00, $FF, $00, $FF, $A0, $BD, $A7, $93, $00, $00, $00, $09, $70, $48, 
        $59, $73, $00, $00, $0B, $13, $00, $00, $0B, $13, $01, $00, $9A, $9C, 
        $18, $00, $00, $00, $07, $74, $49, $4D, $45, $07, $DC, $06, $14, $0F, 
        $1F, $36, $F0, $AF, $9F, $A6, $00, $00, $01, $AB, $49, $44, $41, $54, 
        $38, $CB, $95, $92, $41, $68, $13, $41, $14, $86, $BF, $D9, $6E, $EC, 
        $B1, $D0, $93, $57, $AF, $5E, $24, $22, $48, $68, $D1, $83, $30, $11, 
        $7B, $F5, $60, $4E, $1A, $C1, $A6, $EB, $A1, $88, $50, $09, $85, $F4, 
        $D0, $80, $2C, $22, $22, $8B, $68, $5B, $C1, $D6, $53, $2E, $B9, $28, 
        $49, $21, $0B, $A1, $45, $10, $1B, $5A, $10, $3C, $45, $BD, $E7, $92, 
        $43, $C1, $83, $D0, $E2, $CE, $F3, $B0, $DD, $71, $D3, $26, $D8, $FE, 
        $30, $CC, $CC, $9B, $FF, $CD, $9B, $7F, $DE, $AF, $18, $81, $4B, $D7, 
        $1E, $3C, $17, $D4, $5D, $47, $61, $32, $2E, $6B, $BB, $ED, $B5, $0A, 
        $A7, $C5, $54, $BE, $D4, $CC, $69, $4F, $BA, $BD, $48, $BA, $BD, $48, 
        $72, $DA, $93, $EB, $B7, $4A, $1F, $4E, $95, $7C, $FE, $E2, $9D, $89, 
        $74, $F2, $FF, $2E, $51, $47, $15, $5B, $46, $1C, $9D, $04, $4B, $8B, 
        $CF, $C8, $5E, $18, $67, $3C, $33, $66, $89, $3B, $3F, $7E, $B3, $FA, 
        $F4, $89, $DD, $3B, $CA, $84, $9F, $5B, $AB, $79, $35, $95, $2F, $B5, 
        $44, $D0, $EF, $36, $5E, $73, $16, $DC, $BF, $F7, $30, $52, $8A, $B6, 
        $0B, $20, $38, $00, $14, $66, $AE, $58, $C2, $D5, $1B, $B7, $79, $F4, 
        $B8, $0C, $C0, $CB, $17, $3E, $9D, $76, $DD, $9E, $D5, $9A, $7B, $08, 
        $CE, $98, $C2, $C4, $81, $9C, $F6, $24, $68, $F4, $A5, $DB, $8B, $24, 
        $9B, $CD, $8A, $48, $3C, $77, $7E, $1E, $C8, $FB, $AD, $FD, $81, $58, 
        $D0, $E8, $4B, $D0, $E8, $4B, $4E, $7B, $02, $E0, $02, $7C, $09, $DF, 
        $28, $40, $F4, $C6, $2B, $6A, $CD, $3D, $BC, $05, $1F, $80, $CE, $F7, 
        $5F, $B6, $AA, $B7, $E0, $53, $AC, $86, $F1, $0B, $82, $A5, $24, $E7, 
        $E8, $ED, $C7, $D0, $69, $D7, $2D, $19, $A0, $58, $0D, $07, $24, $A4, 
        $E1, $24, $12, $0A, $F3, $CB, $27, $0E, $D7, $2B, $9A, $F5, $8A, $3E, 
        $11, $2F, $CC, $2F, $63, $25, $C4, $2D, $04, $7D, $79, $92, $C3, $3F, 
        $C2, $F6, $B7, $FD, $B3, $18, $AE, $E5, $C6, $66, $30, $03, $C9, $C5, 
        $6A, $C8, $D7, $FA, $A2, $95, $91, $5E, $FF, $33, $90, $19, $6D, $A4, 
        $61, $72, $92, $CF, $3B, $6E, $A4, $A1, $C4, $A4, $AD, $E9, $91, $68, 
        $4E, $50, $2E, $97, $47, $77, $C1, $51, $26, $4C, $57, $AB, $05, $4B, 
        $9C, $73, $CD, $C7, $34, $C7, $F7, $7D, $B1, $12, $86, $61, $FA, $E6, 
        $5C, $23, $32, $6A, $06, $20, $E3, $CA, $DB, $4F, $9B, $2B, $B3, $C3, 
        $78, $7F, $01, $CE, $48, $DF, $B7, $D4, $C3, $75, $30, $00, $00, $00, 
        $00, $49, $45, $4E, $44, $AE, $42, $60, $82
      ); // LazarusIcon
    Bizarrement, quand j'ai essayé de réaliser la même opération avec un batch, cela n'a pas fonctionné.

    Je ne me souviens pas d'avoir vu sur le site une liste des types de données supportées.

    Une dernière chose (même si c'est un peu hors-sujet), comment utilises-tu le tableau d'octets obtenu à partir de l'image ?

    En tout cas merci pour cette contribution.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  3. #3
    Membre averti

    Homme Profil pro
    Diverses
    Inscrit en
    Février 2014
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Diverses

    Informations forums :
    Inscription : Février 2014
    Messages : 122
    Points : 428
    Points
    428
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Bizarrement, quand j'ai essayé de réaliser la même opération avec un batch, cela n'a pas fonctionné.
    Probablement parce que tu n'as pas du mettre l'exécutable dans un dossier listé dans ta variable d'environnement PATH.

    Citation Envoyé par Roland Chastain Voir le message
    Je ne me souviens pas d'avoir vu sur le site une liste des types de données supportées.
    Ils y sont mais c'est récent : http://yann.merignac.free.fr/data2pas.html#constants

    En clair ça donne :
    • string
    • array of char
    • array of byte
    • compressed string
    • compressed array of char
    • compressed array of byte



    Citation Envoyé par Roland Chastain Voir le message
    Une dernière chose (même si c'est un peu hors-sujet), comment utilises-tu le tableau d'octets obtenu à partir de l'image ?
    Ça dépend fortement de la bibliothèque gaphique que tu utilises. J'ai choisi un png juste parce que c'est un exemple de données binaires.

    Avec lazarus ça doit pouvoir se faire comme ça :

    1. Créer un TPortableNetworkGraphic
    2. Créer TBytesStream pour lire le tableau
    3. Utiliser la méthode LoadFromStream du TPortableNetworkGraphic

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Merci pour ta réponse.

    Citation Envoyé par yamer Voir le message
    Probablement parce que tu n'as pas du mettre l'exécutable dans un dossier listé dans ta variable d'environnement PATH.
    Effectivement, je viens de faire un nouvel essai, et ça fonctionne. Manifestement je ne m'y étais pas pris comme il faut.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  5. #5
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    C'est une super idée de partager tes codes sources avec la communauté.
    Nous avons une plateforme développée exprès pour héberger et partager les codes sources : http://pascal.developpez.com/telecha...80/Free-Pascal

    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

Discussions similaires

  1. [65816] Quelques conseils de programmation pour optimiser le code
    Par Kannagi dans le forum Autres architectures
    Réponses: 7
    Dernier message: 12/03/2014, 12h18
  2. Réaliser un programme pour quelqu'un qui ne maitrise pas VBA
    Par Loki83 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/11/2008, 13h20
  3. existe t 'il des programme pour transformer les bases
    Par creazone dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/10/2004, 14h11
  4. [TP]Programme pour piloter port série et parallèle...
    Par DDR dans le forum Turbo Pascal
    Réponses: 10
    Dernier message: 15/04/2004, 21h52
  5. Créer de programme pour WIndows avec Turbo Pascal
    Par kaygee dans le forum Turbo Pascal
    Réponses: 16
    Dernier message: 20/08/2003, 23h22

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