API GetPrivateProfileString

Messages postés
51
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
10 mars 2008
- - Dernière réponse : draluorg
Messages postés
627
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010
- 16 nov. 2011 à 17:04
Bonjour every body,





Mais qu'est ce que c'est que cette fonction...


Je programme en Asp.Net



En fait c'est une fonction d'une API de Windows (kernel32.dll) qui renvoi le nombre de caractére d'une donnée voulue dans un fichier ini. C'est assez chaud à expliquer.





J'ai un petit soucis car lorsque je l'utilise elle me renvoi bien le bon nombre de caractere mais j'arrive po a obtenir ma donnée. Je m'explique





mon fichier ini contient ces données





test.ini -->>





[parametre]


Temp=coucou





et voila ma fonction





///


/// stSection est la partie désignée entre crocher (ici parametre)


/// stKey est le nom de la clé à rédupérer (ici Temp)


/// stFichier est le path ou se trouve le fichier (ici c:\base\test.ini mais on l'écrira c:\\base\\test.ini ou @c:\base\test.ini caractere d'échappement oblige )


///



public
string LireIni(
string stSection,
string stKey,
string stFichier)


{




StringBuilder temp =
new StringBuilder(512);



int i = GetPrivateProfileString(stSection,stKey,"",temp.ToString(),512,stFichier);


//Mon problème est ici le temp retourne vide alors que i est à 6


return temp.ToString();


}


Please help Meeeeeeeeeeeeeeeeeeeeeeeeeeeee !!!!!

Youpitralalalalere
Afficher la suite 

4 réponses

Messages postés
51
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
10 mars 2008
0
Merci
J'ai oublié voici les classes utilisées et la déclaration de l API


using System.Runtime.InteropServices;


using System.Text;

déclaration


[DllImport("kernel32")]

private
static
extern
int GetPrivateProfileString(
string section,
string key,
string def,StringBuilder retVal,
int size,
string filePath);

Youpitralalalalere
Commenter la réponse de DevDragon
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
0
Merci
Es-tu obligé d'utiliser un fichier INI ?
Pourquoi ne pas mettre du XML

Sébastien FERRAND
Blog :
http://blogs.developpeur.org/sebmafate
Commenter la réponse de sebmafate
Messages postés
51
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
10 mars 2008
0
Merci
Le problème c'est que je travail sur un existant donc voila et dans le ini y'a plein d otre paramétre je pense pas etre motivé pour me retaper tout le site de l entreprise lol

Youpitralalalalere
Commenter la réponse de DevDragon
Messages postés
627
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010
0
Merci
Forcement que ça ne fonctionne pas!
Tu passe comme buffer un string au lieu d'un StringBuilder.


int i = GetPrivateProfileString(stSection,stKey,"",temp.ToString(),512,stFichier);

Tu dois lui passer temp pour qu'il mette les données dedans et non pas temp.ToString() !

A retenir:
LES STRING EN CSHARP SONT IMMUABLES !!!


Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie...
Commenter la réponse de draluorg