PS:Je te conseillerai plutot d'utiliser l'API ShellExecute, ce qui te permettra de ne pas avoir a te soucier du ficheir d'accès à l'éxecutable Access (juste le nom du ficheir à lui transmettre
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 30 déc. 2005 à 09:20
Pourquoi utiliser une concaténation avec Chr(34) (d'ailleur, mieux vaudrait utiliser Chr$(34) dans ce cas) alors qu'un simple doublement des guillemets dans la chaine de caractères suffit ? C'est faire des opération pour rien et cela ne simplifie pas du tout la lecture du code !!!
CR
Vous n’avez pas trouvé la réponse que vous recherchez ?
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 30 déc. 2005 à 19:39
Oulala !!! Autant pour moi !!!
Ben dit donc, on en apprend décidément tous les jours!!!
Alors comme ça il y a bel et bien des caractères d'échappement en VB !!! Moi qui avait déséspéré depuis un bail!!!
Mais dit donc Crenaud, tu nous sorts cette indo d'où ??? On te la dis ou alors tu la lue quelque part et dans ce cas, où diable as-tu bien pu lire une telle chose ????????
Juste une question : est-ce qu'il concatène ou alors est-ce vraiment un caractère d'échappement de vrai de vrai (le sais-tu) ???
Pi dit, t'en as d'autres des trucs comme ça ???
Renfield :
Dit, faudra vraiment m'expliquer un jour l'intérêt d'employer une fois CHR, une fois CHR$ et une autre fois CHRB (&co). Moi, olds-BASICeur, y'a bien toujours utilisé Chr$... Mais en arrivant en VB on m'a dit tout de suite "Hop là mon gar, te bile pas, on a tout simplifié.". Et toi (en qui j'ai une grande confiance ) tu n'arrêtes pas de nous dire d'employer les fonctions alternatives !!!
Alors, qu'est-ce que ces fonctions on de plus que les "génériques" ??? La vitesse je présume. Mais n'ont-elles pas elles-aussi des limites qui, si on n'en tiend pas compte, renderait leur utilisation mauvaise (un peu comme les types de le VB auto convertis...) ?
Enfin, perso, j'aimerais vraiment que tu éclaires ma conduite parce que je ne sais plus à quel saint me vouer !!!
Sinon, il serait vachement bien que le clan des brutes (en VB) nous pondent un petit grand tuto sur les fonctions de manipulations textuelles ne remplacant pas l'aide mais nous permettant de faire un bon tour d'horizon avec les avis des vrais "pros"! Qu'en dites-vous ?
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 30 déc. 2005 à 21:19
Pour l'interet d'utiliser Chr$() au lieu de Chr(), celui qui t'as dit de laisser tomber le Chr$() ... s'est planté !! Chr() retourne un variant, qui sera implicitement convertit en string si tu fait un truc du genre Buffer = Chr(34) si Buffer est de type string. Chr$() -comme Left$(), Right$(), mid$() etc ...- retourne directement une string !! PAs de conversion d'un variant en string, donc mieux !!!
Pour le doublement du guillemet, je n'en rajouterai pas, Renfield ayant répondu à ma place (valait mieux ...)
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 30 déc. 2005 à 21:45
C'est bien ce que je me disais (concernant le caractère d'échappement) !
Mais je me demande toujours d'où vous tirez cette info parce que franchement, cette foutue MSDN, j'y ai passé des dixaines d'heures le nez coller au plus profond de ses entrailles et je n'ai jamais rien lu de tel ! Alors peut-être est-ce dans la version on-line, peut-être pas. Mais quoi qu'il en soit je serais curieux de savoir (si vous vous en souvenez) d'où vous tirez ce truc... Parce que... qui sait encore combien d'autres trucs du genre (genre "arrêter de se prendre le choux avec des lignes de code à ralonge") le VB cache au commun des mortels !?!?
Renfield :
Question : Est-ce que "Chr" est la même chose que "Chr$"
ou pas (sinon, fait m'expliquer parce que je comprends plus rien!!!) ?
Et si oui, alors pourquoi mettre le périmé "$" (clareté du code, pseudo
rétro compatibilité, habitude ?) ???
Je ne suis pas certain de bien saisir... La MSDN nous dit ceci :
"Note : La fonction ChrB est utilisée pour traiter sous
forme d'octets les données d'une valeur de type String. Au lieu de
renvoyer un caractère codé sur un ou deux octets, la fonction ChrB renvoie toujours un seul octet. La fonction ChrW renvoie une valeur de
type String contenant le caractère
<object id="alink_10" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_10.Click() ]Unicode, sauf sur les plates-formes qui
ne gèrent pas ce caractère. Dans ce cas, le comportement est le même que pour la
fonction Chr." Autrement dit, Chr choisit, selon l'environnement (SBCS ou DBCS [Single/Double Byte Character Set]), le format renvoyé (1 ou 2 octects) et accèpte des bytes ou des longs en entré. Autrement dit, Chr fait le choix automatiquement. Autrement dit encore : c'est mieux lors de petites opérations (ne demandant pas d'optimisations particulières) pour ne pas se prendre la tête.
Moi j'ai quand même deux petites questions qui me trottent dans la tête...
Est-ce que toutes ces fonctions sont bien distinctes ou alors est-ce que le VB n'en lance qu'une seule (avec, en quelque sorte, un argument de sélection du traitement à effectuer) ???
Gagne-t-on vraiment en vitesse ???
Eh puis, lorsque tu me dis que "CHR$" est a privilégier la pluspart du temps... moi, je me pose des questions!!!
En effet, les codes ASCII/AINSI (j'ai d'ailleurs jamais bien saisi la différence!!!), y'en a bien que 256 !!! Du coup, on utilise bien toujours des Bytes en entré !!! Du coup, on devrait plutôt toujours utiliser ChrB non !?!?!? Parce qu'en plus, à part les contrôles Rich Text Box et celui du Browser de IE, tous les autres sont bien en "SBCS" non !?!?
Bref, tout ça pour dire que je comprends toujours pas très bien...
(wai, désolé, je sais, j'suis un peu chiant mais que voulez-vous... c'est mon seul moyen d'avancer )
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 30 déc. 2005 à 22:05
Voici un extrait de la MSDN (version 6.0a) fourni avec VS6 (pas la version online ! La version CD)
Impression de guillemets dans une chaîne
Il arrive que des chaînes de texte contiennent des guillemets (" ").
Elle dit, "Tu le mérites !"
Les chaînes affectées à une variable ou à une propriété étant délimitées par des guillemets (" "), vous devez doubler les guillemets contenus dans une chaîne si vous souhaitez qu'ils soient affichés au moment de l'exécution. Visual Basic interprète deux guillemets placés sur une même ligne comme un seul guillemet incorporé.
Par exemple, pour créer la chaîne précédente, utilisez le code suivant :
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 31 déc. 2005 à 08:07
Rubriaue "Utilisation du contrôle TextBox"... d'accord...
Comme quoi, y'a des astuces bien planquées un peu partout dans la MSDN !!! Dommage pour moi qu'ils n'aient pas mis cette info aussi ailleurs
... j'aurais gagné un sacré paquet de temps!!!
Un jour, faudrait quand même lister toutes ces "astuces" pour les newbies (comme moi ) !
En tous les cas, Crenaud, je n'ai qu'une chose à te dire pour ce tuyaux :
Do
Me.? "MERCI ";
Loop
Enjoy
<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 31 déc. 2005 à 08:48
pour ChrB, une autre nuance que tu pointe ici : elle renvoie un octet....
VB travaille avec des chaines en unicode, ChrB permet de travailler avec un caractère codé sur un seul octet.
en clair, pour voir un caractère sous VB, il faut faire :
strconv ( chrb$(65) , vbUnicode)
c'est un peu particulier, et reservé a certains usages, j'avoue ne
jamais m'en etre servi.... comme je te le disais, Chr$ est a préconiser
dans la plupart des cas..
quant a la difference entre Chr et Chr$ (et les fonctions ...$) Crenaud a bien repondu ^^
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 3 janv. 2006 à 13:21
Pour ce qui est du doublement des guillemets, je dois avouer que j'ai été obligé de le chercher un peu dans la MSDN avant de pouvoir t'en faire un copier-coller. Mais cette règle existe, de mémoire, depuis les toutes premières versions des langages de la famille BASIC et c'est avec un de ceux-la que j'ai commencé la programmation il y à plus de 20 ans (sur un ZX-80 !!)
Voila en vérité d'ou je tiens cette information
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 3 janv. 2006 à 14:27
Ben tu vois, moi aussi j'ai commancé depuis le tout début (CPC464) et pourtant je ne connaissais pas ça comme quoi, l'info est - à mes yeux tout du moins - très précieuse!!!
Enjoy
<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )