Accueil > Forum > > > > Modification au sein d'un fichier txt
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
|
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
|
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
|
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
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|