Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
je vais devoir afficher des images stockées dans des colonnes de type BLOB et je pensais faire ça comme ceci :
SelectBlob de ma colonne vers une variable de type Blob
Sauvegarde du blob dans un fichier (ex : "photo.bmp")
attribution du fichier ainsi crée au contrôle de type picture qui est posé sur ma fenêtre
ce qui m'embête là dedans c'est que dans le Blob on pourra mettre indifféremment du JPG ou du BMP ou du GIF etc. et donc je vais avoir besoin d'une colone en plus (ex : "photo_extension") dans ma table pour savoir si le blob est un BMP un JPG ou autre...
y a t'il un autre moyen ?
merci d'avance
Hors ligne
rincevent a écrit:
ce qui m'embête là dedans c'est que dans le Blob on pourra mettre indifféremment du JPG ou du BMP ou du GIF etc. et donc je vais avoir besoin d'une colone en plus (ex : "photo_extension") dans ma table pour savoir si le blob est un BMP un JPG ou autre...
salut, oui ou alors plus direct : tu extrais l'extension du nom de fichier (s'il est fiable)
Hors ligne
rincevent a écrit:
donc je vais avoir besoin d'une colone en plus (ex : "photo_extension") dans ma table pour savoir si le blob est un BMP un JPG ou autre...
Ou même carrèment "nom du fichier" (pourquoi se compliquer la vie)
rincevent a écrit:
y a t'il un autre moyen ?
Tu pourrai lire et parser les premier octets de ton blob en powerscipt ...
Mais si jamais tu fais ça, je nierai avoir jamais été en contact avec toi
Hors ligne
sinon, quitte à rajouter des colonnes : nom fichier, format, largeur, hauteur, poids, nb couleurs, age du capitaine,..
Hors ligne
c'est parti pour une colonne en plus alors,
Hors ligne
shahin a écrit:
rincevent a écrit:
donc je vais avoir besoin d'une colone en plus (ex : "photo_extension") dans ma table pour savoir si le blob est un BMP un JPG ou autre...
Ou même carrèment "nom du fichier" (pourquoi se compliquer la vie)
rincevent a écrit:
y a t'il un autre moyen ?
Tu pourrai lire et parser les premier octets de ton blob en powerscipt ...
Mais si jamais tu fais ça, je nierai avoir jamais été en contact avec toi
Bonjour tout le monde je rebondi sur ce sujet, car je me trouve dans l'obligation de devoir parser les premiers octets de mes blobs afin de détecter le type de fichier qu'il contient...
En effet, la solution qui est en place actuelle stocke des blobs dans une base de donnée sans avoir noter l'extension..
Du coup maintenant on veut les stocker sur un serveur de fichier, il faut donc faire la transformée inverse...
A la base je voulais me passer de l'extension (la plupart des fichiers étant gérés automatiquement) mais j'ai remarqué que lors du passage en blob, mes fichiers ont récupéré une en tête qui contient des infos comme le nom du fichier d'origine...
Du coup si j'arrive à parser, je peux récupérer facilement l'extension!
Puis je pourrais enfin nettoyer mon blob en détectant le caractère de début pour ce type de fichier...
Je sens que je vais passer un mauvais moment à faire tout ça... donc toute aide serait la bienvenue, surtout que pour le moment je bloque au départ, c'est à dire parser un blob...
J'ai essayé string(blob) puis Pos, mais ça ne fonctionne pas...
Hors ligne
Bonjour, je ne sais pas si cela pourra t'aider ou non mais il y a un exemple d'utilisation de Blob ici
http://www.sybase.be/detail?id=1058501 (recherche "blob")
Hors ligne
Merci pour ta réponse, mais j'avais déjà vu ces scripts (je m'en sers d'ailleurs..)
Mais le problème qui se pose est que les champs string récupéré ne sont pas au même format que lorsque j'ouvre mon fichier avec un éditeur de texte...
Du coup je n'arrive pas à retrouver ma chaine de caractère souhaitée...
Si j'arrivais à obtenir des champs string au même format que ce que j'obtiens dans mon éditeur de texte, alors je devrais pouvoir m'en sortir..
Mais la fonction fileread change le format j'ai l'impression...
Est il possible de travailler en Hexadécimal dans Powerbuilder?
Hors ligne
Bonjour,
Je procède de façon très basique pour déterminer le type de fichier dans un blob :
ls_entete = String(BlobMid(iblb_image, 1, 3), EncodingANSI!) // GIF : 'GIF' // JPG : 'ÿØÿ' // BMP : 'BM'
Hors ligne