Limitation d'un chanp de text

richch Messages postés 58 Date d'inscription lundi 21 février 2005 Statut Membre Dernière intervention 4 janvier 2008 - 12 mai 2005 à 17:06
Nicolas_kojack Messages postés 136 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 25 mai 2012 - 16 mai 2005 à 15:45
Je cherche à développer une fonction en ASP qui me permet de ‘filtrer’ un cham de texte venant d’un formulaire. Par exemple : C:\Inetpub\wwwroot\actu\images\4.jpg


Je ne prends que ‘4.jpg’ pour l’insérer ensuite dans une Base de Données.


Je réussi à transférer le fichier sur le serveur en utilisant les composantes aspSmartUpload.


Merci.

7 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
12 mai 2005 à 17:56
si le fichier est chez toi, tu peux utiliser system.io



dim fi as new fileinfo(path)

return fi.name



ca marche peut etre aussi avec un fichier fictif, mais pas sur



sinon la bonne vieille méthode de manipulation de chaine :p



dim s as string = "path"

return array.lastindexof(s.split(""c))



ou un truc du genre

<hr>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0
Nicolas_kojack Messages postés 136 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 25 mai 2012
13 mai 2005 à 10:15
Tu peux aussi faire comme ça en ASP :
je présume que tu connais alors le dossier dans lequel arrive ton fichier

<%
texte = item.name
debutchaine = Instr(texte,"lenomdetondossier") + nbedecaractdunomdetondossier+1
nbechaine = len(texte)
finchaine = nbechaine - debutchaine
nomfichier = Mid(texte, debutchaine, finchaine)
%>

Mais en effet c 15 fois plus propre avec le split et 15 fois plus rapide à faire
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
13 mai 2005 à 11:44
plus propre et plus rapide à taper oui, mais aprés niveau perf, c'est pas dit, faudrais tester...


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
0
richch Messages postés 58 Date d'inscription lundi 21 février 2005 Statut Membre Dernière intervention 4 janvier 2008
16 mai 2005 à 01:07
Comme je suis un débutant en ASP, veuillez m’expliquer plus clairement les étapes en utilisant le split, j’ai essayéla méthode proposée par Nicolas_kojack mais ça ne marche pasbien, par exemple, si j’écris dans le formulaire : D:\images\7.jpg je ne trouve inséré dans la BD que 7.jp donc ça ne marche pas. Veuillez m’expliquer le plus simple possible.
Le fichier doit être transférer de mon poste ou de n'importe quel PC vers le serveur Web et insérer ainsi son nom dans la BD pour le récupérer et l’afficher sur le site.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nicolas_kojack Messages postés 136 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 25 mai 2012
16 mai 2005 à 01:33
Si tu veux aussi le nom du dossier tu dois enlever sur la deuxieme ligne du code :

+ nbedecaractdunomdetondossier+1

Pour expliquer mon code :
Au préalable ce que tu dois savoir c'est que les fonctions len et Instr te donnent un nombre de caractères. La fonction Mid fait une selection a l'interieure d'une chaine définit.

<%
'correspond au nom complet de ton fichier avec tous les sous rep

texte = item.name

'debutchaine va te servir à avoir un point de démarrage
'La fonction Instr retrouve un caractère dans une chaine donnée
'étant donné que tu connais le nom du dossier
'tu lui fais chercher dans ta chaine le nom de ton dossier
'ceci va te donner en fait la position en nombre de caractere de la chaine
'Si tu veux garder le nom du dossier tu ne met que :

debutchaine = Instr(texte,"lenomdetondossier")

'sinon si tu ne veux que le nom du fichier tu mets le code suivant

debutchaine = Instr(texte,"lenomdetondossier") + nbedecaractdunomdetondossier+1

'ensuite tu as besoin de la longueur de la chaine pour savoir ou couper
'ce qui va être donné par nbechaine
'pour cela on utilise la fonction qui compte le nombre de caractère d'une chaine donnée

nbechaine = len(texte)

'Tu as ensuite besoin de trouver ou tu dois t'arretter dans la chaine
'Pour cela tu utilise finchaine
'La fin de ta chaine est déterminée en dessous par la soustraction des caluls précédents

finchaine = nbechaine - debutchaine

'Pour terminer tu selectionne la partie de ta chaine qui t'interresses
'Pour cela tu utilises la fonction Mid
'Pour cela tu dois lui donner trois indications qui sont
'La chaine sur laquelle tu te bases
'Le début de ta selection
'Et pour finir la fin de ta selection

nomfichier = Mid(texte, debutchaine, finchaine)
%>

Voilà j'espere que c'est assez clair
0
richch Messages postés 58 Date d'inscription lundi 21 février 2005 Statut Membre Dernière intervention 4 janvier 2008
16 mai 2005 à 14:56
Oui, je vous merci, c’est bien clair mais je cherche à insérer le nom de photo et juste son nom sans ajouter le répertoire car la photo sera uploader sur le serveur. Il faut tenir en compte que le nom du photo varie (pas le même longueur).
0
Nicolas_kojack Messages postés 136 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 25 mai 2012
16 mai 2005 à 15:45
Logiquement ça doit fonctionner car je l'utilise, essaies de faire varier le paramètre finchaine en ajoutant + 2 ou + 1 à la fin de la ligne de code.
0
Rejoignez-nous