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
(5614)
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
Categories des codes
.Net
API
Application
Applications Linux
Astuces
Base de données
Chaîne de caractères
Date / Heure
DirectX
Divers
Fichiers / Disque
Graphique
GTK+
Imprimante
Jeux
Maths & Algorithmes
Multimédia
OpenGL
Périphériques
Réseaux & Internet
Sécurité & Cryptage
Système
Tutoriaux
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
(24)
Forums
(149678)
Vidéos
Livres
(28485)
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 20 09:19:45
Derniers blogs
T_PAAMAYIM_NEKUDOTAYIM
Et je mets le son....
SharePoint : Comment i...
VPC - Reset de la posi...
Un bug dans IE rendra ...
La suite...
Mini Sondage
Votre navigateur n'utilise pas le javascript, pour
voter aux sondages de ce site, cliquez ici
Derniers logiciels
Mozilla Firefox (3.0.1...
NSIS (2.38)
VSCmdShell (1.2)
MzTools (3.0.1175)
EasyPHP (1.8 / 2.0 bet...
La suite...
Comparer les prix
Nokia N95 Smartphone au meilleur prix
Mes RSS
Top 3 des meilleurs t...
Top 3 des meilleurs p...
Télécharger les meill...
Customizing csproj fi...
Un peu de calcul matr...
La suite...
Personnaliser
Stats
1 213 150
membres
71
nouveaux aujourd'hui
14 166
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 355
codes,
1 146 872
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 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 !
11 commentaire(s) de LallThis
sur des sources sur
cppfrance
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
42 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
Dessins techniques
Budget :
60€
Animation Flash - Doma...
Budget :
370€
Application flash medi...
Budget :
1 000€
La suite
RSS
Côté IT
Nouveautés dans les in...
Installation des drive...
Supprimer un module da...
Nettoyer les fichiers ...
Intégration de Reporti...
Automatisation de back...
Installation de WSS V3...
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
Codyx le site 100%
snippets
!
[Nouveau]
Codyx, le site des snippets
Boutique