begin process at 2012 05 28 11:54:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

aide traitement du fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

aide traitement du fichier

vendredi 17 juillet 2009 à 14:43:52 | aide traitement du fichier

boualiasma

J'ai un fichier qui se compose de deux champs :

- numero présenté par un entier
- attribut présenté par une chaine caractère.

On a la même taille pour le champ attribut dans toutes les lignes du fichier.

Par exemple, Soit le fichier nommé essai.txt:

1 110101
2 100101
3 110101
4 000101
5 000000
6 110101
7 110101
8 000000
9 010101
10 100101

Le travail demandé est:

- Supprimer des lignes du fichier essai.txt qui contiennent comme chaine caractère "000000"
Dans notre exemple, on doit supprimer les deux lignes suivantes:

5 000000
8 000000

-Supprimer des colonnes du la chaine attribut pour chaque ligne sachant que cette colonne est tout à 0 dans toutes les chaines du fichier.

Dans notre exemple, on remarque que la colonne 3 et 5 sont toutes à 0.


En conclusion, on obtient le résultat suivant qui présente un fichier (on peut travailler sur le même fichier ou autre)
après la suppression des lignes et des colonnes faite :

1 1111
2 1011
3 1111
4 0011
6 1111
7 1111
9 0111
10 1011


Je dois faire un programme C sous Windows permettant du supprimer des lignes et des colonnes comme décrit précédemment.
J'ai trouvé des difficultés à manipuler les positions du curseur dans un fichier de plus je ne sais pas si il y a des
fonctions prédéfinis dans C qui permettent du supprimer des lignes et des colonnes selon un critère.


- Après la suppression d'une ligne qui contient la chaine "000000", il reste une ligne vide.
Comment j'évite cette ligne vide ?

- Pour la suppression d'une colonne:
lorsque je trouve un 0 en position k dans la chaine de première ligne.
comment je vais déplacer en position k dans la chaine de celui de reste des lignes c-à-d ligne 2, 3 jusqu'à la dernière ligne ?
car on doit supprimer la colonne de la chaine qui est 0 dans toutes les chaines

Merci.

vendredi 17 juillet 2009 à 21:51:36 | Re : aide traitement du fichier

TeniX

Membre Club

Slt, as tu déjà commencé quelque chose ?
Sinon peux stockés ton fichier dans un tableau ou autre pour pouvoir faire ton traitement et ensuite le réécrire.

Ciao

vendredi 17 juillet 2009 à 22:50:25 | Re : aide traitement du fichier

MoH008

Salut,
Comme TeniX te l'a conseillé si ton fichier n'est pas trop lourd tu peux utiliser un tableau statique ou dynamique (au choix) pour pouvoir effectuer tes traitements. C'est ce que je pense est le plus adéquate dans ta situation.

The possible meet the impossible to become the possimpible !!

samedi 18 juillet 2009 à 08:13:40 | Re : aide traitement du fichier

boualiasma

Salut,

J'ai un fichier de taille grande.
Il comporte des milliers des lignes.
Si j'utilise une structure des données en mémoire comme tableau ou matrice alors ceci va être couteux. De plus, je crois que la taille de matrice est limitée.

S'il vous plait, Avez-vous une proposition ?

samedi 18 juillet 2009 à 09:01:40 | Re : aide traitement du fichier

boualiasma

Salut,

Je reformule ma demande.
J'ai un fichier texte bien formé contient deux champs: objet et attribut. Tous les objets sont des entiers et tous les attributs sont de chaines de caractères de même taille.
chaque ligne contient un objet et son attribut par exemple:

essai.txt:

10 1110001
20 1010100
30 0100101
37 0000000
40 1000101
50 0000000
80 1110001
100 1010001


1) je voudrais supprimer les lignes qui contiennent une chaine qui est toute à 0 par exemple dans notre on a "0000000"

Donc, on doit supprimer les lignes suivantes:
37 0000000
50 0000000

2) Je voudrais supprimer les 0 de même position dans chaque chaine de caractère. J'appelle ceci la suppression des colonnes.
Par exemple dans notre cas, nous allons supprimer les 0 dans la position 4 et 6 de chaque chaine car dans cette position nous avons toutes les chaines ont un 0 dans la position 4 et 6.

j'ai trouvé une difficulté de résoudre ce problème, de plus imaginez si nous avons un fichier volumineux (donc c'est couteux d'utiliser une autre structure en mémoire pour faire des traitements nécessaires).

Mon idée:

1) Pour la suppression des lignes: je parcoure ligne par ligne et je vérifie c'est la chaine de cette ligne est égale au "0000000" alors je supprime cette ligne.
Comment je vais supprimer cette ligne ? Et après la suppression, est ce qu'il reste une ligne vide(comme une entrée) ? Si oui, comment je éviter cette ligne vide

2) Pour la suppression des colonnes: Je parcoure seulement la première ligne de fichier. Pour tout 0 de chaine de première ligne je teste si je trouve dans position p un 0 dans la chaine du première ligne alors je vérifie si je trouve 0 dans la même position p dans les chaines des autres lignes.
Cette solution este théorique. Imaginez si nous avons un fichier volumineux.De plus, comment je vais déplacer dans le fichier dans la bonne position ?

A la fin, je ne dois pas obtenir un résultat comme çà :
10 11101
20 10110
30 01011

40 10011

80 11101
100 10101

Mais, Le résultat voulu est( dans le même fichier ou autre fichier) :

essai.txt:

10 11101
20 10110
30 01011
40 10011
80 11101
100 10101


S'il vous plait, j'ai besoin de vos aides.
Merci.

samedi 18 juillet 2009 à 20:01:14 | Re : aide traitement du fichier

MoH008

Salut,
- 1er traitement :
tu lis ton fichier essais.txt et dans un fichier temporaire tu ne réécris
que les lignes différentes de "00000". Ton fichier temporaire sera épuré des lignes "inutiles" et devrait être moins lourd déjà (espérons beaucoup moins lourd ).

- 2e traitement :
* tu as toujours l'utilisation du tableau qui reste la méthode la plus facile (je pense) même si elle peut s'avérer couteuse.
* ta solution théorique n'est pas mauvaise. pour le déplacement du descripteur du fichier par contre, tu devras être habile! ce lien contient des fonctions qui te seront utiles jète y un oeil

The possible meet the impossible to become the possimpible !!

dimanche 19 juillet 2009 à 00:33:13 | Re : aide traitement du fichier

boualiasma

Salut,

- J'ai résolu la partie de suppression des lignes. Mais, elle me reste la partie du suppression des colonnes.

donnée:
Chaque ligne du fichier texte contient deux champs: un objet présenté par un entier et un attribut présenté par une chaine de caractère.
Le fichier est bien formé puisque il est rempli de manière suivante:
fprintf("%10d%s",objet,attribut);

- Pour la suppression des colonnes, j'ai trouvé une difficulté à programmer mon idée suivante:
Je positionne sur le premier caractère de chaine de caractère (deuxième champ) du première ligne du fichier. Je teste caractère par caractère si égale à 0, par exemple si on trouve 0 à la position k du la chaine du caractère alors je dois positionner sur la même position k du la chaine du caractère de deuxième ligne alors je teste si ce caractère égale à 0 alors je dois positionner sur la même position k du la chaine du caractère de troisième ligne jusqu'à la fin du fichier. Dans le cas que si n'est pas égale à 0 alors j'arrête ce n'est pas la peine de continuer de voir les autres lignes restantes mais je dois retourner seulement à la position k +1 du chaine du première ligne pour tester si égale à 0 ou non . Si ce n'est pas égale à 0 alors je teste de même manière les caractères restantes jusqu'à la fin du ligne.

Autre optimisation, Si je ne trouve aucun 0 dans la chaine du caractère du première ligne alors c'est inutile de voir les autres lignes donc on s'arrête et on a aucun colonne à supprimer.
Cette idée permet de trouver les positions à supprimer. Mais, je ne sais pas comment je vais les supprimer.

Avez-vous une idée ?

S'il vous plait, j'ai besoin de vos aides pour programmer cette idée et pourquoi pas à améliorer.

Merci.



Cette discussion est classée dans : fichier, ligne, chaine, lignes, supprimer


Répondre à ce message

Sujets en rapport avec ce message

Urgent:supprimer une chaine d'un fichier [ par rene77 ] Bonjour à tous, J'ai besoin de supprimer des chaines de caractères d'un fichier txt.Je travaille sous Builder et j'y arrive pas !!!OUINNNN OUINNNS'il Exploitation de fichier en C ?!?!?! [ par GazGaz ] lu allalors voila le truc c'est que je voudrais aller chercher des infos dans un fichier qui est structuré de la meme maniere lignes apres lignes. Je [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 C : Supprimer une ligne d'un fichier [ par liloulola ] Bonjour, ca y est, j'arrive à stocker mes structures dans un fichier !En fait, je stocke plusieurs enregistrements du type %s%s%s/nJe souhaiterais pou lire un fichier txt ligne par ligne [ par lapinrose67 ] Bonsoir,Je developpe un logiciel en C sous Linux, voila mon problème:Je dois lire un fichier texte ligne par ligne et placer chacune d'entre ellesdans lire fichier ligne par ligne [ par mat74 ] salut a ts je voudrai savoir comment je pourrai lire un fichier lignes par lignes . par exemple une fonction qui me permerttrai de recuperer la ligne 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 Supprimer une ligne dans un fichier [ par PunkDude424 ] Je voudrais savoir comment faire pour supprimer une ligne dans un fichier texte ?? Est-ce qu'il existe une commande pour supprimer une ligne dans un f comment extraire un fichier csv ligne par ligne avec visualc++? [ par ngatcha ] bonjour,comment puis je extraire un fichier csv ligne par ligne avec visualc++? J'ai un eproposition de solution mais il y ' a des erreurs dans le co pb recuperer nombre de lignes [ par sergio18 ] Bonjourje fais une classe ou je recupere le contenu d'un fichier texte lignes par lignes. Pour cela,j'utilise la fonction fgets et vu qu'elle ne retou


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales