Chtite question ?

cs_nandofive Messages postés 35 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 22 avril 2009 - 16 févr. 2004 à 20:05
ld40 Messages postés 336 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 22 février 2019 - 17 févr. 2004 à 18:52
Bonjour a tous .

Voila mon problème.
J' ai réalisé grace a l' un de vos membres (rené38 pour ne pas le nommé. merci rené38) un petit éditeur qui me permet de travailler sur un fichier en mode binaire.

Ma fonction écrire rempli les espaces vides par des " espaces" soit 20 en hexa
voici la fonction :

Private Sub Ecrire_Click()
Text1.Text = Left(Text1.Text & Space(Longueur), Longueur)
Put 1, Offset_A, Text1.Text

Comment faire pour que au lieu des espaces ( = 20 en héxa ) on est des 00 en héxa dans les espaces.

merci de votre collaboration.

7 réponses

ld40 Messages postés 336 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 22 février 2019 1
16 févr. 2004 à 20:45
à la place de la fonction space() utilise string()

Dim MyString
MyString = String(5, "*")   ' Renvoie "*****".
MyString = String(5, 42)   ' Renvoie "*****".
MyString = String(10, "ABC")   ' Renvoie "AAAAAAAAAA".

0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
17 févr. 2004 à 00:08
Salut

... donc, au lieu de

Text1.Text = Left(Text1.Text & Space(Longueur), Longueur)

Text1.Text = Left(Text1.Text & String(Longueur, 0), Longueur)
0
cs_nandofive Messages postés 35 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 22 avril 2009
17 févr. 2004 à 05:16
Merci a vous pour votre aide précieuse car je débute et je commece a aprecier la programmation visual basic.

long vie a ce site.
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
17 févr. 2004 à 13:25
Je pinaille, mais si tu mets String$( .... ) au lieu de String( ... ), ce sera encore mieux : Plus propre, plus rapide, etc ...
Mais bon, on va encore dire que je pinaille

Christophe R.
0

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

Posez votre question
ld40 Messages postés 336 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 22 février 2019 1
17 févr. 2004 à 13:33
pas de pb pour le pinaillage, si tu garantis que c'est plus rapide, pourquoi pas!
Tout ce que je sais c'est que string$() est la fonctiond'origine des premiers basics
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
17 févr. 2004 à 15:24
Ben non ! Je vais encore pinailler la !!
La différence entre String() et String$(), c'est que String() renvoie un variant et String$() renvoie une chaine. Donc qd tu stockes le résultat dans une variable de type chaine, si tu emplois String(), VB doit faire un "Type Cast" implicite, alors que avec String$(), il range directement le résultat dans la variable, tu gagnes donc le temps du "Type Cast". De plus un variant est très lourd en mémoire donc ca prend de la palce et du temps à manipuler pour VB.
Donc voila pour le pinaillage, String$() n'ets pas un héritage des vieux basic !! C'est une fonction un peu plus typé que String(), voila tout ! Mais il est vrai que dans les anciens basic (que j'ai pratiqué à l'époque ! Mon DIEU !! Serais-je si vvieux !!), les fonctions renvoyant des chaines se nommait ...$

Pour finir, je dirais ceci : Il existe Mid$(), Left$(), Right$(), Trim$(), LTrim$(), RTrim$(), ...
Enfin bref, toutes les fonctions VB qui peuvent retourner une chaine existe en version machinchose$(). Il est hautement recommandé de les utiliser qd on attend une chaine en retour !!!

Christophe R.
0
ld40 Messages postés 336 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 22 février 2019 1
17 févr. 2004 à 18:52
j'y pense...

ici, si on utilise la fonction format(), se sera plus rapide ou moins rapide?
0
Rejoignez-nous