CS
VB, VB.NET
ASP.NET,ASP
C, C++
ColdFusion
PHP
Javascript
Delphi
Flash
Java
Graphisme
Irc
Assembleur
C#
Mobilité
SQL
Foxpro
Python
Windev
Snippets
IT Pros
Codes
(38276)
Listes de codes
Toutes
les sources
Les plus
récents
Les
mis à jour
Les plus
populaires
Les plus
populaires du mois
Tout le
niveau 1
(débutant)
Tout le
niveau 2
(initié)
Tout le
niveau 3
(expert)
Toutes les sources avec un
fichierZIP
Les sources
(1147)
Les
mieux notés
Trouver des codes
Trouver un code par mot clé
(Nouveau)
Top des codes
Les Trophées
Top des favoris des membres
Top par catégorie
Auteurs de codes
Les auteurs de sources
Le top des membres
Ajouter une source
Tutoriaux
(38276)
Forums
(1138707)
Vidéos
Livres
(28429)
Outils & Liens
Emploi (CV et Offres)
Services
Téléchargement
Chat
Autres Sites
Divers
Partenaires
Section étudiants
Section pro
Connexion
begin process at 2008 07 05 01:09:51
Derniers blogs
Un outil pour réaliser...
Sandcastle et CodePlex...
Webcasts sur le Parall...
[Silverlight] - Compre...
SharePoint : Nouvel ar...
La suite...
Mini Sondage
Votre navigateur n'utilise pas le javascript, pour
voter aux sondages de ce site, cliquez ici
Derniers logiciels
Pidgin (2.4.3)
Opera (9.51)
Microsoft Internet Exp...
Adobe Reader (9.0.0)
Bouml (BOUML 4.4.1)
La suite...
Comparer les prix
Indesit K3C51 Electrique Cuisinière au meilleur prix
Mes RSS
Les éditeurs de solut...
Sélection jeux vidéo ...
Openoffice.org s'éten...
Vlc : une faille crit...
Microsoft voudrait pa...
La suite...
Personnaliser
Stats
1 205 021
membres
10
nouveaux aujourd'hui
14 118
membres club
Divers
Mettre ce site au démarrage
Ajouter ce site à vos favoris
CodeS-SourceS dans votre MSN !
Mes Favoris
Plein Ecran
Connexion
Trouver une ressource
(Nouvelle version du moteur, plus rapide & pertinent, essayez le !)
Trouvez une ressource parmi
38 276
codes,
1 138 707
messages d'aide etc...
Recherche:
dans
Tout le site
Codes
Tutoriaux
Forum
Blogs
Livres
RFC
Icones
News .NET
Boutique
[ Dernières recherches ]
Filtre:
Tous les langages
Python
Foxpro
SQL
PDA / PocketPC
C# / C#.NET
Assembleur
IRC
Graphisme
JAVA / J2EE
Flash
Delphi
Javascript / Ajax / DHTML
PHP
ColdFusion
C / C++ / C++.NET
ASP / ASP.NET
Visual Basic, VB6, VB.NET, VB 2005, VB
Tous les codes
.NET uniquement
Exclure .NET
Vous ne trouvez pas de réponse à votre problème ? Alors
posez la question dans le forum
.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
12 commentaire(s) de LallThis
sur des sources sur tout
CodeS-SourceS
Le :
09/08/2007 10:01:30
Source :
ECRIRE/LIRE DANS UN FICHIER INI
Voila la fonction :
// ALLOCATION / DESALLOCATION
inline void MYMALLOC(void** a, int b)
{
*a=NULL;
if ( b > 0)
{
*a = malloc(b) ;
if (*a != NULL)
memset(*a, '\0', b) ;
}
}
#define MYFREE(a) { if(a != NULL) free((void*)a) ; a = NULL ;}
void MergeFile(char *SourceFile, char *TargetFile)
{
char *szSections = NULL, *szSectionName = NULL;
char *szKeys = NULL, *szKeyName = NULL, *szKeyValue = NULL;
char *szTargetKeyValue = NULL;
char *szTemp = NULL;
DWORD dwRet = 0, dwSectionsSize = 0, dwKeysSize = 0;
DWORD dwTargetKeySize = 0;
if (SourceFile && TargetFile)
{
MYMALLOC((void**)&szTemp, 1024);
// Calcul the size of buffer
dwRet = GetPrivateProfileSectionNames(szTemp, 1024, SourceFile);
if (dwRet > 0)
{
dwSectionsSize = dwRet + 2;
while(dwRet == (1024-2))
{
MYFREE(szTemp);
MYMALLOC((void**)&szTemp, dwRet*2);
dwRet = GetPrivateProfileSectionNames(szTemp, dwRet*2, SourceFile);
dwSectionsSize = dwRet + 2;
}
MYFREE(szTemp);
// Fill the buffer
MYMALLOC((void**)&szSections, dwSectionsSize + 1);
dwRet = GetPrivateProfileSectionNames(szSections, dwSectionsSize, SourceFile);
// Loop for each Section
for (int i=0; (unsigned int)i<dwSectionsSize; i++)
{
MYMALLOC((void**)&szSectionName, strlen(szSections + i) + 1);
// Retrieve section name
strncpy(szSectionName, szSections + i, strlen(szSections + i));
MYMALLOC((void**)&szTemp, 1024);
// Calcul the size of buffer
dwRet = GetPrivateProfileSection(szSectionName, szTemp, 1024, SourceFile);
if (dwRet > 0)
{
dwKeysSize = dwRet + 2;
while(dwRet == (1024-2))
{
MYFREE(szTemp);
MYMALLOC((void**)&szTemp, dwRet*2);
dwRet = GetPrivateProfileSection(szSectionName, szTemp, dwRet*2, SourceFile);
dwKeysSize = dwRet + 2;
}
MYFREE(szTemp);
// Fill the buffer
MYMALLOC((void**)&szKeys, dwKeysSize + 1);
dwRet = GetPrivateProfileSection(szSectionName, szKeys, dwKeysSize, SourceFile);
// Loop for each Key
for (int j=0; (unsigned int)j<dwKeysSize; j++)
{
MYMALLOC((void**)&szKeyName, strlen(szKeys + j) + 1);
// Retrieve key name
strncpy(szKeyName, szKeys + j, strlen(szKeys + j));
// If the first char is not ;, this is not a comment
if (szKeyName[0] != ';')
{
// If = is not found, skip key
if (strstr(szKeyName, "=") != NULL)
{
// Initiliaze key value
szKeyValue = strdup( strstr(szKeyName, "=") + 1 );
strstr(szKeyName, "=")[0] = '\0';
if (strlen(szKeyValue) > 0)
{
// Check if this key is in the target file
MYMALLOC((void**)&szTargetKeyValue, 1024);
// Calcul the size of buffer
dwRet = GetPrivateProfileString(szSectionName, szKeyName, "", szTargetKeyValue, 1024, TargetFile);
if (dwRet > 0)
{
dwTargetKeySize = dwRet + 2;
while(dwRet == (1024-2))
{
MYFREE(szTargetKeyValue);
MYMALLOC((void**)&szTargetKeyValue, dwRet*2);
dwRet = GetPrivateProfileString(szSectionName, szKeyName, "", szTargetKeyValue, dwRet*2, TargetFile);
dwTargetKeySize = dwRet + 2;
}
if (dwTargetKeySize != 0)
{
MYFREE(szTargetKeyValue);
MYMALLOC((void**)&szTargetKeyValue, dwTargetKeySize + 1);
dwRet = GetPrivateProfileString(szSectionName, szKeyName, "", szTargetKeyValue, dwTargetKeySize, TargetFile);
if (strlen(szTargetKeyValue) > 0)
{
if(stricmp(szTargetKeyValue, szKeyValue) != 0)
{
// Update the key
BOOL bWritted = WritePrivateProfileString(szSectionName, szKeyName, szKeyValue, TargetFile);
OutputDebugString("toto");
}
}
else
{
// Update the key
WritePrivateProfileString(szSectionName, szKeyName, szKeyValue, TargetFile);
}
MYFREE(szTargetKeyValue);
}
else
{
// Update the key
WritePrivateProfileString(szSectionName, szKeyName, szKeyValue, TargetFile);
}
}
else
{
// Update the key
WritePrivateProfileString(szSectionName, szKeyName, szKeyValue, TargetFile);
}
}
// Add szTemp length to i
j += strlen(szKeyName) + strlen(szKeyValue) + 1/*=*/;
}
else
j += strlen(szKeyName);
}
else
j += strlen(szKeyName);
MYFREE(szKeyValue);
MYFREE(szKeyName);
}
}
// Add szTemp length to i
i += strlen(szSectionName);
MYFREE(szKeys);
MYFREE(szSectionName);
}
}
}
MYFREE(szKeyName);
MYFREE(szKeys);
MYFREE(szSectionName);
MYFREE(szSections);
}
Le :
09/08/2007 09:35:45
Source :
ECRIRE/LIRE DANS UN FICHIER INI
Je ne dirai rien de plus, Arnaud16022 a raison.
Si tu veux, j'ai déjà une fonction toute faite qui permet de fusionner deux fichiers.
YamNet
Le :
16/02/2006 09:42:42
Source :
ECRIRE/LIRE DANS UN FICHIER INI
Salut,
Tu as placé ton code lorsque de l'évènement de changement de sélection de ta listbox change.
Donc si tu n'a rien dans ta listbox, c'est normal que ton code ne soit pas executé, car si la listbox est vide, tu ne peux pas changer la sélection.
Fait plutot un autre bouton qui va charger ta listbox à partir de ton fichier .INI
LallThis
Le :
15/02/2006 16:02:19
Source :
ECRIRE/LIRE DANS UN FICHIER INI
Je voulais savoir, si tu passe to programme en mode debug (F5) et que tu possitionnes un point d'arret (breakpoint) sur la fonction GetPrivateProfileString et que tu appuie sur F10 (pour passer à l'instruction suivante), quelles sont les données stockés dans ta variable "temp" ?
Question qui n'a rien à voir, tu utilise quoi pour développer ?
LallThis
Le :
15/02/2006 15:34:13
Source :
ECRIRE/LIRE DANS UN FICHIER INI
Quand tu passes en debug, après l'appel de GetPrivateProfileString, y'a quoi dans temp ????
Comment tu ajoutes à ta listbox ???
LallThis
Le :
15/02/2006 14:36:00
Source :
ECRIRE/LIRE DANS UN FICHIER INI
Je ne vois pas pourquoi ça ne fonctionnerai pas !!!!
Tu es sur que dans le fichier Test.ini, il y a bien une section nommé "OPTION", avec une clé nommé "Clé" et qu'il y a des données dedans.
Car typiquement, si GetPrivateProfileString retourne la valeur spécifié par défaut, c'est que qu'il y a un paramètre qui n'existe pas.
LallThis
Le :
15/02/2006 11:54:04
Source :
ECRIRE/LIRE DANS UN FICHIER INI
Tu as essayer de mettre comme chemin seulement "Test.ini" et non ".\\Test.ini" ?
Essai aussi de ne pas mettre sizeof(temp) mais 100.
LallThis
Le :
15/02/2006 10:54:27
Source :
ECRIRE/LIRE DANS UN FICHIER INI
Salut,
Un projet en MFC ne pose aucun problème.
Donne moi l'appel de GetPrivateProfileString().
Si la fonction retour un code erreur, donne le moi aussi.
Lallthis
Le :
10/03/2003 09:23:55
Source :
ECRIRE/LIRE DANS UN FICHIER INI
Y'a deja des exemples de l'utilisation...
pas besoin de fair une appli.
Bye
Lallthis
Le :
04/03/2003 14:19:14
Source :
ECRIRE/LIRE DANS UN FICHIER INI
Je pense que non, car ces deux fonctions sont des API.
Tu peux refaires tes fonctions, mais c'ets plus rapide avec les API.
Bye
LallThis
[
Page 1
]
CONCOURS DE PROG !
Pendant les vacances se déroule un concours de programmation Flash sur CodeS-SourceS !
Cliquez ici pour tous les détails
Plus que
57 jours
avant la fin !
Pub
Besoin d'icones ?
Besoin d'icones de qualité professionnelle pour vos sites et applications ? Alors ne cherchez plus, IconShock est la réponse !
IconShock est recommandé par CodeS-SourceS
Appels d'offres
Plugin Dialer outlook
Budget :
2 000€
Redaction texte pour s...
Budget :
180€
Redaction texte pour s...
Budget :
180€
La suite
RSS
Côté IT
Installation des drive...
Supprimer un module da...
Nettoyer les fichiers ...
Intégration de Reporti...
Automatisation de back...
Installation de WSS V3...
Installation de SQL Se...
Tous les articles IT
CalendriCode
Juillet
2008
L
M
M
J
V
S
D
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
VS Express FR Gratuit !
Boutique