FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Calculatrice
par joeeee2017 Aujourd'hui à 20:25

» EPP_V01 éditeur pour Panoramic
par Minibug Hier à 21:03

» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?
par Jean Claude Hier à 21:02

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Hier à 15:58

» Planétarium virtuel.
par Pedro Alvarez Hier à 9:28

» Demande pour Jack concernant PanExpress
par Marc Mar 18 Sep 2018 - 23:56

» Petit coucou en passant !
par Minibug Dim 16 Sep 2018 - 15:03

» bug SEVERE fnc+sub : variables globales corrompus
par silverman Dim 16 Sep 2018 - 13:38

» Verrouiller un form en avant plan
par silverman Dim 16 Sep 2018 - 12:50

» Fin de l'aventure.
par Pedro Alvarez Sam 15 Sep 2018 - 18:16

» Demande d'explications Sur File_Write & File_writeln
par Jack Sam 15 Sep 2018 - 17:26

» MEMO avec des possibilités de commande
par Oscaribout Mer 12 Sep 2018 - 1:06

» La théorie du chaos
par jean_debord Mar 11 Sep 2018 - 9:30

» Orbites de l’ensemble de Mandelbrot
par Jean Claude Lun 10 Sep 2018 - 21:08

» Version instantanée V 0.9.29i2 du 4/09/2018
par silverman Mer 5 Sep 2018 - 10:15

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
CalendrierCalendrier

Partagez | 
 

 Création d'une application avec Panoramic_Editor

Aller en bas 
AuteurMessage
Klaus

avatar

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

MessageSujet: Création d'une application avec Panoramic_Editor   Sam 12 Mai 2018 - 20:18

Depuis longtemps, Panoramic_Editor sait créer un fichier EXE en incluant des fichiers TXT, BMP et JPG. C'est la fonction de création d'application du menu "Fichiers" qui le fait.

Or, dans certains cas, on aimerait embarquer d'autres fichiers, et surtout des fichiers binaires (DLL, ...). Impossible actuellement.

Je vous propose aujourd'hui une solution simplissime 100 % Panoramic pour le faire quand-même. Je l'ai testé en "embarquant" KGF.dll, c'est vous dire ...

L'astuce consiste en gros à créer, pour chaque fichier  binaire, un fichier TXT contenant un dump hexa su fichier binaire. Ce fichier portera le même nom et aura l'extension TXT. Voici un utilitaire simple pour produire cela:
Code:
' hexify.bas
'
' This utility converts any binary file into a TXT file containing an hexadecimal dump
' of the binary file, with lines containing BlockSize%*2 characters.
' This kind of file can easyly be included into a Panoramic Application EXE file.
' Thus, any binary file can be used, not only TXT, JPG and BMP files.
' Please use the ExtractFiles procedure from the test_application.bas file to rebuild
' the binary files on program startup - see this program for documentation.

label opn, ext

dim f$, fout$, no%, no1%, no2%, ext$, buf$, siz%, siz0%
dim BlockSize% : BlockSize% = 512

no% = no% + 1 : main_menu no% : no1% = no%
  no% = no% + 1 : sub_menu no% : no2% = no% : parent no%,no1% : caption no%,"Files"
    no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Open" : on_click no%,opn
    no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"-"
    no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Exit" : on_click no%,ext
  
open_dialog 100
progress_bar 101 : top 101,40 : left 101,10 : width 101,width_client(0)-20

end

