Déterminer le type de données cachées dans un NSData
ClicCool
Membre
Bonjour à tous
Y a-t-il un moyen de déterminer (à la louche éventuellement ) le type de données hébergées par un NSData ?
Je m'explique:
Avec Lauris, nous essayons de réfléchir à une sorte de couteau suisse des bases sql qui proposerait un objet d'édition adapté selon le type de données récupérées depuis sql.
Par exemple une NSTextView pour l'édition de textes ou une NSImageView pour les images etc...
Le pb c'est que pour sql il semble que les champs de type text (tinyText mediumText ou text) soient identiques aux champs blob (tinyBlob, mediumBlob ou Blob). le type renvoyé est toujours blob.
Et même pour un blob donné, comment savoir s'il s'agit d'une image ou d'un son ou une vidéo etc... ?
Bref je souhaiterai éviter au maximum d'avoir à demander à l'utilisateur quel type de données tel champ contient ... et au moins être capable d'identifier des données de type NSData en provenance d'une appli cocoa ...
Faut-il adresser "à l'aveugle" les datas dans un conteneur au hazard et essayer de détecter une erreur avant de passer alors à un conteneur de type différent ? ???
Quelqu'un a une piste ? :-\
Y a-t-il un moyen de déterminer (à la louche éventuellement ) le type de données hébergées par un NSData ?
Je m'explique:
Avec Lauris, nous essayons de réfléchir à une sorte de couteau suisse des bases sql qui proposerait un objet d'édition adapté selon le type de données récupérées depuis sql.
Par exemple une NSTextView pour l'édition de textes ou une NSImageView pour les images etc...
Le pb c'est que pour sql il semble que les champs de type text (tinyText mediumText ou text) soient identiques aux champs blob (tinyBlob, mediumBlob ou Blob). le type renvoyé est toujours blob.
Et même pour un blob donné, comment savoir s'il s'agit d'une image ou d'un son ou une vidéo etc... ?
Bref je souhaiterai éviter au maximum d'avoir à demander à l'utilisateur quel type de données tel champ contient ... et au moins être capable d'identifier des données de type NSData en provenance d'une appli cocoa ...
Faut-il adresser "à l'aveugle" les datas dans un conteneur au hazard et essayer de détecter une erreur avant de passer alors à un conteneur de type différent ? ???
Quelqu'un a une piste ? :-\
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Par exemple, une image GIF commence toujours par les caractères "GIF87a" ou "GIF89a", donc en analysant les x premiers octets de la NSData, tu peux "deviner" approximativement le type de donnée stockée.
.
ah ben oui ! merci Bru,
dans pas mal de cas les premiers octets d'un data sont une signature en effet.
pour un NSData issu d'un NSTextView il semble que ce soit "\rtf1\mac\ansi...".
OK je planche là dessus, de toutes façon ça ne peut qu'être instructif à défaut d'être productif
Merci, aussi à toi mpergan
J'ai l'impression d'avoir eu les yeux plus gros que le ventre tellements les possibilités sont nombreuses. Va surement faloir se résoudre à se limiter aux data les plus courantes
J'ai pas eut l'occasion de vérifier si cette commande existait sur OS X ou Fink, mais son but c'est d'identifier le type de fichier par son contenu..