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

C# Discussion :

Y a-t-il un équivalant de Space() du VB.net ? [Débutant]


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 355
    Points : 118
    Points
    118
    Par défaut Y a-t-il un équivalant de Space() du VB.net ?
    Bonjour à tous

    Pratiquant le VB depuis de longues années, j'essaie de me mettre au C#.
    Mon problème :
    Créer des chaînes de longueur fixe en partant de chaînes plus courte et en leur ajoutant autant d'espaces que nécessaire.

    En VB, ça tient sur une ligne (pour obtenir une chaîne longue de 25 caractères)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            Chaine = Chaine & Space(25 - Len(Chaine))
    En C#, je n'ai pas trouvé d'équivalant (c'est là où j'ai besoin de votre aide), et pour l'instant je dois me résoudre à utiliser cette astuce.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
             for(i=Chaine.Length+1; i<=25; i++)
             {
                 Chaine=Chaine + " ";
             }
    ou bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        while(Chaine.Lenght < 25)
        {
             Chaine=Chaine + " ";
        }
    Cela ne me satisfait qu'à moitié, car pour des chaînes très longues il y a beaucoup d'itérations et cela doir ralentir la vitesse d"éxécution.

    Quelqu'un a-t-il une solution plus élégante ?

    Claude Azoulai

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Oui ça existe, regarde du côté de String.PadRight et String.PadLeft. Dans ton cas ça donnerait quelque chose du genre :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    chaine = chaine.PadRight(25, ' ');

    Cela aura pour effet de rajouter autant d'espaces que nécessaire pour que la longueur de "chaine" soit de 25 caractères.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    Bonjour,

    La solution est celle de DotNetMatt, rien à redire

    En C#, je n'ai pas trouvé d'équivalant (c'est là où j'ai besoin de votre aide), et pour l'instant je dois me résoudre à utiliser cette astuce.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                  for(i=Chaine.Length+1; i<=25; i++)
             {
                 Chaine=Chaine + " ";
             }
    ou bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     while(Chaine.Lenght < 25)
        {
             Chaine=Chaine + " ";
        }
    Cela ne me satisfait qu'à moitié, car pour des chaînes très longues il y a beaucoup d'itérations et cela doir ralentir la vitesse d"éxécution.

    Quelqu'un a-t-il une solution plus élégante ?
    Oui, ça ralentit l’exécution, tu aurais utilisé un stringbuilder, ça aurais été plus efficace. De plus, pour obtenir une chaîne composée d'un caractère répété autant de fois que tu le souhaites, la classe string possède un constructeur de ce genre (lien MSDN):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //Space(25 - Len(Chaine))
    new string(' ', 25 - Chaine.Length)

    Bon dév.
    Un âne se croit savant parce qu'on le charge de livres (proverbe américain)

    N'oubliez pas de avant de
    Pas de question techniques par MP, c'est contre la philosophie du forum

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 177
    Points : 4 489
    Points
    4 489
    Par défaut
    mais c'est mal de faire se genre de chose
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 355
    Points : 118
    Points
    118
    Par défaut
    Merci à vous tous

    Je commençais à me dire que décidément il y a un monde entre VB.Net et C#.
    Je m'y étais donc fait avec un peu de regret.
    Mais vous êtes venus m'aider et je vous en remercie.
    J'ai vérifié dans le cours de Serge Tahé. Il l'utilise la fonction PadRight à plusieurs reprises mais sans l'expliquer nulle part.
    Grace à vous, je vais pouvoir poursuivre ma découverte du C#.

    Claude Azoulai

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par Claude_Azoulai Voir le message
    Je commençais à me dire que décidément il y a un monde entre VB.Net et C#.
    un monde non, disons qu'il y a vb.net et vb.net, si on utilises beaucoup de l'héritage de vb6, forcément il faut chercher pour trouver comment le faire en c#
    mais padright/left existent aussi en vb.net
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 355
    Points : 118
    Points
    118
    Par défaut
    Salut
    Tu as tout à fait raison.
    J'ai développé en VB depuis VB3 jusqu'au VB6 et forcément j'en suis très imprégné.
    Je me suis lancé (avec le même défaut) en VB.Net, il y a environ trois ans.
    Et il y a un mois, j'ai décidé d'aller voir ce qu'il y a dans le C# qui m'avait decourragé jusque là.
    Voilà pouquoi j'apprécié votre aide et que je vous en suis reconnaissant.

    Claude Azoulai

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par Claude_Azoulai Voir le message
    J'ai développé en VB depuis VB3 jusqu'au VB6 et forcément j'en suis très imprégné.
    Je me suis lancé (avec le même défaut) en VB.Net, il y a environ trois ans.
    Et il y a un mois, j'ai décidé d'aller voir ce qu'il y a dans le C# qui m'avait decourragé jusque là.
    Et le changement se passe bien ? On s'y fait vite / on arrive à coder aussi vite ?
    Parce que j'ai commencé sur vb5 et il faudra surement que je passe un jour sur C# (dont je n'apprécie pas forcément la syntaxe).
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 355
    Points : 118
    Points
    118
    Par défaut
    Bonjour Pol63

    Je suis content de pouvoir correspondre avec des personnes qui risquent d'avoir les mêmes problèmes que moi.

    Pour ma part, j'ai téléchargé Visual C#2010 et recherché des exemples pas à pas qui sont fournis par MSDN.
    Cela m'a permis de voir un début très modeste de la syntaxe et ensuite je me suis lancé dans un projet que j'avais déja fait en VB.Net.
    J'en suis là qu'au début, mais je m'accroche.
    J'aurai 80 ans au mois d'août et j'ai toujours envie d'apprendre.

    Sincères salutations

    Claude Azoulai

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

Discussions similaires

  1. Equivalent c# de Space() de vb.net
    Par lasrevinu dans le forum C#
    Réponses: 2
    Dernier message: 09/04/2010, 14h21
  2. équivalent du sharpgrid en vb.net?
    Par tinhinan6 dans le forum EDI/Outils
    Réponses: 1
    Dernier message: 09/12/2007, 13h05
  3. L'équivalence d'une fonction VB.Net en Php
    Par paradeofphp dans le forum Langage
    Réponses: 3
    Dernier message: 16/05/2007, 13h41
  4. Réponses: 2
    Dernier message: 08/09/2006, 18h59
  5. Réponses: 3
    Dernier message: 30/01/2006, 15h57

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