opn:
  ' ask for file to convert
  f$ = file_name$(100)
  if f$="_" then return
  if file_exists(f$)=0
    message "File not found"
    return
  end_if
  ' build TXT file name
  ext$ = file_extract_extension$(f$)
  fout$ = left$(f$,len(f$)-len(ext$))+".txt"
  ' get binary file size
  filebin_open_read 1,f$
  siz% = filebin_size(1)
  if siz%=0
    message "File is empty"
    filebin_close 1
    return
  end_if
  ' check if file exists
  if file_exists(fout$)=1
    if message_confirmation_yes_no("Output file already exists. Replace ?")<>1
      filebin_close 1
      return
    end_if
    file_delete fout$
  end_if
  
  ' conversion loop
  file_open_write 2,fout$
  siz0% = siz%
  max 101,siz0%
  ' do as many full block reads as possible
  while siz%>=BlockSize%
    position 101,siz0%-siz%
    buf$ = filebin_hexa_read$(1,BlockSize%)
    file_writeln 2,buf$
    siz% = siz% - BlockSize%
  end_while
  ' eventually, do a final partial block
  if siz%>0
    position 101,siz0%
    buf$ = filebin_hexa_read$(1,siz%)
    file_writeln 2,buf$
  end_if
  ' done
  position 101,siz0%  
  filebin_close 1
  file_close 2
  message "File created:"+chr$(13)+chr$(10)+fout$
  position 101,0
  return
  
ext:
  terminate
  

Et voici une démo simple montrant l'utilisation. Ce programme vérifie si KGF.dll est présent. Si oui, rien ne se passe. Si KGF.dll est absent, une procedure ExtractFiles() est appelée. Cette procédure va extraire tous les fichiers binaires emparquées, en s'aidant d'un fichier index en format TXT qui donne, pour chaque fichier binaire, le nom du fichier hexifiée, puis le nom du fichier binaire, éventuellement avec son chemin. Toutes les explications sont dans le code:
Code:
' test_application.bas
'
' This program is for demonstration purposes only.
' It show how to include any binary file into a Panoramic Application EXE file.
' Using the hexify utility, any binary file can be converted to an hexa dump
' in TXT format. Same file name, but *.TXT extension. Thus, the file will be
' flawlessly integrated into the application.
' As many binary files as required may be included in the same way.
' A supplemental TXT file must be supplied, giving the index of all included
' binary files, in the following format:
'   index file name: IndexOfIncludedFiles.txt
'   index file content:
'     first line: #IndexOfIncludedFiles
'     followed by 2 lines for each binary file. The first of them is the name
'     of the hexified TXT file, without path. The second of them is the target
'     file name, eventually including the destination path
' Example:
'    #IndexOfIncludedFiles       <=== first line as identifyer
'    KGFdll.txt                  <=== name of the hexified TXT file
'    KGF.dll                     <=== name of the resulting binary  output file
'    ...

dim res%, vers$, KGF$
KGF$ = "KGF.dll"

if file_exists(KGF$)=0 then ExtractFiles()
message "Ready..."

end

sub ExtractFiles()
  dim_local s$, fincluded$, foutput$, nobj%, n%
  
  nobj% = 1
  while object_exists(nobj%)=1
    nobj% = nobj% + 1
  end_while
  dlist nobj%
  file_load nobj%,"IndexOfIncludedFiles.txt"
  
  n% = 1
  s$ = item_read$(nobj%,n%)
  if s$<>"#IndexOfIncludedFiles"
    message "Invalid index file"
    delete nobj%
    exit_sub
  end_if
  
  while n%<count(nobj%)
    n% = n% + 1
    fincluded$ = item_read$(nobj%,n%)
    n% = n% + 1
    foutput$ = item_read$(nobj%,n%)
    
    file_open_read 1,fincluded$
    filebin_open_write 2,foutput$
      while file_eof(1)=0
        file_readln 1,s$
        filebin_hexa_write 2,len(s$)/2,s$
      end_while
    filebin_close 2
    file_close 1
  end_while  
  delete nobj%
end_sub


Dernière édition par Klaus le Dim 13 Mai 2018 - 8:18, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

Nombre de messages : 5990
Age : 68
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Création d'une application avec Panoramic_Editor   Dim 13 Mai 2018 - 2:38

Salut Klaus

Voilà une excellente idée !

J’ai testé.
Pour hexify.bas il y un caractère superflu en ligne 72 ( un point en fin de ligne)

Code:

position 101,siz0%  .

Pour test_application.bas, j’obtiens l’erreur
Impossible to load the File. Line : 39
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Klaus

avatar

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

MessageSujet: Re: Création d'une application avec Panoramic_Editor   Dim 13 Mai 2018 - 8:27

Merci d'avoir testé !

Citation :
Pour hexify.bas il y un caractère superflu en ligne 72 ( un point en fin de ligne)
C'est corrigé en haut. Bizarre que ça ne génère pas d'erreur...

Citation :
Pour test_application.bas, j’obtiens l’erreur
Impossible to load the File. Line : 39
Est-ce que tu as généré ce programme en "application", en présence du fichier IndexOfIncludedFiles.txt tel que c'est décrit dans les commentaires, et un fichier TXT issu de hexify.bas ? Ce message vient en deux circonstances:
- tu as lancé le programme directement dans Panoramic_Editor, ou génére en exécutable (dans ce cas, le fichier IndexOfIncludedFiles.txt manque forcément...)
- tu tentes de lancer le programme généré en application par Panoramic_Editor, mais sans arrêter Panoramic_Editor (dans ce cas, tu tombes dans le problème que j'ai signalé ici

C'est une démo "proof of concept", montrant la faisabilité. On pourrait aisément ajouter toute une série de tests pour vérifier la présence ou non du fichier IndexOfIncludedFiles.txt, pour vérifier la présence de chacun des fichiers hexifiés indiqués dans IndexOfIncludedFiles.txt, etc.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Création d'une application avec Panoramic_Editor   Dim 13 Mai 2018 - 18:42

J'ai fait un petit programme 100 % Panoramic qui permet d'analyser un fichier EXE pour en extraire les noms des fichiers embarqués en tant qu'application, si tel est le cas. Et pour faire bonne mesure, j'ai ajouté le test si le petit fichier index est présent, ce fichier donnant la liste des fichiers binaires hexifiés:
Code:
' ExeResourceManager.bas


label open, exit

dim no%, no1%, no2%, no_open%, no_names%
dim f$, ext$, a%, an%, k%, s$, buf%(256), PEheader%, v%, SectionCount%
dim ResourceSection%, SectionOffset%, SizeOfResources%, PointerToResources%
dim ResourceNameEntries%, ResourceIdEntries%, RCDATApointer%
dim PointerToRCDATA%, RcDataResourceNameEntries%, RcDataResourceIdEntries%

no% = no% + 1 : main_menu no% : no1% = no%
  no% = no% + 1 : sub_menu no% : no2% = no% : parent no%,no1% : caption no%,"Files"
    no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Open" : on_click no%,open
    no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"-"
    no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Exit" : on_click no%,exit
   
no% = no% + 1 : open_dialog no% : no_open% = no%
  filter no%,"EXE or DLL files|*.exe;*.dll"
no% = no% + 1 : list no% : no_names% = no%
  top no%,10 : left no%,10 : width no%,300 : height no%,200 
                                           
caption 0,"ExeResourceManager"   


end
   
open:
  f$ = file_name$(no_open%)
  if f$="_" then return
  if file_exists(f$)=0
    message "File not found"
    return
  end_if
  ext$ = lower$(file_extract_extension$(f$))
  if (ext$<>".exe") and (ext$<>".dll")
    message "Wrong file type (EXE or DLL)"
    return
  end_if
 
  AnalyzeExeFile()
  if CheckIfFileIsIncluded("IndexOfIncludedFiles.txt")=1
    message "Le fichier index est bien présent"
  else
    message "Le fichier index est absent"
  end_if
  return
 
exit:
  terminate
 
 
 
sub AnalyzeExeFile()
  filebin_open_read 1,f$                  : ' open the selected EXE or DLL file
 
  ' at offset hex("3C") is located the length of the MS-DOS header.
  ' this is also the start offset for the PE header
  a% = Read32(hex("3C"))

  ' at this point, there must be the PE signature (letters PE followed by 2 zero bytes)
  v% = Read32(a%)
  if v%<>hex("00004550")
    message "Invalid EXE or DLL file"
    filebin_close 1                          : ' close the file
    exit_sub
  end_if
  PEheader% = a% + 4                        : ' skip the PE signature to point to the PE header
 
  ' at offset 2 of the PEheader, there is the section count as 16 bit number
  SectionCount% = Read16(PEheader%+2)

  ' at offset 16 of the PEheader, there is the size of the optional header as 16 bit number
  v% = Read16(PEheader%+16)

  ' now, point after the header (20 bytes) and after the optional header (v% bytes)
  a% = PEheader% + 20 + v%
 
  ' here is the section table - 40 bytes of section header for each section.
  ' the first 8 bytes are the ASCII section name:
  ResourceSection% = 0
  for k%=1 to SectionCount%
    s$ = ReadString$(a%,8)
    if s$=".rsrc"
      ResourceSection% = k%
      SectionOffset% = a%
    end_if
    a% = a% + 40
  next k%
  if ResourceSection%=0
    message "Resource section .rsrc not found"
    filebin_close 1                          : ' close the file
    exit_sub
  end_if

  ' here, the resource section header is identified.
  ' at offset 16, there is the 32 bit section size
  ' at offset 20, there is the 32 bit section pointer
  SizeOfResources% = Read32(SectionOffset%+16)
  PointerToResources% = Read32(SectionOffset%+20) 
 
  ' PointerToResources% contains the pointer to the resource directory table header
  ' at offset 12, there is the 16 bit number of name entries
  ' at offset 14, there is the 16 bit number of ID entries
  ResourceNameEntries% = Read16(PointerToResources%+12)
  ResourceIdEntries% = Read16(PointerToResources%+14)
 
  if ResourceNameEntries%>0
    a% = PointerToResources% + 16
    RCDATApointer% = 0
    for k%=1 to ResourceNameEntries%
      an% = PointerToResources% + bin_and(Read32(a%),hex("0FFFFFFF"))
      s$ = ReadUnicodeString$(an%)
      if s$="RCDATA"
        RCDATApointer% = Read32(a%+4)
      end_if
      a% = a% + 8
    next k%
  end_if
  if RCDATApointer%=0
    message "RCDATA section not found"
    filebin_close 1                          : ' close the file
    exit_sub
  end_if
 
  ' here, RCDATApointer% contains the pointer to the data for the RCDATA section.
  ' if high bit is set, this is an offset to a resource directory entry,
  '  otherwise, it is just an offset to the data.
  if bin_and(RCDATApointer%,hex("80000000"))=0
    ' actually not used... 
  else  : ' here, we have an offset to lower level resource directory header
    PointerToRCDATA% = PointerToResources% + bin_and(RCDATApointer%,hex("0FFFFFFF"))   
    ' at offset 12, there is the 16 bit number of name entries
    ' at offset 14, there is the 16 bit number of ID entries
    RcDataResourceNameEntries% = Read16(PointerToRCDATA%+12)
    RcDataResourceIdEntries% = Read16(PointerToRCDATA%+14)

    if RcDataResourceNameEntries%=0
      message "No included resource file"
      filebin_close 1                          : ' close the file
      exit_sub
    end_if
    ' here, the names entries indicate the included files for the applciation
    a% = PointerToRCDATA%+16
    clear no_names%
    for k%=1 to RcDataResourceNameEntries%
      an% = PointerToResources% + bin_and(Read32(a%),hex("0FFFFFFF"))
      s$ = ReadUnicodeString$(an%)
      ' here we have the names of the included resource files
      item_add no_names%,s$ 
      a% = a% + 8
    next k%
   
  end_if         
 
 
  filebin_close 1                          : ' close the file
end_sub
 
' this function reads a 32 bit word from the specified offset and returns its value 
fnc Read32(offset%)
  filebin_position 1,offset%
  filebin_block_read 1,4,buf%(0)
  result ((buf%(3)*256+buf%(2))*256+buf%(1))*256+buf%(0)
end_fnc

' this function reads a 16 bit word from the specified offset and returns its value 
fnc Read16(offset%)
  filebin_position 1,offset%
  filebin_block_read 1,2,buf%(0)
  result buf%(1)*256+buf%(0)
end_fnc

' this function reads a n byte string from the specified offset and returns the string
fnc ReadString$(offset%,n%)
  dim_local i%, s$, c%
  filebin_position 1,offset%
  s$ = ""
  for i%=1 to n%
    c% = filebin_read(1)
    if c%<>0 then s$ = s$ + chr$(c%)
  next i%
  result s$
end_fnc

' this function reads a Unicode resource name string from the specified offset and returns it as ASCII string
fnc ReadUnicodeString$(offset%)
  dim_local s$, c%, n%, i%
  s$ = ""
  n% = Read16(offset%)
  for i%=1 to n%
    c% = filebin_read(1)
    s$ = s$ + chr$(c%)
    c% = filebin_read(1)    : ' skip the Unicode extension unsused in Panoramic !
  next i%
  result s$
end_fnc

fnc CheckIfFileIsIncluded(file$)
  dim_local res%, i%
  res% = 0
  if count(no_names%)=0 then exit_fnc
  for i%=1 to count(no_names%)
    if item_read$(no_names%,i%)=upper$(file$) then res% = 1
  next i%
  result res%
end_fnc


Ca marche sur tous les EXEs créés par Panoramic, qu'ils soient "application" ou non. Mais quelle galère ! On pourrait éviter tout cela avec deux lignes si ma suggestion d'une fonction APPLICATION_FILE_EXISTS était implémentée ( voir ma proposition ici )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 8083
Age : 47
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 14 Mai 2018 - 12:35

Oui, effectivement.
Et on est loin d' avoir tous tes connaissances.
Wink

En tout cas, Bravo pour ce code.
Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
xxx



Nombre de messages : 261
Date d'inscription : 30/03/2018

MessageSujet: Re: Création d'une application avec Panoramic_Editor   Lun 14 Mai 2018 - 13:13

Eh bien c'est parfait tour ça, ça repond à mes questions.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Oscaribout



Nombre de messages : 195
Date d'inscription : 29/12/2016

MessageSujet: Re: Création d'une application avec Panoramic_Editor   Lun 14 Mai 2018 - 13:58

Bonjour,
C'est pas méchant, mais je suis surpris que depuis quelques temps, alors qu'on est sur un site français, on mette systématiquement les commentaires en anglais.

On est devenu peu de choses. Sad

Il y en a qui vont dire que la programmation c'est l'affaire des américains, et qu'il n'y a rien à dire, c'est comme celà. C'est une phrase que des vendeurs tenaient dans les années 80 et qu'on m'a souvent dit à cette époque. Je sais que j'aimerai bien avoir 30 ans de moins mais tout de même!

Je sais ce que je dis et rien, c'est pareil. donc je m'en vais.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Création d'une application avec Panoramic_Editor   Lun 14 Mai 2018 - 15:08

Sur le fond, je suis d'accord avec toi, Oscaribout. Formu français - contributions en français. D'ailleurs, tous mes programmes sont en français - code, commentaires et documentation.

Je viens de faire une exception, et je l'assume totalement. J'ai posté un utilitaire permettant de chercher dans un fichier EXE ou DLL, spécifiquement les ressources de la catégorie RCDATA. Ce sont ceux qui contiennent les fichiers embarqués en mode "application", par Panoramic_Editor.

C'est un outil extrêmement technique, pour un usage bien spécifique. et je pense qu'il peut avoir un intérêt, au-delà du forum français. Ce forum français intéresse d'ailleurs de temps en temps des membres non francophones, comme récemment Jennyk avec qui j'ai eu un petit échange en anglais. Et comme la fin de cette discussion portait sur les fichiers embarqués, je me suis dit que cet outil pourrait également l'intéresser.

J'ai déjà eu des échanges avec des membres en allemand et même en portugais (brésilien). Il se trouve que je suis plus que bilingue et peux, de ce fait, intervenir auprès de membres ayant des difficultés en Français. Je n'oublie jamais que le Français n'est pas ma langue maternelle, mais seulement ma deuxième langue étrangère à l'école (eh oui, ma première langue étrangère était le Latin...). Je fais donc cela, sporadiquement, simplement pour mettre à l'aise des Panoramiciens présents rarement pour cause de barrière de langue.

J'ai bien l'intention de continuer, si le besoin s'en fait sentir.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
JL35



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

MessageSujet: Re: Création d'une application avec Panoramic_Editor   Lun 14 Mai 2018 - 17:10

Klaus, concernant ton système de conversion binaire -> hexa (texte), puis reconversion hexa -> binaire

Est-ce qu'il ne pourrait pas y avoir dans le binaire originel quelque part les valeurs successives 1310 qui seront traduites et écrites dans le fichier texte comme '0D0A'

A la relecture du fichier (mode texte, donc ligne par ligne) pour reconversion en binaire, ce sera considéré comme un saut de ligne et donc escamoté en lecture... ?

Ou je n'ai pas bien regardé ?

PS
Vérification faite, apparemment ça ne gêne pas, j'ai fait une sub qui recopie entièrement le binaire dans une seule variable, en hexa, laquelle variable est écrite dans un fichier texte.
A la reconversion, les '0D0A' éventuels sont bien reconstitués.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Création d'une application avec Panoramic_Editor   Lun 14 Mai 2018 - 22:07

Oui, JL35, ça marche bien. J'ai même essayé avec un vrai fichier texte (un fichier source Panoramic).

Le fichier "hexifié" contient vraiment le dump hexa, y comprir d'éventuels CR LF convertis en 0D 0A. Chaque ligne contient le code hexa de 512 octets (donc 1024 caractères), suivi du CR LF délimitant la ligne du fichier texte. La dernière ligne du fichier hexifié contient le reste dépassant un multiple de 512 octes, également suivi d'un CR LF.

A la reconstitution, on lit le fichier hexifié en lecture séquentielle, et on obtient des lignes de 1024 caractères, évidemment sans le CR LF terminal. Après reconversion en binaire, on récupère les 512 octets binaires, y compris d'eventuels CR LF présents dans le fichier hexifié sous forme de 0D 0A et non CR LF. Donc, tout se goupille parfaitement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
JL35



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

MessageSujet: Re: Création d'une application avec Panoramic_Editor   Lun 14 Mai 2018 - 22:15

Tu as raison Klaus, j'ai eu un doute qui s'est dissipé, avec l'expérience et tes explications.
Et effectivement c'est très intéressant et astucieux comme système pour intégrer du binaire dans une application Panoramic.
Avec éventuellement d'autres usages, à voir.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Création d'une application avec Panoramic_Editor   Mar 15 Mai 2018 - 0:36

J'apporte une information supplémentaire, même si, sur le fond, il n'y a rien de nouveau:
Comme ce mécanisme de hexification peut s'appliquer à n'importe quel fichier, il peut à l'évidence s'appliquer à un fichier ZIP. Et on peut ainsi embarquer, en un seul fichier ZIP hexifié, des dizaines de fichiers de toutes sortes, y compris leur arborescence de dossiers. Puis, au lancement du programme, on peut extraire ce fichier, reconstituer le ZIP d'origine, puis décompresser le ZIP selon les 3 moyens à disposition:
- les commandes ARCHIVER_xxx
- les fonctions ZIP de KGF.dll
- un fichier BAT appelant ZIP en mode DOS
On a là de puissants moyens d'installation d'applications complexes, sans avoir besoin de recourir à un logiciel externe de création d'un programme d'installation, au moins tant qu'une installation se résume à la création de dossiers et la copie de fichiers, ce qui devrait être la majeure partie des cas.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: Création d'une application avec Panoramic_Editor   

Revenir en haut Aller en bas
 
Création d'une application avec Panoramic_Editor
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Création réseau local avec BBOX?
» Création d'un parcours avec Base Camp
» Création d'un iti avec BaseCamp
» Présentation d'Outpost Security Suite Pro
» Téléchargement Basecamp sur tablette tactile

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: