Avoir le titre d'un BLOB

Bonjour à tous.
J’aimerais récuperer le titre d’un blob, mais je ne sais pas comment
faire… Comme ca, au clic sur le bouton je pourrais retelécharger ce
fichier dans mes dossiers persos.

Je stock un PDF dans un blob comme ceci :

<code 4D>
$doc:=Open Document("")
If (Ok=1)

CLOSE DOCUMENT($doc)
DOCUMENT TO BLOB(Document;[maTable]monBlob)
end if
</code 4D>

Je met dans le BLOB un fichier PDF nommé : monFichier.pdf

J’aimerais afficher le nom dans une champ texte par exemple. Comment
le récuperer ?

J’ai bien lu la doc 4D disant

: 4Ddoc

Comme un BLOB peut contenir n’importe quel type de données, il
n’existe pas de mode de représentation à l’écran par défaut des
BLOBs. Si vous affichez un champ ou une variable de type BLOB dans un
formulaire, l’objet sera toujours vide, quel que soit son contenu.

Mais il existe surement un moyen de résoudre ce probleme ?
D’avance merci pour l’intérêt

Bonjour

Quand tu ouvre le document, tu récupères son chemin d’accès complet dans la variable système “document”

$doc:=Open Document("")
If(Ok=1)
$vt_chemin = document

à partir de là, tu peux récupérer le nom du document à la fin de la chaîne.

Oui j’y avait effectivement pensé, mais au final, on ne récupère pas le nom de BLOB qui est dans la base de données, on créé un nouveau champ.
En gros, je me retrouve au final avec [maTable]monBlob et [maTable]leNomDeMonBlob
Je trouve pas ca très “propre” comme méthode. Ca nous oblige à stocker deux trucs pour un fichier.

C’est pour ça que je demandais si il existait une solution plus directe, comme par exemple, aller lire les propriétés d’un fichier et stocker le titre.

En tout merci quand même de la réponse

C’est toi qui parlais d’afficher le nom du doc dans un champ texte :smiley:

Sinon, tu peux toujours récupérer le nom du doc et le contenu dans 2 variables (texte et blob) , et envoyer ces 2 variables l’une après l’autre dans [maTable]monBlob avec la commande variable vers blob

Mais le jour où tu voudras afficher rapidement la liste des noms des documents stockés, ça peut être pratique d’avoir stocké le nom en clair

: Bastien ROUSSEL

Ca nous oblige à stocker deux trucs pour un fichier.
La propriété “nom de fichier” n’existe pas dans le contenu binaire du fichier. Un système ne fait pas autrement que stocker 2 “trucs”, contenu (le blob) et nom (le titre), et d’associer les deux. Ton enregistrement [maTable] fait pareil.

Tu pourrais toujours stocker en un seul blob contenu et nom (2 blob vers variable - on met ce que l’on veut dans un blob), mais ça va surtout compliquer le stockage et la lecture de ton blob…

D’accord :slight_smile:
Merci a vous deux pour les informations :smiley:

(Je post ce message ici pour ne pas créer un post pour si peu, et il m’est utile pour récuperer le nom d’un fichier)

J’ai remarqué dans plusieurs extrait de code les caractères spéciaux : ≤ et ≥. Que signifient-ils ? Quand devons nous les utiliser et pourquoi ? N’y a t-il un autre caractère possible ? (Par exemple, les variables interprocess dans 4D peuvent être écrite comme ca : <>maVarInterprocess ou bien comme ca : ◊maVarInterprocess. Donc je souhaite savoir si un autre caractère peut remplacer ≤ et ≥ ?)

Bonjour

Ces caractères permettent de désigner le Nième caractère d’une chaine

$vt:=“tato”
// donc $vt≤2≥ sera égal à “a”

Ça peut aussi s’écrire $vt[2] , qui est en fait la syntaxe retenue dans les dernières versions de 4D

D’accord, excellent, je vous remercie :smiley:

Un peu de lecture pour compléter Olivier :
http://doc.4d.com/4Dv16R3/4D/16-R3/Symboles-d-indice-de-chaine.300-3218807.fr.html