Ouvrir un fichier texte, et faire des modifications dedans...

z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 - 13 févr. 2006 à 23:06
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 - 14 févr. 2006 à 11:57
Bonjour à tous !

Je fais du c++ dans mes études, mais on a commencé les cours sur l'ouverture des fichiers très récemment, donc je ne sais pas le faire.

Ce que je voudrais faire:

C'est ouvrir un fichier .txt dans le répertoire courant, modifier des trucs, et l'enregistrer...

J'ai fait un script en bash (car je suis sous linux), mais comme ce programme sera pour mes parents, sous windows, j'ai besoin de le faire en c++. Donc j'aimerais savoir le faire en c++ pour windows.

Je voudrais aussi, savoir comment faire pour couper une ligne en fonction de caractère de début de position, et de la longueur voulue.
ex:
philippe
position début: 3
longueur: 2
donne : "li"


Merci !

Philippe

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 févr. 2006 à 23:13
y a pas notion de ligne dans un fichier, seulement des octets.
Pour ouvrir fichier: CreateFile()
Pour en retirer, tu te positionnes devant les octets à consrever (tout le reste du fichier), tu aspires dans un buffer avec ReadFile(), tu repositionnes (SetFilePointer) devant octets à enlever et tu tamponnes tout ton buffer (WriteFile).
Fermeture: CloseHandle()

Plein mes sources en exemples.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 févr. 2006 à 00:03
OUPS oubli:
Il faut aussi un SetEndOfFile() quand fini de remettre octets restants vu que tu en as enlevés.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
14 févr. 2006 à 00:53
Si tu a un probleme avec ces fonction n'hesite pas a utiliser la MSDN :)
0
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 2
14 févr. 2006 à 09:08
Bon, sans vouloir faire style que je ne m'y intéresse pas:

JE N'AI RIEN COMPRIS !!! lool

et MSDN je ne l'ai pas car je programme sous linux...

Mais j'ai vu ca hier soir, http://c.developpez.com/faq/cpp/?page=fichiers

Je vais regarder ca tout à l'heure dans le train...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 févr. 2006 à 10:49
Ce lien traite des flux, ce n'est pas de mise sous Windows.

MSDN:
http://www.msdn.microsoft.com/library/default.asp

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 2
14 févr. 2006 à 11:57
Je viens d'essayer ca sous windows:

#include
#include <stdio.h>
#include <fstream>
#include <stdlib.h>
using namespace std;



int main() {

ifstream fichier("fichier.txt");

if (fichier)
{
string szBuffer;
fichier >> szBuffer;
cout << szBuffer;
}

cin.get();

return 0;

}

ca marche, mais ca s'arrète au premier espace...

Mais sous linux, ca ne marche absolument pas, ca ne fait rien !

Que faire?
0
Rejoignez-nous