Resource fork et data fork d'un fichier OS 9

WIMPWIMP Membre
03:43 modifié dans API AppKit #1
Bonjour,

Je voudrais lire la resource fork d'un fichier style OS 9 en utilisant ReadDataOfLength: et
SeekToFileOffset de NSFileHandle, mais je ne vois pas comment discerner la resource fork de la data fork. Une idée ?

Réponses

  • BruBru Membre
    03:43 modifié #2
    Carbon !
    A part ça, que veux tu faire du resource fork ?

    .
  • AntilogAntilog Membre
    03:43 modifié #3
    Je ne sais pas si avec
    short FSOpenResFile (<br />   const FSRef * ref,<br />   SInt8 permission<br />);
    


    , on peut utiliser ReadDataOfLength ???

    Je ne sais pas ce que tu veux faire, mais tout est dans Carbon
    (Get1Resource, GetNamedResource, ...)
    http://developer.apple.com/documentation/Carbon/Reference/Resource_Manager/index.html

    <Edit>Qu'est-ce qu'il est rapide, ce Bru</Edit>
  • WIMPWIMP Membre
    03:43 modifié #4
    Merci de vos réponses. OK, je vais potasser Carbon.
    Le but du jeu c'est d'exploiter un fichier ressource d'un logiciel de dessin. Il contient un bitmap d'image que j'aimerais bien pouvoir afficher à  ma convenance. Mais comme il est dans un format propriétaire, je voudrais pouvoir le "désosser". ::)
  • AntilogAntilog Membre
    03:43 modifié #5
    dans 1157701370:

    Merci de vos réponses. OK, je vais potasser Carbon.
    Le but du jeu c'est d'exploiter un fichier ressource d'un logiciel de dessin. Il contient un bitmap d'image que j'aimerais bien pouvoir afficher à  ma convenance. Mais comme il est dans un format propriétaire, je voudrais pouvoir le "désosser". ::)

    Si tu as une machine sur laquelle Classic est possible, je te recommande de télécharger ResEdit, et d'ourir le fichier avec ResEdit.
    Ca te permettra de comprendre le format de la ressource, et donc de pouvoir la lire par get1Resource...  <3
  • WIMPWIMP Membre
    03:43 modifié #6
    dans 1157711437:

    Si tu as une machine sur laquelle Classic est possible, je te recommande de télécharger ResEdit, et d'ourir le fichier avec ResEdit.
    Ca te permettra de comprendre le format de la ressource, et donc de pouvoir la lire par get1Resource...  <3 <br />

    Je l'avais déjà  fait avant de poster !
    ça m'a permis de voir qu'il ne devait pas être trop difficile de récupérer le bitmap.
    Je savais déjà  par le contexte de l'appli qu'il s'agit d'une image N&B de 256x256 pixels.
    Comme la resource fait 65558 octets, il semble évident qu'il y a juste un petit header suivi du
    bitmap à  un octet par pixel. Reste à  le manipuler convenablement...
    Comme je n'ai jamais pratiqué Carbon, une question de débutant: Est-ce que je peux partir d'une appli cocoa et lui ajouter le framework carbon, ou faut-il faire une appli Carbon ?
    (Je me dis que dans le premier cas, il y a peut-être un problème ave le fichier main)
  • BruBru Membre
    03:43 modifié #7
    Carbon est en langage C, et Carbon est inclus dans Cocoa.
    Donc :
    1. tu peux appeler des fonctions Carbon au sein même de tes méthodes Objective-C.
    2. tu n'as pas à  intégrer le framework Carbon à  ton projet d'appli Cocoa.

    Par contre, pour récupérer ton image, il te faut connaà®tre le type de ressource qui la contient (un code de 4 lettres, peut être BTMP ou BMAP, ou quelque chose dans le style), et son ID.

    .
  • AntilogAntilog Membre
    03:43 modifié #8
    dans 1157722217:

    []
    Par contre, pour récupérer ton image, il te faut connaà®tre le type de ressource qui la contient (un code de 4 lettres, peut être BTMP ou BMAP, ou quelque chose dans le style), et son ID.

    .


    ... Informations que tu trouves avec ResEdit, voilà  pourquoi que j'en avais parlé.
  • BruBru Membre
    03:43 modifié #9
    dans 1157729314:

    ... Informations que tu trouves avec ResEdit, voilà  pourquoi que j'en avais parlé.


    Il vaut mieux utiliser Resorcerer, qui est comptable OSX (il y a belle lurette que j'ai viré OS9 de ma machine).
    Une version démo est téléchargeable sur le site de l'éditeur (ici).

    .
  • WIMPWIMP Membre
    03:43 modifié #10
    dans 1157722217:

    Carbon est en langage C, et Carbon est inclus dans Cocoa.
    Donc :
    1. tu peux appeler des fonctions Carbon au sein même de tes méthodes Objective-C.
    2. tu n'as pas à  intégrer le framework Carbon à  ton projet d'appli Cocoa.

    Par contre, pour récupérer ton image, il te faut connaà®tre le type de ressource qui la contient (un code de 4 lettres, peut être BTMP ou BMAP, ou quelque chose dans le style), et son ID.


    Parfait, c'est encore plus simple que je ne pensais.
    Pour l'image ça sera un peu plus difficile car la ressource est d'un type inconnu au bataillon.
    (Rien n'empêche de créer une ressource ABCD ou XYZW)

    J'avais déjà  essayé la demo Resorcerer. Elle est mieux que ResEdit en effet (Copier/coller non limité à  32000 octets, viewer bmap dédié, etc..) Son seul défaut est d'être payante.
    Pour ma part j'ai gardé OS9 car j'ai de vieilles applis développées en THINK Pascal que j'utilise encore, ainsi que THINK reference, bien utile pour réviser le C standard.

    Voilà , je n'ai plus qu'à  me mettre au boulot.
    Merci Antilog et Bru pour ces éclaircissemets.
Connectez-vous ou Inscrivez-vous pour répondre.