IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Soucis avec vbcrlf, chr(), vbnewline et le retour à la ligne [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2013
    Messages : 8
    Par défaut Soucis avec vbcrlf, chr(), vbnewline et le retour à la ligne
    Bonjour à tous,

    Voilà j'ai tenté de créé une fonction qui effectue un retour à la ligne sur une chaine de caractère à partir de 15 caractères. Cette chaine est utilisé ensuite dans une fonction d'ajout de texte d'excel vers autocad.

    exemple: de DISJONCTION VARIATEUR je veux passer à

    DISJONCTION
    VARIATEUR

    voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim j As Integer
    j = 15
     
    Do While j < Len(contenu1)
     
    contenu1 = Mid(contenu1, 1, j) & vbCrLf & Mid(contenu1, j + 1)
    j = j + 15 + 2
     
    Loop
    Mon problème: le texte que je retrouve sur autocad est:

    ___________DISJONCTION?
    ______________________VARIATEUR

    Avec des points d'interrogation pour les espaces et le texte à la ligne est décalé sous la 1ère partie...

    Si vous avez une idée..d'avance merci!

    PS: tous les autres moyens comme les chr(), les vbnewline, les %0A et les <BR> que j'ai trouvé ailleurs sur internet me font la même chose.

  2. #2
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Cela ressemble un peu à un problème d'encodage, comment passez vous l'information à autocad ?
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2013
    Messages : 8
    Par défaut
    Je le passe par la fonction AddText comme ceci:

    Set commentaire = ThisDrawing.ModelSpace.AddText(contenu1, PointInsertion, Hauteur)

  4. #4
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Dans votre exemple, déjà vous n'arriverez jamais à
    DISJONCTION
    VARIATEUR

    car DISJONCTION = 11 caractère ce qui donnerais :
    DISJONCTION VAR
    VARIATEUR

    Au lieu de vbCrLf préférez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.Environment.NewLine
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2013
    Messages : 8
    Par défaut
    Oui cela n'était juste qu'un exemple qui m'est passé par la tête..

    Après quand il s'agira de définir le nombre de caractères, je pense que ça ira...

    En attendant, vous pensez que cela vient peut-être du fait que je demande à une variable string de passer à la ligne et qui est ensuite envoyé dans une fonction qui envoi ce texte à travers un objet à Autocad?

    cela créerai donc un conflit?

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2013
    Messages : 8
    Par défaut
    Comme ceci?

    contenu1 = Mid(contenu1, 1, j) & System.Environment.NewLine & Mid(contenu1, j + 1)

    Cela ne provoque rien, le texte reste sur une seule ligne.. dois-je activer une référence?

  7. #7
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Non je ne pense pas j'aurais plutôt tendance à penser qu'Autocad n'interprète pas de la même marnière les caractères de passage à la ligne ou d'autres caractères qui passe bien dans VB.

    Peut-être donc essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            Do While j < Len(contenu1)
     
                contenu1 = Mid(contenu1, 1, j) & System.Environment.NewLine & Mid(contenu1, j + 1)
                j = j + 15 + 2
     
            Loop
    et si cela ne fonctionne pas essayer ceci pour voir ce que cela donne dans autocad :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim sTemps() As String
     
            contenu1 = "DISJONCTION VARIATEUR"
     
            sTemps = contenu1.Split(New [Char]() {" "})
     
            contenu1 = ""
            For Each s As String In sTemps
                contenu1 += If(contenu1.Length = 0, "", System.Environment.NewLine) + s.ToString()
            Next
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Soucis avec fgets et retour charriot
    Par willard00 dans le forum Débuter
    Réponses: 6
    Dernier message: 29/10/2010, 14h51
  2. Souci avec le retour de find
    Par khayyam90 dans le forum Linux
    Réponses: 3
    Dernier message: 10/05/2006, 15h58
  3. quelques soucis avec word 2000
    Par ramchou dans le forum Word
    Réponses: 3
    Dernier message: 06/09/2004, 19h13
  4. Réponses: 4
    Dernier message: 16/02/2003, 13h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo