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 API et type String


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 96
    Par défaut Problème API et type String
    Bonjour à tous !

    Je travaille avec Visual Studio 2008 (très rarement) et je ne suis pas un pro codeur. Voilà déjà le contexte.

    Je cherche à utiliser les API pour lire/écrire dans des fichiers INI. Problème Visual Studio me détecte une erreur sur la ligne en rouge :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Function LitDansFichierIni(Section As String, Cle As String, Fichier As String, _
        Optional ValeurParDefaut As String = "") As String
    
    Dim strReturn As String
    strReturn = String(255, 0)
    GetPrivateProfileString Section, Cle, ValeurParDefaut, strReturn, Len(strReturn), Fichier
    LitDansFichierIni = Left(strReturn, InStr(strReturn, Chr(0)) - 1)
    
    End Function
    Le message d'erreur est :
    String est un type de classe et ne peut être utilisé en tant qu'expression.
    J'ai essayé de faire en sorte de formater la chaine avec 255 espace mais il a l'air de trimer le contenu de la variable et ça ne fonctionne pas plus.

    Merci d'avance à ceux qui me donneront un petit coup de main

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Bonjour,
    Du code VB6 dans .net, c'est pas fait pour.
    Va voir sur le forum approprié : Dot.Net

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 96
    Par défaut
    Ah... Et il aurait fallu que je fasse quoi pour faire du VB6 ? J'aurais toujours la possibilité de réaliser des forms ?

    En gros je veux faire une toute petite application :
    Un compteur qui compte les jours depuis une date enregistrée.
    Clic-gauche fermer l'application, clic-droit remettre à 0 et garder la date du jour. Du coup la seule difficulté c'était de lire et écrire dans un fichier ini.

    Comme je l'ai dis je suis un débutant dans le domaine. Je sais coder mais je n'ai jamais eu à coder dans cet environnement.

    Juste une question et je te laisse tranquille ^^ :
    Pour l'application que j'ai en tête vers quel langage et quel outil je dois m'orienter ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2010
    Messages : 62
    Par défaut
    Bonjour,

    une solution possible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim strReturn As String = ""
    strReturn = strReturn.PadRight(255, Chr(0))
    [EDIT]
    j'ai oublié ça (plus propre) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim strReturn As String
    strReturn = StrDup(255, Chr(0))
    [/EDIT]


    Sinon, pour la lecture/écriture d'un fichier ini, il y a le cours de Philippe Lasserre ici qui devrait faire l'affaire.

    ++

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 97
    Par défaut
    Citation Envoyé par BB-69 Voir le message
    Bonjour,

    une solution possible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim strReturn As String = ""
    strReturn = strReturn.PadRight(255, Chr(0))
    [EDIT]
    j'ai oublié ça (plus propre) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim strReturn As String
    strReturn = StrDup(255, Chr(0))
    [/EDIT]


    Sinon, pour la lecture/écriture d'un fichier ini, il y a le cours de Philippe Lasserre ici qui devrait faire l'affaire.

    ++
    Ou encore new String(Chr(0), 255))

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 68
    Par défaut
    Les données se retrouvent dans un fichier xml : App.config, qui est géré par Visual Studio:
    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
    18
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
            <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
                <section name="WindowsApplication1.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
            </sectionGroup>
        </configSections>
        <startup>
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
        </startup>
        <userSettings>
            <WindowsApplication1.My.MySettings>
                <setting name="MaDate" serializeAs="String">
                    <value>10/22/2010 14:21:00</value>
                </setting>
            </WindowsApplication1.My.MySettings>
        </userSettings>
    </configuration>
    Le code gérant dans ce cas la propriété MaDate, se trouve dans le fichier Settings.Designer.vb.
    Les valeurs ne seront enregistrées qu'en utilisant :

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 68
    Par défaut
    Si le fichier .ini ne sert qu'à stocker une date, il faut mieux créer un nouveau paramètre du genre "MaDate" (Clic droit sur le projet dans l'explorateur de solution, Propriétés, puis onglet paramètres à gauche), c'est une option apparue avec VB 2005.

    Ensuite le paramètre est accessible partout dans le projet, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    My.Settings.MaDate = Date.Now
    Il ne faut pas oublier d'enregistrer les paramètres avant de quitter: Pour les langages, c'est une question de goût, il faut consulter le forum approprié sur ce site.

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 96
    Par défaut
    Je reste baba, je découvre plein de choses que je ne connaissais pas !

    Je vais suivre vos conseils et faire mes quelques tests.

    Bob Langlade > Juste une précision, parce que je n'avais jamais rencontré ce code.
    Cela sous entend que l'application se charge de sérialisé et désérialisé toute seule des variables ? Du coup si j'éteins et relance l'appli, je pourrais récupérer ces valeurs ?

    Merci de vos aides en tout cas !!!

Discussions similaires

  1. Problème bizarre avec une variable de type string
    Par beegees dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 10/06/2009, 11h34
  2. problème avec le type string
    Par remooz dans le forum C++
    Réponses: 9
    Dernier message: 05/08/2008, 19h12
  3. Probléme C++ - Chaine de type String
    Par allan02390 dans le forum C++
    Réponses: 2
    Dernier message: 18/12/2007, 11h21
  4. problème avec une variable de type string
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/06/2007, 14h53
  5. Réponses: 5
    Dernier message: 04/06/2007, 17h07

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