FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
Insertion d'un petit fichier quelconque dans un programme Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Insertion d'un petit fichier quelconque dans un programme Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Insertion d'un petit fichier quelconque dans un programme Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Insertion d'un petit fichier quelconque dans un programme Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Insertion d'un petit fichier quelconque dans un programme Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Insertion d'un petit fichier quelconque dans un programme Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Insertion d'un petit fichier quelconque dans un programme Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Insertion d'un petit fichier quelconque dans un programme Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Insertion d'un petit fichier quelconque dans un programme Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Insertion d'un petit fichier quelconque dans un programme Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Insertion d'un petit fichier quelconque dans un programme Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Insertion d'un petit fichier quelconque dans un programme Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Insertion d'un petit fichier quelconque dans un programme Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Insertion d'un petit fichier quelconque dans un programme Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Insertion d'un petit fichier quelconque dans un programme Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -55%
Coffret d’outils – STANLEY – ...
Voir le deal
21.99 €

 

 Insertion d'un petit fichier quelconque dans un programme

Aller en bas 
3 participants
AuteurMessage
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Insertion d'un petit fichier quelconque dans un programme Empty
MessageSujet: Insertion d'un petit fichier quelconque dans un programme   Insertion d'un petit fichier quelconque dans un programme EmptyVen 18 Juin 2010 - 22:42

Le problème était d'intégrer un petit fichier quelconque, binaire, par exemple une petite image bmp ou icône, ou n'importe quoi d'autre, de façon à avoir un module qui contienne toutes les ressources.
J'avais déjà abordé une solution: convertir le fichier en question en lignes de datas, sous forme hexadécimale, à incorporer dans le programme pour reconstituer le fichier au moment de l'exécution.
L'inconvénient étant que ce n'est valable que pour de tous petits fichiers, quelques milliers d'octets (toutes petites images, par exemple des icônes), à cause du volume de datas généré: un octet d'image correspond à 2 octets en hexadécimal.
Dans le cas des images, on peut toutefois réduire quasiment de moitié ce volume, pour atteindre en gros le volume du fichier d'origine, en compactant les octets répétitifs qui sont en général nombreux dans une image.

Voici une première approche.
Remarques:
Les lignes de datas générées sont écrites dans un fichier pour pouvoir être intégrées n'importe où dans un programme par copier/coller depuis un éditeur quelconque.
- comme d'habitude, les fichiers cités en tête sont des fichiers de manoeuvre, à adapter.
- la première série de datas représente le résultat brut en hexa, non compacté, la deuxième série le résultat compacté (gain de 55%).
- les lignes mises en commentaires après les datas représentent les différentes étapes, pour essais:
1) conversion du fichier en lignes de datas non compactées
2) conversion du même fichier en lignes de datas compactées
3) reconstitution du fichier à partir des datas non compactés
Puis, actif, reconstitution du fichier à partir des datas compactés
Code:
' Ficdat.bas conversion fichier binaire en lignes de datas
ERROR_FRENCH
DIM f$, fo$, fr$, fb$, fz$, a$, b$, c$, cp$, nr, ns, sz, nbl, la, lb, rst, i%, k%, k1%
DIM labdat$
LABEL Fic2dat, Dat2fic, Decfich, Compact, Decompac, rr
LABEL Pzip, Punzip
LABEL Posdat

fo$ = "C:\Graph\BMP\Pnoel.bmp": ' image d'origine
fr$ = "Z:\Data.dat"
fb$ = "Z:\image.bmp": ' image reconstituée

DATA "Et1:"
DATA "424DCE0800000000000036040000280000001B0000002A000000010008000000"
DATA "0000980400000000000000000000000100000001000000000000080000000008"
DATA "0000000008000008080008101000081021000000290039189C001800A5003908"
DATA "CE009CD6D6003100EF00F7FFF700FFFFF700EFF7FF00F7F7FF00FFF7FF0008FF"
DATA "FF0010FFFF0018FFFF0031FFFF0039FFFF006BFFFF00C6FFFF00DEFFFF00EFFF"
DATA "FF00F7FFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "0000000000000000000000000000000000000000000000000000000000000000"
DATA "000000000000000000000000000000000000000000001D1D1D1D1D1D1D1D1D1D"
DATA "1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D001D1D1D1D1D1D1D1D000000001D1D"
DATA "1D000000001D1D1D1D1D1D1D1D001D1D1D1D1D1D1D001C1C1C1C001D001C1C1C"
DATA "1C001D1D1D1D1D1D1D001D1D1D1D1D1D1D001C1C1C1C001D001C1C1C1C001D1D"
DATA "1D1D1D1D1D001D1D1D1D1D1D1D1D001C1C1C001D001C1C1C001D1D1D1D1D1D1D"
DATA "1D001D1D1D1D1D1D1D1D1D0000001D1D1D0000001D1D1D1D1D1D1D1D1D001D1D"
DATA "1D1D1D1D1D1D1D1D00001D1D1D00001D1D1D1D1D1D1D1D1D1D001D1D1D1D1D1D"
DATA "1D1D1D1D00001D1D1D00001D1D1D1D1D1D1D1D1D1D001D1D1D1D1D1D1D1D1D1D"
DATA "000000000000001D1D1D1D1D1D1D1D1D1D001D1D1D1D1D1D1D1D1D0005001C1B"
DATA "1B0505001D1D1D1D1D1D1D1D1D001D1D1D1D1D1D1D0000001A1B101C1C0F1B00"
DATA "00001D1D1D1D1D1D1D001D1D1D1D1D1D1D00191B0F1B1C1C1C1C1B1A1A001D1D"
DATA "1D1D1D1D1D001D1D1D1D1D1D1D001C1C1C0E1C1C1C1B1A1A0D001D1D1D1D1D1D"
DATA "1D001D1D1D1D001D1D000E1C0E0E1C0E1B101B1B1B001D1D001D1D1D1D001D1D"
DATA "1D001C001D001A1A0D1C0E1C1A1C10101C001D001C011D1D1D001D1D001C001D"
DATA "1D001819191A0005021A1B101B001D1D001C011D1D001D1D001C001D1D051818"
DATA "181818181818181818051D1D0010011D1D001D1D001C1C000017060606060606"
DATA "06060606060B0503101C011D1D001D1D001C1C00001714141414141616141414"
DATA "161705031C10021D1D001D1D1D00000003161212141314141314141214160503"
DATA "03021D1D1D001D1D1D1D000003161414141414131416161414160503001D1D1D"
DATA "1D001D1D1D1D1D1D0317141605051614140505141417051D1D1D1D1D1D001D1D"
DATA "1D1D1D1D1D051716050514141405051416031D1D1D1D1D1D1D001D1D1D1D1D1D"
DATA "0505171717141714161717161705031D1D1D1D1D1D001D1D1D1D1D02190F0303"
DATA "051414171714050305031C031D1D1D1D1D001D1D1D1D1D031B1C1C1005050505"
DATA "0503051C1C1B1B051D1D1D1D1D001D1D1D1D0310100E0E0D1A1A0D19190F101C"
DATA "0E0D0D0D001D1D1D1D001D1D1D1D1D05101B0D1A0D0E0E10101C101C0D0E0D02"
DATA "1D1D1D1D1D001D1D1D1D1D00000305101010101B0E100D0D050503051D1D1D1D"
DATA "1D001D1D1D1D1D1D1D1D03070606060607060701051D1D1D1D1D1D1D1D001D1D"
DATA "1D1D1D1D1D1D07090A0A0A0A0A0A0908071D1D1D1D1D1D1D1D001D1D1D1D1D1D"
DATA "1D1D070A0A0A0A0C0C0C0A08071D1D1D1D1D1D1D1D001D1D1D1D1D1D1D1D030A"
DATA "0A0C0A0C0C0C0A08071D1D1D1D1D1D1D1D001D1D1D1D1D1D1D1D1D070A0A0C0C"
DATA "0C0C0A071D1D1D1D1D1D1D1D1D001D1D1D1D1D1D1D1D1D1D070A0C0C0C0A061D"
DATA "1D1D1D1D1D1D1D1D1D001D1D1D1D02001D1D1D1D070A0C0C0C0A071D1D1D1D1D"
DATA "1D1D1D1D1D001D1D1D020E1C031D1D1D070A0A0C0A071D1D1D1D1D1D1D1D1D1D"
DATA "1D001D1D1D050F1C1C03070708090A0A08071D1D1D1D1D1D1D1D1D1D1D001D1D"
DATA "1D001C10031D03080A0A0A08071D1D1D1D1D1D1D1D1D1D1D1D001D1D1D1D0005"
DATA "1D1D1D07080A08031D1D1D1D1D1D1D1D1D1D1D1D1D001D1D1D1D1D1D1D1D1D1D"
DATA "0707071D1D1D1D1D1D1D1D1D1D1D1D1D1D001D1D1D1D1D1D1D1D1D1D1D1D1D1D"
DATA "1D1D1D1D1D1D1D1D1D1D1D1D1D00"
DATA "F": ' butée de fin

DATA "Et2:"
DATA "424DCE0800[5]360400002800[2]1B00[2]2A00[2]01000800[2]"
DATA "0000980400[10]0100[2]0100[5]0800[3]08"
DATA "00[3]0800000808000810100008102100[2]290039189C001800A5003908"
DATA "CE009CD6D6003100EF00F7FFF700FFFFF700EFF7FF00F7F7FF00FFF7FF0008FF"
DATA "FF0010FFFF0018FFFF0031FFFF0039FFFF006BFFFF00C6FFFF00DEFFFF00EFFF"
DATA "FF00F7FFFF00FF[2]00FF[2]00[18]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[31]"
DATA "00[21]1D[9]"
DATA "1D[16]001D[7]00[3]1D1D"
DATA "1D00[3]1D[7]001D[6]001C[3]001D001C[2]"
DATA "1C001D[6]001D[6]001C[3]001D001C[3]001D1D"
DATA "1D[4]001D[7]001C[2]001D001C[2]001D[6]"
DATA "1D001D[8]00[2]1D[2]00[2]1D[8]001D1D"
DATA "1D[7]00001D[2]00001D[9]001D[5]"
DATA "1D[3]00001D[2]00001D[9]001D[9]"
DATA "00[6]1D[9]001D[8]0005001C1B"
DATA "1B0505001D[8]001D[6]00[2]1A1B101C1C0F1B00"
DATA "00001D[6]001D[6]00191B0F1B1C[3]1B1A1A001D1D"
DATA "1D[4]001D[6]001C[2]0E1C[2]1B1A1A0D001D[5]"
DATA "1D001D[3]001D1D000E1C0E0E1C0E1B101B[2]001D1D001D[3]001D1D"
DATA "1D001C001D001A1A0D1C0E1C1A1C10101C001D001C011D[2]001D1D001C001D"
DATA "1D001819191A0005021A1B101B001D1D001C011D1D001D1D001C001D1D051818"
DATA "18[8]051D1D0010011D1D001D1D001C1C00001706[5]"
DATA "06[4]0B0503101C011D1D001D1D001C1C00001714[4]161614[2]"
DATA "161705031C10021D1D001D[2]00[2]03161212141314141314141214160503"
DATA "03021D[2]001D[3]0000031614[4]131416161414160503001D[2]"
DATA "1D001D[5]0317141605051614140505141417051D[5]001D1D"
DATA "1D[4]051716050514[2]05051416031D[6]001D[5]"
DATA "050517[2]141714161717161705031D[5]001D[4]02190F0303"
DATA "051414171714050305031C031D[4]001D[4]031B1C1C1005[3]"
DATA "0503051C1C1B1B051D[4]001D[3]0310100E0E0D1A1A0D19190F101C"
DATA "0E0D[2]001D[3]001D[4]05101B0D1A0D0E0E10101C101C0D0E0D02"
DATA "1D[4]001D[4]0000030510[3]1B0E100D0D050503051D[3]"
DATA "1D001D[7]030706[3]07060701051D[7]001D1D"
DATA "1D[5]07090A[5]0908071D[7]001D[5]"
DATA "1D1D070A[3]0C[2]0A08071D[7]001D[7]030A"
DATA "0A0C0A0C[2]0A08071D[7]001D[8]070A0A0C0C"
DATA "0C0C0A071D[8]001D[9]070A0C[2]0A061D"
DATA "1D[8]001D[3]02001D[3]070A0C[2]0A071D[4]"
DATA "1D[4]001D[2]020E1C031D[2]070A0A0C0A071D[9]"
DATA "1D001D[2]050F1C1C03070708090A0A08071D[10]001D1D"
DATA "1D001C10031D03080A[2]08071D[11]001D[3]0005"
DATA "1D[2]07080A08031D[12]001D[9]"
DATA "07[2]1D[13]001D[13]"
DATA "1D[12]00"
DATA "F"

' f$ = fo$: GOSUB Fic2dat: ' fichier image d'origine en ligne de datas dans fr$
' **** ou bien
' f$ = fo$: GOSUB Compfich: ' idem en lignes de datas compactées dans fr$

' f$ = fb$: labdat$ = "Et1: GOSUB Posdat: GOSUB Dat2fic
' PICTURE 1: FILE_LOAD 1, fb$

' décompactage des datas compactés dans le fichier fr$
labdat$ = "Et2:": GOSUB Posdat
f$ = fb$: GOSUB Decfich: ' décompactage des datas dans f$
PICTURE 2: FILE_LOAD 2, fb$: ' affichage de l'image reconstituée

END

Fic2dat:
' Conversion de f$ en lignes de datas dans le fichier texte fr$
FILEBIN_OPEN_READ 1, f$: FILE_OPEN_WRITE 2, fr$
sz = FILEBIN_SIZE(1): lb = 32
nbl = INT(sz/lb): rst = lb*FRAC(sz/lb)
FOR i% = 1 TO nbl
    FILEBIN_HEXA_READ 1, lb, a$
    FILE_WRITELN 2, "DATA " + CHR$(34) + a$ + CHR$(34)
NEXT i%
IF rst > 0
    FILEBIN_HEXA_READ 1, rst, a$
    FILE_WRITELN 2, "DATA " + CHR$(34) + a$ + CHR$(34)
END_IF
FILEBIN_CLOSE 1: FILE_CLOSE 2
RETURN

Dat2fic:
' Conversion de lignes de datas en f$
FILEBIN_OPEN_WRITE 1, f$
RESTORE
READ a$
REPEAT
    FILEBIN_HEXA_WRITE 1, LEN(a$)/2, a$
    READ a$
UNTIL a$ = "F"
FILEBIN_CLOSE 1
RETURN

Compfich:
' compactage de f$ en lignes de datas compactées dans le fichier texte fr$
FILEBIN_OPEN_READ 1, f$: FILE_OPEN_WRITE 2, fr$
sz = FILEBIN_SIZE(1): lb = 32
nbl = INT(sz/lb): rst = lb*FRAC(sz/lb)
FOR i% = 1 TO nbl
    FILEBIN_HEXA_READ 1, lb, a$
    GOSUB Compact
    FILE_WRITELN 2, "DATA " + CHR$(34) + b$ + CHR$(34)
NEXT i%
IF rst > 0
    FILEBIN_HEXA_READ 1, rst, a$
    GOSUB Compact
    FILE_WRITELN 2, "DATA " + CHR$(34) + b$ + CHR$(34)
END_IF
FILEBIN_CLOSE 1: FILE_CLOSE 2
RETURN

Decfich:
' décompactage des lignes de datas compactées dans le fichier binaire f$
FILEBIN_OPEN_WRITE 1, f$
READ a$
REPEAT
    GOSUB Decompac
    FILEBIN_HEXA_WRITE 1, LEN(a$)/2, a$
    READ a$
UNTIL a$ = "F"
FILEBIN_CLOSE 1
RETURN

