API GetPrivateProfileString

DevDragon Messages postés 51 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 10 mars 2008 - 8 mars 2005 à 12:27
draluorg Messages postés 625 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

4 réponses

DevDragon Messages postés 51 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 10 mars 2008
8 mars 2005 à 12:29
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
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
8 mars 2005 à 16:10
Es-tu obligé d'utiliser un fichier INI ?
Pourquoi ne pas mettre du XML

Sébastien FERRAND
Blog :
http://blogs.developpeur.org/sebmafate
0
DevDragon Messages postés 51 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 10 mars 2008
9 mars 2005 à 08:08
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
0
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
16 nov. 2011 à 17:04
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...
0
Rejoignez-nous