Devenir membre club
Connectez vous
Aide & règlement
Votre 1ère visite
Le règlement
Contacter les admins
Contacter le webmaster
Questions & réponses
Comment soutenir CodeS-SourceS
Comment faire un lien vers CodeS-SourceS
Autres questions
A propos & don
A propos du réseau
Les modérateurs
Remerciements
Faire un don
Le livre d'or
Tous les livres
Les dernières parutions
Les plus consultés
Les critiques
Le top des ventes
Le top favoris des membres
Recevoir des livres blancs
Tous les thèmes
Les derniers messages
Les nouveaux messages
Poser une question
Le Chat - IRC
Tous les tutoriels
Ajouter un tutoriel
Les tutoriels en vidéo
Les formations vidéos
Tous les codes
Ajouter un code
Filtrer par catégorie
Filtrer par date
Les plus récents
Les mis à jour
Les codes par jour
Filtrer par niveau
Niveau débutant
Niveau initié
Niveau expert
Filtrer par type
Les codes avec capture
Les codes avec zip
Les codes .Net
Filtrer par qualité
Les plus populaires
Les plus populaires du mois
Les plus téléchargés
Les mieux notés
Top par catégorie
Top des favoris
Filtrer par auteur
Tous les auteurs
Le top des membres
Les snippets
Déposer votre CV
Consulter les offres d'emploi ou de stage
Consulter les CVs
Déposer une offre d'emploi ou de stage
Modèles de CV et lettres
Trouver une convention collective
Les écoles d'informatique
Toutes les écoles
Ajouter une école
Les outils
Outils pour développeurs
Trouver des ressources
Base de données de CodeS-SourceS
Télécharger les meilleurs logiciels
Comparer les prix
Envoyer des ecards
Création de bannières
Annuaire de la prog
Tous les sites
Ajouter votre site
Le dico de la prog
Toutes les définitions
Ajouter une définition
Les évènements
Tous les évènements
Les évènements à venir
Ajouter un évènement
Téléchargements
CodeS-SourceS Toolbox
CodeS-SourceS Toolbar
Toolbar pour FireFox
Fonds d'écran
Les compil's
Nos partenaires
Magazine Programmez
Frontier.fr
Xiti
ProgOnline
Winwise
Editions Eyrolles
Toute la liste
Les RFC
CS
VB, VB.NET
ASP.NET,ASP
C, C++
ColdFusion
PHP
Javascript
Delphi
Flash
Java
Graphisme
Irc
Assembleur
C#
Mobilité
SQL
Foxpro
Python
Regex
Flex
Windev
Ce site au démarrage
begin process at 2010 03 21 16:32:39
Accueil
Codes
Tutoriels
Forum
Livres
Emploi
Services
Connexion
Trouver un code source :
dans
Tout le site
Codes
Tutoriels
Forum
Blogs
Livres
RFC
Icones
News .NET
Boutique
[ Dernières recherches ]
Veuillez saisir votre recherche... Ex: smtp, lire un fichier, rs232
Options de recherche :
Tous les codes
Tous les codes en .Net
Tous les codes sauf .Net
Langages disponibles :
Tous les langages
ASP / ASP.NET
Assembleur
C / C++ / C++.NET
C# / C#.NET
ColdFusion
Delphi
Flash
Flex, Air, ActionScript
Foxpro
Graphisme
IRC
JAVA / J2EE
Javascript / Ajax / DHTML
PDA / PocketPC
PHP
Python
Regex, Regular Expression, Expression régulière
SQL
Visual Basic, VB6, VB.NET, VB 2005, VB
12 commentaire(s) de LallThis
sur des sources sur tout
CodeS-SourceS
Déposé sur
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);
}
Posté le :
09/08/2007 10:01:30
Déposé sur
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
Posté le :
09/08/2007 09:35:45
Déposé sur
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
Posté le :
16/02/2006 09:42:42
Déposé sur
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
Posté le :
15/02/2006 16:02:19
Déposé sur
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
Posté le :
15/02/2006 15:34:13
Déposé sur
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
Posté le :
15/02/2006 14:36:00
Déposé sur
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
Posté le :
15/02/2006 11:54:04
Déposé sur
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
Posté le :
15/02/2006 10:54:27
Déposé sur
Ecrire/lire dans un fichier ini
Y'a deja des exemples de l'utilisation...
pas besoin de fair une appli.
Bye
Lallthis
Posté le :
10/03/2003 09:23:55
Déposé sur
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
Posté le :
04/03/2003 14:19:14
1
2
Nos sponsors
Derniers Blogs
ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2
ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2
par ROMELARD Fabrice
Avec la dernière génération du lecteur MP3 de Microsoft, le ZUNE HD, Microsoft a publié une nouvelle version du logiciel pour PC. Ainsi, je me suis décidé à installer celle-ci sur mon Tablet PC ACER, comme toujours le logiciel est donc tél...
Cliquez pour lire la suite de l'article
par ROMELARD Fabrice
NOUVEAU SYSTèME D'AIDE POUR VISUAL STUDIO 2010 : POUR CEUX QUI N'APPRéCIENT PAS TROP L'ABSENCE D'INDEX...
NOUVEAU SYSTèME D'AIDE POUR VISUAL STUDIO 2010 : POUR CEUX QUI N'APPRéCIENT PAS TROP L'ABSENCE D'INDEX...
par coq
...un projet tente de palier à ce manque : H3Viewer Il n'est certes pas encore parfait, mais il a le mérite d'exister. Dans mon cas il a 2 défaut (en utilisation sur la version RC, donc à revalider avec des versions ultérieures) : Je suis in...
Cliquez pour lire la suite de l'article
par coq
L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES
L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES
par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné. La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article
par odewit
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?
par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article
par Matthieu MEZIL
SQL SERVER : QUERY NOTIFICATION OU COMMENT êTRE NOTIFIé DE MODIFICATIONS DE DONNéES CôTé APPLICATION (SQLDEPENDENCY)
SQL SERVER : QUERY NOTIFICATION OU COMMENT êTRE NOTIFIé DE MODIFICATIONS DE DONNéES CôTé APPLICATION (SQLDEPENDENCY)
par christian
Cette fonctionnalité à vue le jour dans Ado.Net 2.0 et s'appuie sur SQL Server 2005 (et plus) même si elle fonctionne avec SQL Server 2000. Le principe de fonctionnement côté applicatif est assez simple, on fournit une requête et lorsque le résultat d...
Cliquez pour lire la suite de l'article
par christian
La suite
RSS
Côté IT
A la découverte de la console d?administration de Team Foundation Server 2010
A la découverte de la console de configuration de Team Foundation Server 2010
A la découverte du programme d?installation de Team Foundation Server 2010
Empècher Windows de créer les fichiers THUMBS.DB
Nettoyage de disque sans compression
Comment faire un CD bootable depuis Nero 7
Modifier la liste des valeurs proposées par le champ Assigned To dans les Elements de travail de ...
La suite
RSS
Offres d'emploi
Recherche Développeur SharePoint
Recherche Développeur web
Recherche DEVELOPPEUR WEB PHP/MYSQL/JAVASCRIPT EN ALTERNANCE/STAGE (H/F)
Recherche DEVELOPPEUR WEB PHP/MYSQL/JAVASCRIPT SENIOR (H/F)
Recherche Développeur web PHP polyvalent
Recherche Ingénieur d'études .NET
Recherche Webmaster
Déposer une offre
La suite
RSS
Formations Video
Cinema 4D par la pratique
Techniques avec Photoshop : correction des couleurs
Créer son blog avec WordPress
Montage photo : Vacances au ski
Retouche beauté : Mister Bad Boy
After Effects CS4 pour les utilisateurs de Photoshop
Final Cut Pro 7 : les fondamentaux
La suite
RSS
Appels d'offres
Realisation de bannieres et encarts pub
Budget :
500€
outil audit microsoft excel
Budget :
1 000€
Recherche traducteur francais portugais
Budget : ND
La suite
RSS
Logiciels
Academy System (10.9.4.0)
ACADEMY SYSTEM (10.9.4.0)
Logiciel de gestion des établissements. - élèves/étudiants (inscription, dossier, absence...) -...
Cliquez pour télécharger Academy System
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)
XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)
Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise...
Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate
Xilisoft DVD Ripper Ultimate (5.0.64.0304)
XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)
Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ...
Cliquez pour télécharger Xilisoft DVD Ripper Ultimate
Axalot, logiciel de sauvegarde de données en ligne (1.10.108.1)
AXALOT, LOGICIEL DE SAUVEGARDE DE DONNéES EN LIGNE (1.10.108.1)
Perdre tout le contenu de votre disque dur, vous imaginez ? Vos photos, vos musiques, votre compt...
Cliquez pour télécharger Axalot, logiciel de sauvegarde de données en ligne
Rigs of Rods (63.3)
RIGS OF RODS (63.3)
c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo...
Cliquez pour télécharger Rigs of Rods
+ de logiciels à télécharger
Vidéos drôles
Banana Song
Foot féminin
Comment attraper la grippe A
Parodie Pub Window 7
Daft Bodies - Harder Better Faster Stronger
Royal Fuhrer
C'est quoi le texte ?
La suite
RSS
Sondage...
Votre navigateur n'utilise pas le javascript, pour
voter aux sondages de ce site, cliquez ici
Statistiques
1 624 457
membres
245
nouveaux aujourd'hui
15 513
membres club
Comparez les prix
HTC Tattoo
Entre 9€ et 329€
Visiter le guide achat
CalendriCode
Mars
2010
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
Consulter la suite du CalendriCode
Photothèque
Visiter la photothèque
CS Tool Box