Convertir une chaine en code VB

Résolu
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 - 3 févr. 2013 à 00:42
 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 ?

17 réponses

cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
3 févr. 2013 à 23:11
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.
3
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
3 févr. 2013 à 00:44
Excusez-moi, j'ai mis du code en trop, seul les deux première ligne son utile
0
Utilisateur anonyme
3 févr. 2013 à 02:32
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.
0
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
3 févr. 2013 à 14:18
Désoler mais ça ne m'aide pas.
0

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

Posez votre question
vbCrlf, ça ne sert à rien ?

La langue française est gratuite, seules les fautes d'orthographe sont en option.
0
Utilisateur anonyme
3 févr. 2013 à 19:05
Ç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.
0
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
3 févr. 2013 à 19:59
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 !
0
Utilisateur anonyme
3 févr. 2013 à 20:15
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 ?
0
Utilisateur anonyme
3 févr. 2013 à 20:30
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.
0
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
3 févr. 2013 à 20:42
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 ?!
0
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.
0
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
3 févr. 2013 à 20:47
ç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
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
3 févr. 2013 à 22:37
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 ?
0
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
3 févr. 2013 à 23:13
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"
0
Utilisateur anonyme
3 févr. 2013 à 23:27
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.
0
cs_dayvid Messages postés 212 Date d'inscription mardi 18 janvier 2011 Statut Membre Dernière intervention 12 février 2013 1
3 févr. 2013 à 23:41
Ok ok, pas la peine de me parler comme ça hein
0
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 : ×
0
Rejoignez-nous