Convertir une chaine en code VB [Résolu]

Messages postés
212
Date d'inscription
mardi 18 janvier 2011
Dernière intervention
12 février 2013
- - Dernière réponse :  Zermelo - 5 févr. 2013 à 09:43
Bonsoir,

J'ai quelques petits soucis pour convertir une chaine en code VB, je m’explique
Imaginons que ma chaine contienne le texte suivent (le texte est récupérer dans une TexteBox):
"Ceci "est une chaine" contenant "des guillemets""


je souhaite convertir la chaine en code exploitable par Vb, ici ça donnerais donc:
"""Ceci ""est une chaine"" contenant ""des guillemets"""""


Se qui donne bien:
"Ceci "est une chaine" contenant "des guillemets""


Cependant se que je n'est pas dit, c'est que ma
chaine contiendra aussi des retours à la ligne !

Moi j'ai fait comme ça mais ça ne fonctionne pas !
MessageConcaténation = Message.Text.Replace("""", """""")
MessageConcaténation = Message.Text.Replace(vbCrLf, """" & " & vbCrLf & " & """")

AideConcaténation = Message.Text.Replace("""", """""")
AideConcaténation = Aide.Text.Replace(vbCrLf, """" & " & vbCrLf & " & """")


Pouvez-vous svp me faire voir comment il faut procéder pour y arriver ?
Afficher la suite 

Votre réponse

17 réponses

Meilleure réponse
Messages postés
212
Date d'inscription
mardi 18 janvier 2011
Dernière intervention
12 février 2013
3
Merci
Bonsoir ShayW

Oui, je sais bien que VB gère parfaitement les guillemet mais c'est au niveau du code que ça coince !
Effectivement, mon TextBox est multiligne

Et j'ai trouvé ou étais le problème, en faite c'est super simple, regardez:
''' <summary>
    ''' Permet de convertir une chaine en code VB
    ''' </summary>
    ''' Renvoie la largeur de la console si ce paramètre est = à 1


    ''' <returns>Renvoie la chaine convertir en code Vb</returns>
    ''' <remarks></remarks>
    ''' 
    Function ConvertStringToCode(ByVal Chaine As String) As String
        Chaine = Chaine.Replace("""", """""")
        Chaine = Chaine.Replace(vbCrLf, """" & " & vbCrLf & " & """")
        Return Chaine
    End Function


Utilisation:
Sert à convertir une chaine de caractères en code exploitable directement par VB.
Peut servir par exemple à convertir le texte d'un TextBox ou d'un fichier.

Bien entendu, cette chaine convertie doit-elle même être mis dans une chaine, exemple:
si dans votre TextBox, il y a ceci:
""Ceci""

"Est"
""Une"
"Chaine""
" "De caractère" "


Alors, la chaine retourner serra:
""""Ceci""""" & vbCrLf & "" & vbCrLf & """Est""" & vbCrLf & "	""""Une""" & vbCrLf & "		""Chaine""""" & vbCrLf & """ ""De caractère"" ""

Il faut placer un guillemet avent et après la chaine convertie pour que cella fonctionne !
Voilà, sujet clos.

Merci cs_dayvid 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_dayvid
Messages postés
212
Date d'inscription
mardi 18 janvier 2011
Dernière intervention
12 février 2013
0
Merci
Excusez-moi, j'ai mis du code en trop, seul les deux première ligne son utile
Commenter la réponse de cs_dayvid
0
Merci
Ben quoi. T'as juste à entrer chaque morceau de ton roman ligne par ligne, avec des Enter à la fin de chaque ligne. Ensuite tu exploites la collection lines de ton textbox.
Commenter la réponse de Utilisateur anonyme
Messages postés
212
Date d'inscription
mardi 18 janvier 2011
Dernière intervention
12 février 2013
0
Merci
Désoler mais ça ne m'aide pas.
Commenter la réponse de cs_dayvid
0
Merci
vbCrlf, ça ne sert à rien ?

La langue française est gratuite, seules les fautes d'orthographe sont en option.
Commenter la réponse de Micoute
0
Merci
Ça ne t'aide pas parce que ça t'oblige à changer ton paradigme. La sule chose qui t'intéresse c'est d'ajouter de quoi au milieu d'un texte immense et de splitter après. Moi ce que je te suggères, c'est de séparer avant et d'ajouter tes retours de chariot au bout de chaque ligne. Mais bon, fais ce que tu veux. Mais, chose certaine, c'est que tu n'as visiblement plus de supporteur.
Commenter la réponse de Utilisateur anonyme
Messages postés
212
Date d'inscription
mardi 18 janvier 2011
Dernière intervention
12 février 2013
0
Merci
Sérieux, vous allez pas me laissez tomber si ?
C'est parce que je fais trop de fautes ?

Si faire moins de fautes peux m'apporter plus d'aide, alors
va falloir que je me botte méchamment le Q !
Commenter la réponse de cs_dayvid
0
Merci
Bonsoir,

J'ai lu 2 fois la question et je n'ai pas compris ce que tu veux faire. Remplacer des guillemets par des retours de ligne ?
Commenter la réponse de Utilisateur anonyme
0
Merci
Bonjour Banana32,

Pour ta question en privé, la seule chose que je peux dire c'est qu'une étape que je croyais être une simple formalité s'est révélée pas mal pire que prévu.

Pour cette question-ci, ce que je devine de la question, c'est qu'il veut entrer une suite d'instructions en une seule ligne dans un textbox, puis ajouter des retours de chariot et des guillemets double dans sa ligne.

Moi, je lui suggère de séparer ses instructions ligne par ligne dans son textbox et de concaténer ses lignes ensuite, en ajoutant au fur et à mesure ses guillemets supplémentaires et ses retours de chariot. Mais, quant à moi, il peut aller au diable. Et je sais que je ne suis pas le seul à être de cet avis.
Commenter la réponse de Utilisateur anonyme
Messages postés
212
Date d'inscription
mardi 18 janvier 2011
Dernière intervention
12 février 2013
0
Merci
Bonsoir banana32

Je vais essayer de t’expliquer clairement:

Pour mon exemple, je récupère le contenue de mon TextBox
Ensuite il faut que je convertis ce texte en code comme si je le tapais directement dans VB !

Je suis toujours sur mon programme de création de boîte de dialogue et je dois convertir
le message de la boîte en code VB.

Ce code me sert à générer le code pour la boîte, donc par exemple, si il y a ça dans mon TextBox:
"Ceci est une "chaine de caractères""

" ""Abc""Def"" "


Mon programme dois maintenant convertir ce texte en code exploitable pour VB, ce qui donne:
"""Ceci est une ""chaine de caractères"""" & vbCrLf & vbCrLf & """ """"Abc""""Def"""" "" "


Tu comprends ou je veux en venir ?!
Commenter la réponse de cs_dayvid
0
Merci
Bonsoir à tous !

La meilleure qualité de Dayvid, c'est la ténacité et encore le mot est faible, chez nous on dit que quand il a une idée dans la tête, il ne l'a pas ailleurs !


La langue française est gratuite, seules les fautes d'orthographe sont en option.
Commenter la réponse de Micoute
Messages postés
212
Date d'inscription
mardi 18 janvier 2011
Dernière intervention
12 février 2013
0
Merci
ça c'est clair, moi je lâche pas comme ça et c'est effectivement une qualité je pense
et si j'y arrive pas un moment, jy retourne plus tard et si j'y arrive toujours pas, ba je continue
et croyez-moi que plus on le fais, plus on a d’expérience et plus on a de chance
d'y parvenir, je sais de quoi je parle

Merci micoute
Commenter la réponse de cs_dayvid
Messages postés
3241
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
26 novembre 2018
0
Merci
Salut

tenter ma chance
1 tu n'as pas besoin de te casser la tete avec
les guillemets vb se débrouille tout seul
un test simple
un textbox et un bouton
Public Class Form1
    Private mystring As String
Private Sub Button1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseClick
        mystring = TextBox1.Text
    End Sub
End Class


met un point d'arret à la ligne End Sub
lance le test
écris dans le textbox une phrase avec des guillemets "Ceci "est une chaine" contenant "des guillemets""
clique le bouton
verifie le contenu de mystring
vb sait affronter les guillemets
mais si tu codes
dim phrase as string
phrase = "Ceci "est une chaine" contenant "des guillemets""
la tu as une erreur à cause des guillemets
ensuite je n'ai pas compris
ton textbox est multiligne ?
Commenter la réponse de cs_ShayW
Messages postés
212
Date d'inscription
mardi 18 janvier 2011
Dernière intervention
12 février 2013
0
Merci
Heu... j'ai oublie de remplacer dans le code de la fonction le texte du paramètre:
"Renvoie la largeur de la console si ce paramètre est = à 1" par "Chaine de caractères à convertir en code VB"
Commenter la réponse de cs_dayvid
0
Merci
Oui et bien maintenant prends l'habitude de valider la ou les réponses qui t'ont aidé même si ce sont les tiennes.
Commenter la réponse de Utilisateur anonyme
Messages postés
212
Date d'inscription
mardi 18 janvier 2011
Dernière intervention
12 février 2013
0
Merci
Ok ok, pas la peine de me parler comme ça hein
Commenter la réponse de cs_dayvid
0
Merci
Bonjour dayvid.

On peut remplacer un guillemet par
Chr(34)
si on accepte de conserver Microsoft.VisualBasic. Sinon on peut utiliser
ConvertFromUtf32(34)
, mais il faut alors importer la classe System.Char.

Cordialement, en espérant que vous éviterez les blagues à deux balles.


Étant illettré, je signe d'une croix : ×
Commenter la réponse de Zermelo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.