|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Futur Membre du Club
![]() Inscription : août 2007 Messages : 36 ![]() |
bonjour, j'ai un truc très précis, à faire en ASP:
j'ai un système de fichier, dont les noms sont stockés dans une base de données, et comme je veux un historique, je ne change pas le nom d'un fichier, je le stocke avec un numéro de version qui est censé évoluer selon le temps: le nom relatif du fichier sera de cette forme: filename_vX.Y.extension pour changer ce nom dans le fichier, je procède de la manière suivante: -j'extrais l'extension puis la version, puis je récupère le nom -j'ai une chaine _vX.Y qui représente la version. X représente un numéro de version majeure, et Y un numéro de version mineure. au départ la version était représentée en réels dans ma base, mais quand je changeais le numéro en ajoutant +0,1 par exemple, cela engendrait à long terme des erreurs, et je me suis retrouvé avec une version 2,599999 après une version 2.5, et en plus, si je décide d'avoir 11 versions mineures avant de passer à la version majeure (ici avec 2 versions majeures déjà), je peux vouloir passer de la version 2.9 à la version 2.10, donc je ne peux pas gérer ça facilement avec les décimaux (parce que je ne sais pas combien de décimales j'aurais, et il faut gérer l'incrément) pour ne pas trop massacrer la base qui était déjà très lourde au moment où je suis arrivé à mon stage, j'ai juste fais passer la colonne de réel flottant à varchar. mais mon problème, c'est que les fonctions que j'ai faites pour remplacer l'incrément ne fonctionnent pas, et je n'ai aucun moyen d'avoir les résultats intermédiaires, car je fais des tests sur un serveur distant, et les tests ne peuvent que se limiter à un test d'intégration... je vous donne les fonctions dont je me sers Code :
Code :
l'erreur réside donc dans les fonctions vmin, vmax et upgrade, le problème est que j'ai appris l'ASP sur le tas en commençant mon stage, et que je me suis inspiré des codes sources de mon prédécesseur, donc il est probable que j'aurais pu faire mieux, mais je savais pas comment... maintenant que j'ai expliqué le contexte, voici ma question: quelqu'un pourrait-il me donner un moyen d'extraire d'une chaine du type "_vX.Y" X et Y étant des nombres inconnus bien sur, et de passer cette chaine à "_vX.(Y+1)" ou "_v(X+1).0"? ceci en ASP coté serveur svp merci d'avance pour vos réponses |
||||
|
|
00
|
|
|
#2 |
|
Futur Membre du Club
![]() Inscription : août 2007 Messages : 36 ![]() |
en fait, je viens de m'apercevoir que je faisais passer mes variable de int à string de cette manière, je vais tester en enlevant les CStr que j'ai mises dans la fonction Upgrade, c'est peut etre ça qui m'a fait bugguer
|
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : août 2007 Messages : 36 ![]() |
en fait ça marche quand meme pas, donc j'ai besoin de votre aide, car là j'ai plus d'idée.
HELP!!! PLEASE HELP!!!
|
|
|
00
|
|
|
#4 | ||
|
Membre confirmé
![]() Inscription : juillet 2007 Messages : 248 ![]() |
Salut,
En faisant ainsi, cela ne fonctionne toujours pas ? Code ASP :
__________________
Cordialement, Gil DERENNE Ingénieur du Son |
||
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : août 2007 Messages : 36 ![]() |
non, ça marche pas, je crois que je vais faire un truc bourrin sur les chaines (genre itératif), mais je pensais qu'il était possible de gérer plus facilement que ça (même en fortran c'est plus facile mon truc...
|
|
|
00
|
|
|
#6 | ||
|
Futur Membre du Club
![]() Inscription : août 2007 Messages : 36 ![]() |
j'ai fait une fonction bourrine, mais ça marche toujours pas, je comprend pas pourquoi, parce que là j'ai plus de conversion à faire, tout se passe en chaine de caractère
voici les codes des 3 fonctions. Code :
je vais finir par criser si ça marche pas |
||
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Inscription : juillet 2007 Messages : 248 ![]() |
Est-ce que vmin(chaine) et vmax(chaine) donnent bien un nombre comme résultat ?
Si oui, ma fonction fonctionne... Si non, en effet, il y a un problème dans tes fonctions vmin et vmax. J'ai pas trop le temps de voir maintenant, je regarderais plus tard (sauf si un autre à déjà trouvé la solution avant moi
__________________
Cordialement, Gil DERENNE Ingénieur du Son |
|
|
00
|
|
|
#8 | ||||||
|
Membre confirmé
![]() Inscription : juillet 2007 Messages : 248 ![]() |
A y est...
Voici le résultat (désolé, j'ai completement modifié ton travail, mais il y avait vraiement beaucoup de trucs que je ne comprenait pas...) : Code :
Code :
Code :
Code :
Response.Write fnUpGrade("1.04", "mineure") ' Donne _v1.05 Code :
Response.Write fnUpGrade("1.04", "majeure") ' Donne _v2.00
__________________
Cordialement, Gil DERENNE Ingénieur du Son |
||||||
|
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() Inscription : août 2007 Messages : 36 ![]() |
ah bah merci, c'est super si ça marche, j'ai pas besoin que cela soit positionné automatiquement sur 2 chiffres, mais je vais tester tout ça
merci bien |
|
|
00
|
|
|
#10 |
|
Futur Membre du Club
![]() Inscription : août 2007 Messages : 36 ![]() |
bon, c'est nickel, ça marche, c'est le bonheur ^^
merci à gderenne, à developpez.net, à toute la communauté de développeurs, à ma maman, à mon poisson rouge... non en fait surtout à gderenne qui m'a pondu une super solution ^^ |
|
|
00
|
|
|
#11 |
|
Membre confirmé
![]() Inscription : juillet 2007 Messages : 248 ![]() |
De rien... C'est bonheur
N'hésite pas avec le bouton Resolu.
__________________
Cordialement, Gil DERENNE Ingénieur du Son |
|
|
00
|
|
|
#12 |
|
Futur Membre du Club
![]() Inscription : août 2007 Messages : 36 ![]() |
justement, j'allais le faire ^^
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com