Compact:
' Compactage de a$ (chaîne hexa) dans b$
' Compactage des octets répétitifs: le nombre entre crochets représentera
' le nombre de répétitions de l'octet qui précède (en plus de celui-ci)
b$ = "": ' chaîne résultat
cp$ = "": ns = 0
FOR i% = 1 TO LEN(a$) STEP 2
    c$ = MID$(a$, i%, 2)
    IF c$ <> cp$
        IF ns > 0
            IF ns = 1
                b$ = b$ + cp$
            ELSE
                b$ = b$ + "[" + STR$(ns) + "]"
            END_IF
        END_IF
        b$ = b$ + c$
        ns = 0
        cp$ = c$
    ELSE
        ns = ns + 1
    END_IF
NEXT i%
IF ns > 0
    IF ns > 1
        b$ = b$ + "[" + STR$(ns) + "]"
    ELSE
        b$ = b$ + cp$
    END_IF
END_IF
RETURN

Decompac:
' décompactage de a$ -> a$
rr:
k% = INSTR(a$, "[")
IF k% > 0
    k1% = INSTR(a$, "]")
    nr = VAL(MID$(a$, k%+1, k1%-k%-1)) : ' nombre de répétitions du précédent
    c$ = MID$(a$, k%-2, 2): ' caractères hexa à répéter
    b$ = "": FOR i% = 1 TO nr: b$ = b$ + c$: NEXT i%
    IF k1% < LEN(a$)
        a$ = LEFT$(a$, k%-1) + b$ + MID$(a$, k1%+1, LEN(a$)-k1%)
    ELSE
        a$ = LEFT$(a$, k%-1) + b$
    END_IF
    GOTO rr
END_IF
RETURN

Posdat:
' Positionnement de lecture datas sur le label labdat$
RESTORE
REPEAT
    READ a$
UNTIL a$ = labdat$
RETURN
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Insertion d'un petit fichier quelconque dans un programme Empty
MessageSujet: Re: Insertion d'un petit fichier quelconque dans un programme   Insertion d'un petit fichier quelconque dans un programme EmptyVen 18 Juin 2010 - 23:29

Belle technique. Mais explique-moi: pourquoi t ne crées pas un fichier exe par la fonction "application" de l'éditeur, ayant placé le source et tous les petits fichiers et images dans un même répertoire ? Tu obtiens un seul fichier .exe qui contient, de façon invisible, tous ces fichiers et tu peux les utiliser librement (en lecture) comme d'habitude, par file_load par exemple, pour charger une image.

J'ai fait un petit bout de programme comme ceci:
Code:

picture 1
file_load 1,"image.bmp"
end
Je place ce code dans un répertoire avec le fichier image.bmp et je génère "application". J'obtiens un fichier exe qui, exécuté de n'importe quel répertoire, charge l'image dans la picture.

Ou alors, je n'ai peut-être pas bien compris l'utilisation que tu voulais faire ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Insertion d'un petit fichier quelconque dans un programme Empty
MessageSujet: Re: Insertion d'un petit fichier quelconque dans un programme   Insertion d'un petit fichier quelconque dans un programme EmptyVen 18 Juin 2010 - 23:47

Si bien sûr tu as compris, j'avoue que je n'ai pas encore utilisé la technique de la compilation avec tous les fichiers annexes incorporés, et je ne vois pas très bien comment ça fonctionne.
Si je linke par exemple mon programme avec une ou des images, ou autres fichiers annexes, que se passe-t-il au moment de l'exécution ? je pense que ces fichiers sont reconstitués quelque part sur le disque d'utilisation ? ou non ? et effacés, ou non, après exécution ?

L'optique était aussi de partager un source complet (dans le cas de petites icônes par exemple) plutôt qu'une série de fichiers. Mais bon, je reconnais bien volontiers que ça se discute.
Disons que c'est aussi un peu un exercice de style, au moins pour le compactage/décompactage.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Insertion d'un petit fichier quelconque dans un programme Empty
MessageSujet: Re: Insertion d'un petit fichier quelconque dans un programme   Insertion d'un petit fichier quelconque dans un programme EmptySam 19 Juin 2010 - 0:27

D'après mon expérience, ces fichiers ne sont pas recopiés sur le disque. Ils restent cachés dans le exe construit en mode "application. Panoramic sait quels fichiers ont été inclus au moment de la génération de l'application, et à condition de les ouvrit SANS répertoire, juste avec le nom de fichier, Panoramic va les prendre dans le exe plutôt que sur disque.

Ceci est la façon idéale pour distribuer un seul module contenant toutes les ressources nécessaires. Ceci inclut tous les fichiers txt et les images. Bien sûr, cela ne peut être que des fichiers en lecture seule: dès qu'il faut pouvoir écrire dedans, il faut bien créer un fichier sur disque.

Pour arriver à produire un tel fichier, c'est simple. Il faut créer un répertoire spécifique pour le programme, dans lequel on place, pêle-mêle, le fichier source, tous les fichiers INCLUDE éventuels, tous les fichiers txt et toutes les images dans les formats acceptés. Panoramic va alors générer un fichier exe dans le même répertoire contenant l'ensemble de ces fichiers.

Pour le moment, Panoramic n'a pas de déclaration permettant de spécifier les fichiers à inclure. Il prend tout, et c'est pour cela qu'il faut placer tout cela dans un répertoire spécifique.

Pour mon EDI en Panoramic, par exemple, j'utilise un répertoire de configiration dans lequel on trouve tous les "modèles" des objets Panoramic et les images de mes icônes. Pour le moment, en version Beta, c'est encore comme ça, mais dès la première version normale, les icônes seront intégrées dans l'exe, mais pas les modèles, afin que l'on puisse éventuellement les modifier...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Insertion d'un petit fichier quelconque dans un programme Empty
MessageSujet: Re: Insertion d'un petit fichier quelconque dans un programme   Insertion d'un petit fichier quelconque dans un programme EmptySam 19 Juin 2010 - 10:42

Citation :
Pour le moment, Panoramic n'a pas de déclaration permettant de spécifier les fichiers à inclure. Il prend tout, et c'est pour cela qu'il faut placer tout cela dans un répertoire spécifique.

La nouvelle instruction CHAIN F , ne serait-elle pas appropriée ?
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12301
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Insertion d'un petit fichier quelconque dans un programme Empty
MessageSujet: Re: Insertion d'un petit fichier quelconque dans un programme   Insertion d'un petit fichier quelconque dans un programme EmptySam 19 Juin 2010 - 11:08

Non, elle a un but tout à fait différent: terminer le programme actuel entièrement (comme par "terminate") et lancer dans la foulée l'exécution d'un autre programme Panoramic. Il n'y a aucun rapport avec des fichiers annexes comme des textes ou des images.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Insertion d'un petit fichier quelconque dans un programme Empty
MessageSujet: Re: Insertion d'un petit fichier quelconque dans un programme   Insertion d'un petit fichier quelconque dans un programme EmptySam 19 Juin 2010 - 12:01

OK, j'ai mal interprèté l'utilisation inscrite sur le manuel de réfférence ou il est écrit
Citation :
La commande CHAIN F est utilisée pour exécuter le fichier source F
Je suggére à Jack le texte suivant:
Citation :
La commande CHAIN F est utilisée pour terminer le programme en cours et exécuter le fichier source F (elle remplace le TERMINATE)

Merci pour l'info, je n'ai pas encore utilisée cette nouvelle instruction...

A+
Revenir en haut Aller en bas
Contenu sponsorisé





Insertion d'un petit fichier quelconque dans un programme Empty
MessageSujet: Re: Insertion d'un petit fichier quelconque dans un programme   Insertion d'un petit fichier quelconque dans un programme Empty

Revenir en haut Aller en bas
 
Insertion d'un petit fichier quelconque dans un programme
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Petit programme d'assemblage d'un fichier découpé.
» Embarquer un fichier quelconque
» Cryptage/décryptage d'un fichier quelconque
» Insertion d'icônes rudimentaires (symboles) dans un objet
» Numerotation ligne de programme

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: