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 :

Problème Application.StartupPath & Conversion en type "Long"


Sujet :

VB.NET

  1. #1
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut Problème Application.StartupPath & Conversion en type "Long"
    Salut,
    je suis actuellement ne train de développer une application qui est censée être installée uniquement dans "C:\Program Files\Nom De Mon Programme, mais même en changeant le répertoire d'installation par défaut de mon projet de déploiement visual studio, sur mon PC Windows7 64 Bit le programme veut s'installer dans "C:\Program Files X86\Nom De Mon Programme".
    Je dois donc changer mon code afin qu'il n'aille pas chercher et écrire des données dans "C:\Program Files\Nom De Mon Programme". J'ai donc pensé à ce que le programme "sache tout seul" où il se trouve donc j'utilise la fonction "Application.StartupPath" pour qu'il écrive et lise dans son propre répertoire. Seulement lorsqu'il veut écrire, une erreur se présente :
    Impossible de convertir la chaine en valeur de type "long".
    Voici un un screenshot de visual studio.
    Pensez à voter pour une réponse qui vous aide ou pour une personne insolente !
    Si votre sujet est résolu, cliquez sur le bouton !

  2. #2
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Tu essayes de faire une division entre 2 chaines de caractères (opérateur \).
    Pour concaténer 2 chaines de caractères il faut utiliser l'opérateur &.
    Cependant pour concaténer deux chemins il vaut mieux utiliser Path.Combine

  3. #3
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Salut,
    si je met & et bien le fichier se crée bien mais dans le répertoire antérieur à mon application et le nom de fichier est le nom du répertoire actuel + par exemple ultimate.

    Donc si je met mon programme dans "C:\Program Files\MonDossierDuProgramme" et que je possède Windows7 ultimate, le fichier sera crée dans Program File et se nomera "MonDossierDuProgrammeUltimate"

    Édite : Je viens d'utiliser la fonction combine et ça marche nickel ! Seulement je me demande si il n'y a pas moyen de réduire et améliorer mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
       Dim RepertoireDuExeNonCompris As String = Application.StartupPath
        Dim PathRepertoireExe As String = RepertoireDuExeNonCompris
     
        Dim streamwriter As New StreamWriter(combinationUltimate)
        Dim combinationUltimate As String = Path.Combine(PathRepertoireExe, pathUltimate)
        Dim pathUltimate As String = "Ultimate.txt"
     
     
        Private Sub VerificationVersionDeWindows()
            Dim VersionDeWindows7Ultimate As String = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "EditionID", "")
            Dim path2 As String = "Ultimate.txt"
     
            If VersionDeWindows7Ultimate = "Ultimate" Then
                Dim EcritureVersionUltimate As New StreamWriter(combinationUltimate)
            Else
                Dim VersionDeWindows7Professional As String = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "EditionID", "")
               '......................
    Pensez à voter pour une réponse qui vous aide ou pour une personne insolente !
    Si votre sujet est résolu, cliquez sur le bouton !

  4. #4
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    C'est normal tu fais "C:\Program Files\MonDossierDuProgramme" & "ultimate.txt" ce qui donne naturellement "C:\Program Files\MonDossierDuProgrammeultimate.txt". Pour obtenir ce que tu veux il faut ajouter un backslash
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\Program Files\MonDossierDuProgramme" & "\ultimate.txt"
    ou mieux utiliser Path.Combine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Path.Combine("C:\Program Files\MonDossierDuProgramme", "ultimate.txt")

  5. #5
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Ah bah tu viens de répondre quand j'étais en train d'éditer mon message ^^ Du coup je vais lire ce que tu m'a écrit

    Edit
    Re,
    Voilà je viens d'essayer avec un \ et ça fonctionne nickel et le code ne fait que 1 ligne pour écrire mon fichier !!! Merci infiniment
    Par contre juste pour mon information, pourquoi utiliser path combine, quel est la différence ?
    Pensez à voter pour une réponse qui vous aide ou pour une personne insolente !
    Si votre sujet est résolu, cliquez sur le bouton !

  6. #6
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Path.Combine utilise le bon séparateur quelque soit le système (\ pour Windows). De plus la méthode vérifie s'il faut ajouter le séparateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Path.Combine("C:\Program Files\MonDossierDuProgramme", "\ultimate.txt")
    Dans ce cas une simple concaténation sera faite.

  7. #7
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    J'ai finalement utilisé le & "\..." car je dois aussi créer des planifications de tâches donc...
    Merci en tout cas mon programme marche nickel, de plus tu as fais d'une pierre deux coups car du coup, mon autre post est résolu ! http://www.developpez.net/forums/d12...p/#post6707457

    Bye merci encore !
    Pensez à voter pour une réponse qui vous aide ou pour une personne insolente !
    Si votre sujet est résolu, cliquez sur le bouton !

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

Discussions similaires

  1. [C# 2.0] Problème de conversion de type
    Par freerider1 dans le forum Windows Forms
    Réponses: 18
    Dernier message: 11/08/2017, 13h50
  2. [Excel] Problème de conversion de type de données
    Par keiserjo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/07/2006, 12h26
  3. Problème conversion de type
    Par gengen dans le forum Access
    Réponses: 3
    Dernier message: 14/04/2006, 10h53

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