Accueil > Forum > > > > Utilisation de Fichiers txt en C++.net
Utilisation de Fichiers txt en C++.net
samedi 19 juillet 2008 à 00:03:45 |
Utilisation de Fichiers txt en C++.net

zebulon88
|
Bonjour à tous, j'ai deux questions : - J'utilise visual c++.net express 2008, et je cherche à lire uniquement les dernières lignes d'un fichier txt très volumineux sans lire l'intégralité du fichier. Comment faire? - J'ai une multitude de fichiers txt de noms divers que je voudrais "concaténer" en un seul gros fichier txt. Pourriez vous m'aider? Merci beaucoup.
|
|
samedi 19 juillet 2008 à 13:05:23 |
Re : Utilisation de Fichiers txt en C++.net

Neo_Fr
|
Salut,
En .Net j'en ai aucune idée mais en pure C ca donnerait ca:
DWORD __stdcall FileConcat(LPSTR lpszDstFile, LPSTR lpszSrcFile)
{
HANDLE hSrcFile, hDstFile;
DWORD dwRet = 1, dwFileSize, br, bw;
BYTE* lpBuffer;
hSrcFile = CreateFile(lpszSrcFile, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);
if(hSrcFile == INVALID_HANDLE_VALUE) return 1;
hDstFile = CreateFile(lpszDstFile, GENERIC_WRITE, 0, 0, OPEN_ALWAYS, 0, 0);
if(hDstFile == INVALID_HANDLE_VALUE) goto _Error;
lpBuffer = (BYTE*) HeapAlloc(GetProcessHeap(), HEAP_NO_SERIALIZE, 0x100000); // 1mo
if(!lpBuffer) goto _Error;
dwFileSize = GetFileSize(hDstFile, 0);
SetFilePointer(hDstFile, dwFileSize, 0, FILE_BEGIN);
while(1)
{
if(!ReadFile(hSrcFile, lpBuffer, 0x100000, &br, 0)) goto _Error;
if(!br) break;
if(!WriteFile(hDstFile, lpBuffer, br, &bw, 0)) goto _Error;
}
dwRet = 0;
_Error:
if(lpBuffer) HeapFree(GetProcessHeap(), HEAP_NO_SERIALIZE, lpBuffer);
if(hDstFile) CloseHandle(hDstFile);
if(hSrcFile) CloseHandle(hSrcFile);
return dwRet;
}
Neo_Fr
|
|
samedi 19 juillet 2008 à 16:20:35 |
Re : Utilisation de Fichiers txt en C++.net

SAKingdom
|
BOOL FileConcat(LPSTR lpszDstFile, LPSTR lpszSrcFile) { HANDLE hSrcFile, hDstFile; BOOL ret = FALSE; BYTE* lpBuffer; hSrcFile = CreateFile(lpszSrcFile, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0); if(hSrcFile != INVALID_HANDLE_VALUE) { hDstFile = CreateFile(lpszDstFile, GENERIC_WRITE, 0, 0, OPEN_ALWAYS, 0, 0); if(hDstFile != INVALID_HANDLE_VALUE) { if((lpBuffer = (BYTE*)HeapAlloc(GetProcessHeap(), 0, 0x100000))) { // 1mo SetFilePointer(hDstFile, 0, 0, FILE_END); while(1) { DWORD dummy; if(!ReadFile(hSrcFile, lpBuffer, 0x100000, &dummy, 0)) goto _Error; if(!dummy) break; if(!WriteFile(hDstFile, lpBuffer, dummy, &dummy, 0)) goto _Error; } ret = TRUE; _Error: HeapFree(GetProcessHeap(), 0, lpBuffer); } CloseHandle(hDstFile); } CloseHandle(hSrcFile); } return ret; } C++ (@++)
|
|
samedi 19 juillet 2008 à 17:29:26 |
Re : Utilisation de Fichiers txt en C++.net

NairodDorian
|
1) Utilise la class StreamReader et utilise la méthode Seek. 2) Pour lister tous les fichiers Directory.GetFiles(); qui renvoi un tableau de String.
|
|
dimanche 20 juillet 2008 à 00:24:05 |
Re : Utilisation de Fichiers txt en C++.net

zebulon88
|
ok merci,
j'ai rencontré plusieurs fois pour la méthode seek sur les forums mais je n'arrive pas à l'utiliser correctement. L'aide de msdn donne : FileStream^ fileStream = gcnew FileStream( fileName,FileMode::Create ); /.../ fileStream->Seek( 0, SeekOrigin::Begin ); le 0 spécifie le décalage, s'agit-il du nombre de ligne de décalage? (je ne connais pas le nombre de ligne de mon fichier txt...) SeekOrigin::Begin Spécifie le début, la fin ou la position actuelle en tant que point de référence pour origin. Or j'ai besoin de récupérer les dix dernières lignes d'un fichier txt de nombre de ligne inconnu...
Pourriez vous m'aider avec un exemple ?
merci
|
|
dimanche 20 juillet 2008 à 10:21:44 |
Re : Utilisation de Fichiers txt en C++.net

NairodDorian
|
Non le nombre qui indique le décalage est le nombre d'octets. Comme je l'ai dis utilise plutôt la classe StreamReader puisque tu lis un fichier txt. FileStream spécialisé dans la lecture d'octets. StreamReader spécialisé dans la lecture de chaine de caractères.
|
|
dimanche 20 juillet 2008 à 16:16:09 |
Re : Utilisation de Fichiers txt en C++.net

zebulon88
|
J'ai essayé un truc avec les stream reader mais rien n'est finalement écris dans mon fichier resultat.txt.
StreamReader^ sr = gcnew StreamReader( "test.txt" ); StreamWriter^ sw = gcnew StreamWriter( "result.txt"); sr->BaseStream->Seek(-1024,SeekOrigin::End); while (sr->Peek() >= 0){sw->WriteLine(sr->ReadLine()); }
|
|
dimanche 20 juillet 2008 à 16:27:37 |
Re : Utilisation de Fichiers txt en C++.net

zebulon88
|
J'ai trouvé readtoend qui me permet de lire jusqu'a la fin du fichier. Mais en fait je ne peux pas lire les dernières lignes de mon fichier initial il s'arrete avant d'arriver à la toute fin ...
sr->BaseStream->Seek(-200004,SeekOrigin::End); sw->WriteLine(sr->ReadToEnd());
|
|
Cette discussion est classée dans : fichier, net, fichiers, txt, utilisation
Répondre à ce message
Sujets en rapport avec ce message
récupération de données excel avec vb.net et bascule vers un fichier unique .txt [ par coeurdenoir ]
Bonjour,je suis un débutant alors ne soyez trop dur avec moi.Voila je travaille sur un projet informatique et aujourd'hui je bloque sur un point qui
utilisation de scripte stoquer dans un fichier txt ??? [ par li ]
bonjour, certain programme, plus souvent des serveurs de jeu utilise des fichier dans lequel se trouve des scriptes non compiler que laplication utili
Gros problème sur les fichiers en C [ par Zworykin ]
Bjr à tous voià dans le cadre d'un tp je dois faire les fichiers de mon programme. j'arrive à écrire dans mon fichier mais je calle trop et c'est pas
En C++, stocker dans un AnsiString le contenu d'un fichier .txt [ par pokerdany ]
Bonjour tout le monde! Après de longues recherches qui ne m'ont pas amenées à un résultat satisfaisant, je repose la question, en espérant que je ne v
probleme de recherche [ par rachidotec ]
bjr, jèai un probleme de recherche des fichiers selon la date de création. le problem est comme suite: -j'ai crée une application qui regroupe des fic
comment désactiver lecture seul sur dique FAT32 [ par mikouRoux ]
Salut,J'essaye d'installer indexHiBit (CMS très simple) en local pour pouvoir y faire des modificationsPour pouvoir l'installer (http://www.indexhibit
Installation et utilisation de Libxml2 sous windows [ par boualiasma ]
Salut,Je suis entrain de programmer en C avec Visual studio 2008 sous Windows.Je voudrais parser un fichier XML dans mon programme C. J'ai trouvé libx
fichiers en C [ par boualiasma ]
Salut, 1) Dans mon travail, j'utilise des fichiers. je crée un fichier "essai.txt" pour le remplir fp = fopen("essai.txt","w"); // je fais des tra
memmove() et fichiers ? [ par boualiasma ]
Salut, 1) je trouve un exemple de memmove() sous windows : Code : C 1 2 3 4 5 6 7 8 9 10 11 12 /* memmove example */ #include #includ
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 WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
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
|