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
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : CXIMAGERE : CXIMAGE par rt15
Cliquez pour lire la suite par rt15
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|