Accueil > Forum > > > > spliter un fichier....
spliter un fichier....
vendredi 11 juin 2004 à 22:41:24 |
spliter un fichier....

damdam04
|
salut le monde des programmeurs j'ai deja posté un message sur le forum de VB sur le splitage de fichier... "je cherche comment décomposer des lignes, que je récupére dans un fichier *.dat, en plusieurs cellules d'un tableau. je m'explique, j'ai un fichier .dat qui contient plusieur milliers de lignes. chaque lignes est composée de texte et de séparateur ( soit "," soit ";"). ex: bonjour;damdam;04;;;marseille;... je cherche un code qui me permette de récupérer le texte entre chaque séparateur. merci d'avance à tous ceux qui répondront à ce message... " un mail m'a été envoyé avec l'adresse d'une source mais je ne peux découper le fichier que par taille... donc si quelqu'un peut m'aider.... merci d'avance ps je suis débutant en c donc c'est pour ça que je reformule ma demande... merci
|
|
vendredi 11 juin 2004 à 22:43:25 |
Re : spliter un fichier....

damdam04
|
merci beaucoup de votre aide, j'ai réussi à faire ce que je voulais... maintenant je cherche à le faire en C ou C++, parce que le VB c'est un peu lent... ou alors je ne connais pas les astuces pour optimiser mon code...
merci encore de votre aide
bonne continuation à tous
|
|
vendredi 11 juin 2004 à 23:03:52 |
Re : spliter un fichier....

BruNews
|
Original: bonjour;damdam;04;;;marseille; bon ok mais exactement tu veux obtenir quoi partant de cet exemple ?
bonjourdamdam04marseille Serait ce cela ?
ciao... BruNews, Admin CS, MVP Visual C++
|
|
samedi 12 juin 2004 à 12:07:21 |
Re : spliter un fichier....

elguevel
|
Faut utiliser la fonction 'strtok' !
tient j'tai fait un pt'it bout de code qui te permet d'afficher les lignes que tu souhaite a l'ecran :
=> Buffer represente le fichier en memoire !
un premier strtok permet de faire la recherche de la première occurance, par contre pour trouver les autres tu n'est plus obliger de specifier la chaine à parcourir, pour çà que j'ai fait une boucle for avec un strtok qui contient un NULL .
je sais pa si je m'exprime clairement mais voila le code !
*************************
// Split de fichier par ELGUEVEL
#include <windows.h> #include <stdio.h>
/* Retourne la taille du fichier en octet */ (methode maizon) int longFichier( FILE *ffile ) { int len; fseek(ffile, 0, SEEK_END); len = ftell( ffile ); fseek(ffile, 0, SEEK_SET); return len; }
/* Entry Point */ void main ( int argc, char *argv[]) { // DECLARATIONS FILE *fichier; char *trouve; char *buffer, *memBuffer; int fTaille = 0; printf("\n\tSplitteur - Par ElGuevel"); // CONTROLES if ( argc < 2) { printf("\n\n\t Syntaxe : %s <fichier a traiter>\n", argv[0]); exit(0); } if ( (fichier =fopen( argv[1], "r" ) ) == NULL ) { printf("\n\n\t Erreur : Le fichier '%s' n'a pas pu etre ouvert !\n\n", argv[1] ); exit(0); } // MISE EN MEMOIRE DU FICHIER fTaille = longFichier( fichier ); buffer = (char *) LocalAlloc( LPTR, fTaille + 1 ); memBuffer = buffer; // conserve l'adresse du pointeur de depart pour destruction fiable ! fread( buffer, sizeof(char), fTaille, fichier ); // PARSAGE trouve = strtok( buffer, ",;" ); // premiere recherche do { printf("\n%s", trouve ); trouve = strtok( NULL, ",;" ); } while( trouve != NULL ); LocalFree ( memBuffer ); printf("\n\n"); }
*****************************
Aller bonne continuation.
désolé si mon code peu paraitre un peu porc pour certain mais j'ai debuter le 'C' y'a 2 mois !
|
|
samedi 12 juin 2004 à 12:10:56 |
Re : spliter un fichier....

elguevel
|
Heuuu pour VB .. c vrai que ce langague est lent mais je le pratique aussi, la fonction est plus simple, tu lit ton fichier, et tu le place dans une varaible ou autre comme precedemment genre :
Open fichier for input as #1 do while not EOF(1) input #1, variable Loop Close #1
et ensuit etu a juste a declarer un tableau et a utiliser la fonction Split (n'existe qu'avec VB6 je croit).
Dim Tableau() as string
Tableau = Split ( variable, seprateur) <= heu je croit que c çà j'ai pas la fonction sous les yeux .
Allé @+
Damien
|
|
samedi 12 juin 2004 à 23:55:00 |
Re : spliter un fichier....

damdam04
|
ben en fait mon fichier fait plus de 1.5 Mo alors pour le stocker pas de souci, mais lorsque je travaille dessus et que je le réécrit dans un fichier, la , ça prends du temps, et j'ai besoin d'en gagner...
merci encore pour ton aide damien, c'est exactement se que j'ai fait dans mon code...
merci encore à tout le monde!
et vive les programmeurs!!!!
damdam04
|
|
Cette discussion est classée dans : fichier, message, cherche, lignes, spliter
Répondre à ce message
Sujets en rapport avec ce message
Suprimmer un fichier [ par naney ]
tout d'abort un grand merci au webmaster de ce site :D car j'en avais mare de cherche un site comme vbfranc.com mais qui parler du c et du c++Je cherc
Compter les lignes d un fichier texte [ par DeepThroat ]
Bonjour a tous !J'aimerai trouver une fontion simple qui retourne le nombre de lignes dans un fichier , ou bien qui affiche ce nombre de lignes.j'imag
help sur lecture/ecriture sur fichier sur c++ [ par overfun ]
Bonjour à tous et à toutes, je suis nouveau dans la programmation et voudrait savoir comment écrire dans un fichier seulement sur quelques lignes !!Co
fichier en c [ par GazGaz ]
lu all heuu chui po sur detre dan le bon forum donc tapez po trop fort si c po le bon :)alors voila je dispose d'un fichier structuré dont voici 2 li
[C] lignes d'un fichier dans un tableau : Segmentation fault [ par Michel76 ]
Bonjour,Pardonnez-moi de cette question de débutant.Soit un fichier contenant :-----001002-----Je souhaiterais mettre chacune des lignes de ce fichier
Matez ça! :) [ par MaDC ]
J'ai un soucis avec mon appli MFC.Je voudrais ouvrir un document avec ça :void CCommandeRobotView::OnFileOpen() { CFileDialog fenetreDlg( true, NU
transferer des lignes d'un fichier vers un autre? [ par requinB ]
bonjour,qlq'un peut maider?, je veux ajouter des lignes d'un fichier (toutes) sur un autre fichier(en mode ajout), ...est ce que cela est bon:fichier1
PB d'E/S fichier avec une DLL [ par huberdine ]
Je cherche a faire une DLL en C, dans la quelle je puisse faire des E/S fichier.Mon probleme est le suivant : la fonction fopen refuse de fonctionner
Lecture sur un fichier par ligne [ par gagaet22 ]
Bonjour, Je cherche à lire sur un fichier ligne par ligne.J utilise fscanf et il s arrete des qu il y a un espace... Je cherche donc une fonction qui
se deplacer a la ligne dans un fichier [ par dletozeun ]
est ce que quelqu'un connait une commande,une fonction qui permet de se de placer de lignes en lignes plutot que de caracteres en caracteres?Par ex: p
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|