begin process at 2010 02 10 11:50:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Base de données

 > 

Autre

 > 

Modification au sein d'un fichier txt


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Modification au sein d'un fichier txt

jeudi 21 février 2008 à 19:26:21 | Modification au sein d'un fichier txt

Selenore

    Bonsoir à tous, c'est mon premier post :)

Voila, j'aurais besoin de votre aide, je cherche la fonction qui me permetterais de supprimer une série de caractère en fonction d'un mot se trouvant après

Exemple : le fichier txt contient les infos suivantes :

86.230.267.80 Debian
82.880.675.733 Uni
86.230.264.80 Vista
82.850.675.733 XP

Ce que je cherche à faire, c'est de supprimer les lignes qui contienne "Debian" ou "Vista" en second mot.
Si cela suffisait, je serais content mais ... Je ne peux pas me baser sur les numéro de lignes sachant qu'elles peuvent elle même varier.


Je ne vois pas du totu comment procéder.

Quelqu'un pourrait-il m'aider ?

Merci d'avance.
vendredi 22 février 2008 à 00:16:20 | Re : Modification au sein d'un fichier txt

Neo_Fr

Membre Club
Salut, Commence par telecharger ca: http://www.cppfrance.com/codes/WIN32-LIRE-FICHIER-LIGNE-LIGNE_44453.aspx ensuite inclus dans ton projet ReadLine.h et ReadLine.c et apres tu pourras utiliser cette fonction: #define LINE_SIZE 256 DWORD __stdcall DeleteEntries(LPSTR lpszInFile, LPSTR lpszOutFile, LPCSTR lpcEntrie) { LPOPENL lpoLine; HANDLE hOutFile; DWORD LineSize, dwEntriesDeleted = 0, i = 0, bw; BYTE Line[LINE_SIZE]; lpoLine = OpenLine(lpszInFile, GetTypeOfFile(lpszInFile)); if(!lpoLine) return 0; hOutFile = CreateFile(lpszOutFile, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0); if(hOutFile == INVALID_HANDLE_VALUE) goto Error; while(1) { LineSize = ReadLine(lpoLine, i++, Line); if(LineSize == OPENL_EOF) break; if( *((DWORD*) &Line[LineSize-4]) != *((DWORD*) lpcEntrie) ) { *((WORD*) &Line[LineSize]) = 0x0A0D; // CRLF if(!WriteFile(hOutFile, Line, LineSize+2, &bw, 0)) goto Error; }else dwEntriesDeleted++; } Error: CloseHandle(hOutFile); CloseLine(lpoLine); return dwEntriesDeleted; } char szInFile[] = "C:\\in.txt"; char szOutFile[] = "C:\\out.txt"; int main(void) { DWORD nb = 0; nb = DeleteEntries(szInFile, szOutFile, "Unix"); printf("%d entrées ont ete supprimer!\r\n", nb); system("PAUSE"); return 0; } Neo_Fr
vendredi 22 février 2008 à 18:43:06 | Re : Modification au sein d'un fichier txt

Selenore

Je dois avouer avoir pas mal de difficultés à suivre ton code. Tu pourrais me l'expliquer un peu je te prie ? J'ai regardé ton autre source. Le problème, c'est qu'il faudrait que je puisse inclure dans mon programme un code qui me permettrait de supprimer rapidement une à plusieurs lignes, sans interaction de l'utilisateur, pour plus de simplicité. (note, j'ai essayé et j'ai 14 erreurs qui s'affichent dans la compilation sous Visual C++ 2005 Express. Erreur de version ? Je ne comprend pas très bien ce code, il est possible que je ne vois pas la ligne qui le défini. Merci quand même.)
vendredi 22 février 2008 à 18:58:49 | Re : Modification au sein d'un fichier txt

Neo_Fr

Membre Club
La fonction DeleteEntries prend 3 argument -lpszInFile: C'est ton fichier d'origine qui contient plein d'ips -lpszOutFile: C'est le fichier qui sera créer a partir du fichier d'entrée en supprimant tt les lignes finissant par 'lpcEntrie' ex: DeleteEntries("C:\\in.txt", "C:\\out.txt", "Unix"); out.txt sera créer et contiendra tt les lignes de in.txt sauf celle se finissant par "Unix". Cette fonction a besoin de ReadLine.c et ReadLine.h c'est pour cela que tu doit les inclure ds ton projet.. Neo_Fr
vendredi 22 février 2008 à 21:28:55 | Re : Modification au sein d'un fichier txt

Selenore

(je suis comme qui dirait un petit bleu...)

J'ai essayé de mettre les fichiers (ReadLine.h et ReadLine.c) en en-tête tous 2, en fichier sources tous 2, en en-tête pour ReadLine.h et fichier source pour ReadLine.c combiné à ce code :

#include

<iostream>

#define

LINE_SIZE 256

DWORD

__stdcall DeleteEntries(LPSTR lpszInFile, LPSTR lpszOutFile, LPCSTR lpcEntrie)

{

LPOPENL lpoLine;

HANDLE hOutFile;

DWORD LineSize, dwEntriesDeleted = 0, i = 0, bw;

BYTE Line[LINE_SIZE];

lpoLine = OpenLine(lpszInFile, GetTypeOfFile(lpszInFile));

if(!lpoLine) return 0;

hOutFile = CreateFile(lpszOutFile, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0);

if(hOutFile == INVALID_HANDLE_VALUE) goto Error;

while(1)

{

LineSize = ReadLine(lpoLine, i++, Line);

if(LineSize == OPENL_EOF) break;

if( *((DWORD*) &Line[LineSize-4]) != *((DWORD*) lpcEntrie) )

{

*((WORD*) &Line[LineSize]) = 0x0A0D;

// CRLF

if(!WriteFile(hOutFile, Line, LineSize+2, &bw, 0)) goto Error;

}

else dwEntriesDeleted++;

}

Error:

CloseHandle(hOutFile);

CloseLine(lpoLine);

return dwEntriesDeleted;

}

char

szInFile[] = "C:\\in.txt";

char

szOutFile[] = "C:\\out.txt";

int

main(void)

{

DWORD nb = 0;

nb = DeleteEntries(szInFile, szOutFile,

"Unix");

printf(

"%d entrées ont ete supprimer!\r\n", nb);

system(

"PAUSE");

return 0;

}





_____________________________________________


Il me met ensuite ce code d'erreur :

------ Début de la génération : Projet : correction, Configuration : Debug Win32 ------

Compilation en cours...

main.cpp

c:\documents and settings\pierre\mes documents\visual studio 2005\projects\destruction\correction\main.cpp(3) : error C2143: erreur de syntaxe : absence de ';' avant '__stdcall'

c:\documents and settings\pierre\mes documents\visual studio 2005\projects\destruction\correction\main.cpp(3) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut

c:\documents and settings\pierre\mes documents\visual studio 2005\projects\destruction\correction\main.cpp(3) : error C2065: 'LPSTR' : identificateur non déclaré

c:\documents and settings\pierre\mes documents\visual studio 2005\projects\destruction\correction\main.cpp(3) : error C2146: erreur de syntaxe : absence de ')' avant l'identificateur 'lpszInFile'

c:\documents and settings\pierre\mes documents\visual studio 2005\projects\destruction\correction\main.cpp(3) : warning C4229: anachronisme utilisé : modificateurs de données ignorés

c:\documents and settings\pierre\mes documents\visual studio 2005\projects\destruction\correction\main.cpp(3) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut

c:\documents and settings\pierre\mes documents\visual studio 2005\projects\destruction\correction\main.cpp(3) : error C2059: erreur de syntaxe : ')'

c:\documents and settings\pierre\mes documents\visual studio 2005\projects\destruction\correction\main.cpp(4) : error C2143: erreur de syntaxe : absence de ';' avant '{'

c:\documents and settings\pierre\mes documents\visual studio 2005\projects\destruction\correction\main.cpp(4) : error C2447: '{' : en-tête de fonction manquant (liste formelle à l'ancien format ?)

c:\documents and settings\pierre\mes documents\visual studio 2005\projects\destruction\correction\main.cpp(34) : error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'nb'

c:\documents and settings\pierre\mes documents\visual studio 2005\projects\destruction\correction\main.cpp(34) : error C2065: 'nb' : identificateur non déclaré

c:\documents and settings\pierre\mes documents\visual studio 2005\projects\destruction\correction\main.cpp(35) : error C2064: le terme ne correspond pas à une fonction qui prend 3 arguments

Le journal de génération a été enregistré à l'emplacement "file://c:\Documents and Settings\Pierre\Mes documents\Visual Studio 2005\Projects\correction\destruction\Debug\BuildLog.htm"

destruction - 11 erreur(s), 1 avertissement(s)

========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========


J'ai rajouté l'include <iostream> pour ajouter la fonction système mais j'ai des codes d'erreur, ais-je oublié d'inclure un include ?
Je ne comprend pas exactement tous les codes d'erreurs, pourrais-tu encore m'apporter un peu d'aide ?

Je ne me suis mis au C++ que depuis peu, toutes mes excuses pour mon incapacité :s

vendredi 22 février 2008 à 22:51:50 | Re : Modification au sein d'un fichier txt

Neo_Fr

Membre Club
Réponse acceptée !
remplace #include par #include ensuite remplace int main(void).. par: #pragma comment(linker, "/entry:_WinMain") int WINAPI _WinMain(void) { char szInfo[128]; DWORD nb; nb = DeleteEntries(szInFile, szOutFile, "Unix"); sprintf(szInfos, "%d entrees ont ete supprimer!\r\n", nb); MessageBox(0, szInfos, 0, 0, 0x40); ExitProcess(0); } Neo_Fr


Cette discussion est classée dans : fichier, cherche, txt, modification, sein


Répondre à ce message

Sujets en rapport avec ce message

Cherche un tuto ! [ par jekburn ] Hello, Si quelqu'un pouvait me dire ou trouver un tuto sur ces commandes. system("sort fichier.txt >> fichier1.txt"); Cette commande range par ordr union de deux fichiers [ par boualiasma ] Bonjour, Je voulais ajouter autres lignes (autres données) à la fin du fichier 'output.txt' à partir d'un autre fichier 'exp.txt' le contenu de fich traitement simultannée sur des fichiers [ par boualiasma ] Bonjour, Je voulais faire un traitement en même temps sur un nombre de fichier.J'ai trouvé des difficultés pour résoudre ce problème. Je vous expliq cherche aide pour developement [ par irath ] bonjour a tous je suis pas tres fort en developement, je cherche quelqun qui pourai m'aider a developer une application, c urgent et extremement impor gestion d'un fichier.txt en C++ [ par moberol ] Bonjour à tous! je debute en C++,le problème c'est que je voudrai lire un fichier texte dans sa totalité...en meme temps compter le nombre  "d'un mot" changer le continu d'une ligne d'un fichier txt [ par esprit1983 ] Salut, J'ai réalisé cette classe matiere qui permet de: -saisir un objet de type matiere qui contient un champ (nom) de type string et un champ(cof) ouverture d'un gros fichier txt ( taille > 3Mo) [ par malouve ] Bonjour, J'ai a traité des fichiers txt de valeurs dont je ne connais pas le nombre d'elements mais qui font plus de 3Mo. J'ai essayé la fonction fre ecrire fichier txt avec ofstream [ par MiharbiDoNo ] bonjour, je suis encore debutant en c++, je veux juste savoir commment ecrire des lignes de texte dans un ficher txt. j'ai vu des tuto mais j'ai pas a ecriture d'un txt dans le même dossier [ par MiharbiDoNo ] j'essai d'ecrire un fichier txt a l'aide de [code=cpp]ofstream myfile; myfile.open ("exemple.txt");[/code] le probleme c'est l'emplacement du fichier


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,794 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales