Remplacer un fichier par un autre =)
Fermé
Niwless
Messages postés
6
Date d'inscription
dimanche 29 septembre 2019
Statut
Membre
Dernière intervention
17 octobre 2019
-
Modifié le 30 oct. 2019 à 09:32
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 30 oct. 2019 à 12:09
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 30 oct. 2019 à 12:09
A voir également:
- Remplacer un fichier par un autre =)
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Word remplacer un mot par un autre - Guide
- Ouvrir un fichier .bin - Guide
2 réponses
mamiemando
Messages postés
33325
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 octobre 2024
7 799
Modifié le 30 oct. 2019 à 09:41
Modifié le 30 oct. 2019 à 09:41
Bonjour,
En C++, pour écrire un fichier texte quelconque (pas forcément
Note que tu peux ouvrir le flux en écriture pour écrire :
Pour plus de détails, voir la documentation.
Bonne chance
En C++, pour écrire un fichier texte quelconque (pas forcément
.ini), on utilise la classe
std::ofstreamdu C++.
#include <iostream> #include <fstream> int main() { std::string filename("/tmp/toto.ini"); std::ofstream ofs(filename); if (ofs) { ofs << "coucou" << std::endl << "hello" << std::endl; ofs.close(); } else { std::cerr << "Cannot write " << filename << std::endl; return 1; } return 0; }
Note que tu peux ouvrir le flux en écriture pour écrire :
- "à la place" de l'ancien contenu du fichier (mode
std::ofstream::out
, le mode par défaut - "à la suite" (mode
std::ofstream::app
, pour "append").
Pour plus de détails, voir la documentation.
Bonne chance
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié le 30 oct. 2019 à 12:22
Modifié le 30 oct. 2019 à 12:22
Salut Niwless,
Sous Windows un fichier .ini est un simple fichier texte qui peut contenir des paramètres utiles à une application. Du temps des systèmes 16bits (pré Windows95) le registre n'existait pas, et c'est ainsi que les paramètres étaient stockés (dans un fichier win.ini pour le système et dans un fichier au nom choisi par le développeur pour les paramètres privés particuliers à son propre programme).
Un fichier 36264335.ini peut, par exemple, se présenter sous la forme suivante :
Comme le dit mamiemando, vu qu'il s'agit d'un simple fichier texte, rien ne t’empêche d'utiliser de simples fonctions standard du C++ pour créer un fichier avec ce contenu.
Les fichiers .ini peuvent toutefois toujours être gérés par des applications avec l'API win32.
Concrètement, pour créer un fichier tel que celui-ci avec les fonctions de l'API Windows, tu peux écrire le programme suivant :
Le fonctionnement de la fonction est décrit là : https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-writeprivateprofilestringa
Si le fichier .ini n'existe pas dans le répertoire mentionné, il est créé. S'il existe mais que la section n'existe pas, elle est créée et la clef et sa valeur aussi. Si le fichier existe, ainsi que la section, et la clef, la valeur de la clef est mise à jour, etc. (ce n'est qu'un aperçu des possibilités, vois la doc pour une description complète).
Tu peux appeler cette fonction successivement avec des valeurs différentes pour créer différentes sections, clefs et valeurs.
C'est la façon la plus basique de faire.
Tu peux aussi utiliser d'autres fonctions de la même famille WritePrivateProfileXXXX qui te permettent de faire des opérations plus complexes et optimisant mieux les appels système si tu as de nombreuses données à stocker, vois la doc Microsoft.
Note que ces fonctions sont maintenues par Microsoft pour assurer la compatibilité ascendante de fonctionnement d'anciens programmes. Microsoft décourage ce mode de stockage des paramètres des applications, car il a été rendu obsolète par le registre Windows.
Dal
Sous Windows un fichier .ini est un simple fichier texte qui peut contenir des paramètres utiles à une application. Du temps des systèmes 16bits (pré Windows95) le registre n'existait pas, et c'est ainsi que les paramètres étaient stockés (dans un fichier win.ini pour le système et dans un fichier au nom choisi par le développeur pour les paramètres privés particuliers à son propre programme).
Un fichier 36264335.ini peut, par exemple, se présenter sous la forme suivante :
[SECTION1]
CLEF1=VALEUR1
Comme le dit mamiemando, vu qu'il s'agit d'un simple fichier texte, rien ne t’empêche d'utiliser de simples fonctions standard du C++ pour créer un fichier avec ce contenu.
Les fichiers .ini peuvent toutefois toujours être gérés par des applications avec l'API win32.
Concrètement, pour créer un fichier tel que celui-ci avec les fonctions de l'API Windows, tu peux écrire le programme suivant :
#include <stdio.h> #include <windows.h> #define MY_INI_FILE "C:\\Chemin\\vers\\mon_fichier\\36264335.ini" int main(void) { if (!WritePrivateProfileStringA("SECTION1", "CLEF1", "VALEUR1", MY_INI_FILE)) { printf("Erreur %lu\n", GetLastError()); } return 0; }
Le fonctionnement de la fonction est décrit là : https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-writeprivateprofilestringa
Si le fichier .ini n'existe pas dans le répertoire mentionné, il est créé. S'il existe mais que la section n'existe pas, elle est créée et la clef et sa valeur aussi. Si le fichier existe, ainsi que la section, et la clef, la valeur de la clef est mise à jour, etc. (ce n'est qu'un aperçu des possibilités, vois la doc pour une description complète).
Tu peux appeler cette fonction successivement avec des valeurs différentes pour créer différentes sections, clefs et valeurs.
C'est la façon la plus basique de faire.
Tu peux aussi utiliser d'autres fonctions de la même famille WritePrivateProfileXXXX qui te permettent de faire des opérations plus complexes et optimisant mieux les appels système si tu as de nombreuses données à stocker, vois la doc Microsoft.
Note que ces fonctions sont maintenues par Microsoft pour assurer la compatibilité ascendante de fonctionnement d'anciens programmes. Microsoft décourage ce mode de stockage des paramètres des applications, car il a été rendu obsolète par le registre Windows.
Dal