Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : spliter un fichier.... [ Archives / Fichier / Disque ] (damdam04)

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

Administrateur CodeS-SourceS
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é 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


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.