Accueil > Forum > > > > optimisation: insérer un espace tous les deux caractères
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
|
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
|
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 / 2, 0, 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
|
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
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
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
Insérer une image dans un email depuis une table ? [ par Zeubest ]
Bonjour, J'ai un bouton qui me sert à envoyer un mail standard. Je désire insérer dans mon mail des images contenues dans des champs OLE de ma base
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,
Livres en rapport
|
Derniers Blogs
ASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHEASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHE par fathi
Tout le monde est unanime pour dire que la programmation multi-thread et asynchrone est en train de devenir un sujet incontournable. Beaucoup de choses sont arrivées avec le framework 4 pour le code parallèle (TPL, PLinq,.) et bientôt, on va avoir l...
Cliquez pour lire la suite de l'article par fathi PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS !PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS ! par Etienne Margraff
J'ai récemment eu un problème pour obtenir l'intelliTrace sur un site web dans IIS. Il n'y avait pas de message d'erreur, rien dans le journal d'évènement Windows, et après 3 appels à une voyante, 2 visites chez un marabou, j'ai failli me résign...
Cliquez pour lire la suite de l'article par Etienne Margraff OFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONSOFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONS par junarnoalg
De nombreuses entreprises font le choix de SharePoint Online, service fourni au travers de l'offre de Microsoft Office 365. S'il est vrai que ce choix apporte un grand nombre d'avantages; rapidité de mise en œuvre, disponibilité, large couvertu...
Cliquez pour lire la suite de l'article par junarnoalg PRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGEPRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGE par richardc
http://www.c2idotnet.com/articles/presentation-des-api-rest-de-windows-azure-lister-les-comptes-de-storage
Désolé pour "toto", mais c2i existait avant blogs.developpeur.org et c'est mon site "officiel" ;-) ...
Cliquez pour lire la suite de l'article par richardc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|