begin process at 2010 03 19 21:47:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

General

 > 

optimisation: insérer un espace tous les deux caractères


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

optimisation: insérer un espace tous les deux caractères

mardi 3 février 2009 à 09:25:22 | optimisation: insérer un espace tous les deux caractères

Billybobbonnet

Salut à tous,

Comme le titre l'indique, j'avais besoin d'insérer un espace tous les deux caractères dans une variable string qui peut changer de taille. J'ai essayé de le faire moi même, et j'ai réussi, mais c'est plus sur la méthode que je me posais des questions, ça va comme ça? y a t il moins gourmand?

Dim temp as string
Dim buffer as string

While Temp <> ""
            buffer = buffer & Left(Temp, 2) & " "
            Temp = Mid(Temp, 2)
        End While
      
        s = buffer

Merci!
mardi 3 février 2009 à 13:40:21 | Re : optimisation: insérer un espace tous les deux caractères

Renfield

Administrateur CodeS-SourceS
Réponse acceptée !
le gros probleme dans ton code est la reallocation continue de mémoire.

es-tu bien en .Net ? si oui, tu as des StringBuilders
sinon, je peux te préparer quelque chose...
mardi 3 février 2009 à 14:23:34 | Re : optimisation: insérer un espace tous les deux caractères

fauve

Membre Club
Réponse acceptée !
Salut,

Voici une manière parmi tant d'autres pour y arriver (j'ignore si c'est la meilleure en revanche )

Dim  str As String = "abcdefghij"

' La boucle For ne s'initialise qu'une fois donc si on rajoute des caractères
' dans la variable de type String --> la boucle va s'arrêter avant d'atteindre
' la fin de cette chaine.

' Il faut donc prendre le nombre de caractères de la chaine et on rajoute le nombre d'espaces
' nécessaires
For  nb As Integer = 0 To str.Length + Math.Round(str.Length / 20, MidpointRounding.ToEven) - 1 Step 3
     str = str.Insert(nb, " ")
Next


On obtient la chaine suivante
--> ab cd ef gh ij

++

Fauve

Pensez : Réponse Acceptée 
mardi 3 février 2009 à 15:26:29 | Re : optimisation: insérer un espace tous les deux caractères

Billybobbonnet

Je connaissais pas les .insert, merci pour ta méthode Fauve!

Renfield, te sachant de bons conseils, je vais revoir les stringbuilders (dont j'ai un souvenir douloureux).

"la reallocation continue de mémoire."  < à cause du while? Je crois savoir que les variables string sont plus lourdes que les integer, ce serait mieux en remplaçant       While Temp <> ""      par     While temp.lengh >0        ?

Bien sur, je cherche plus à m'instruire sur les bonnes pratiques que qu'autre chose, c'est pour ça que je pinaille :).
mardi 3 février 2009 à 15:30:50 | Re : optimisation: insérer un espace tous les deux caractères

Renfield

Administrateur CodeS-SourceS
tu sais combien de blancs tu dois insérer...
tu peux donc agrandir la chaine une fois pour toutes
mardi 3 février 2009 à 15:56:13 | Re : optimisation: insérer un espace tous les deux caractères

Billybobbonnet

Dans ce cas là, c'est un signal radio fréquence de longueur variable que je reçois (en fait c'est des paquets de 10 bits), converti en hexadécimal et mis en forme en groupes de 2 caractères. Le coup la longueur variable, c'est assez dur à expliquer compte tenu que j'ai des messages sur 10 bits, mais dans les faits, j'ai dans certains cas (déterminés) 3 caractères hexa de moins.

 A chaque message reçu, je lance une fonction qui le met en forme et l'interprète. La fonction peut être amenée à être lancée très souvent, en fonction du nombre de messages reçus, d'où la volonté d'optimiser.


Cette discussion est classée dans : buffer, espace, insérer, temp, caractères


Répondre à ce message

Sujets en rapport avec ce message

insérer espace après nombres dans chaine de caractères [ par enemme ] Bonjour messieurs, dames...Je viens vers vous aujourdh'ui pour vous demander de l'aide. Je ne suis pas un programmateur né, mais je suis obligé en ce Problème d'espace dans les comparaisons de chaines de caractères [ par m.bazier ] J'essai, dans mon code VBA, de comparer deux champ de table différente.Dans le 1er champ, j'ai :"MonChamp"Et dans le 2ème, j'ai :"MonChamp XML - insérer des caractères spéciaux - é è à [ par morickno ] Comment peut on utliser des caractères tel que é ou à dans un fichier xml sans qu'il y est d'erreur. Y a t'il une syntaxe particulière ou un caratères Mettre un espace tous les 3 caractères [ par stella ] Salut les copains,voilà je dois récupérer les données d'un champ texte (jusque là pas de problème) et les mettre en forme du style les 3 premiers cara remplacer les espace dans une variable [ par pcpunch ] sltje voudrai remplacer les espaces dans ma variable a par des _.Genre "mon nom est" devient "mon_nom_est"G ce code la mais il me donne mon_nom est"ch VBS : Expression régulière [ par parker13 ] Bonjour,Je cherche à faire une expression régulière capable de réaliser le formattage ci-dessous : NOM Prenom - SERVICE exemple : DURAND Gille remplacements [ par gribouillex ] Bonjour, Une simple question : comment coder le plus proprement possible ceci : Dans une plage entre A1 et A20, si la chaine de caractères "aze" est t Function renvoie un string, mais ajoute un espace... [ par sifflet_ ] Salut à tous! J'ai un problème avec une fonction qui me retourne un string (mais ne le repasse pas). Pour un projet en Access 2003, je dois décoder le Ajouter 1 à une chaine de caractères? [ par djdiabolik ] Voilà mon problème est simple, mais plutôt que de réinventer la roue, je voudrais savoir si quelqu'un a déjà résolu ce genre de problèmatique. Si non, Perte de caractères avec WebBrowser.DocumentText [ par alviens ] Salut !J'essai de mettre en place un outil pour capturer le code source de nos applications .NET lors de la période test. Pour y arriver, j'utilise la


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales