Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1253 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  j'arrive pas à faire simple [finallement si]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

j'arrive pas à faire simple [finallement si]

n°169116
prettysmil​e
Sourire est un devoir social
Posté le 01-07-2002 à 17:32:36  profilanswer
 

g un magnifique tableau de char* qui contient des noms de fichiers que je dois parser. ces noms sont tous construit de la même manière:
(partievariable)_référence.extension
 
si 2 fichiers ont la même référence, il faut les concatener  dans un 3ème en lui donnant cette même référence (qui commence toujours par "per", donc facilement repèrable avec un strstr).
 
au final je veux avoir un tbleau qui contient le nom des fichiers concaténés et le nom des fichiers qui était seuls sur une reference
pour concatener :
 
for(i=0;i<taille_tableau;i++){
   recuperer partie commune avec strstr
    for (j=i+1;j<taille_tableau;j++)
        /*si jeme element a meme partie fixe que ieme, concatener dans nouveau fichier*/
         
en fait, je n'arrive pas à faire simple pour construire le tableau resultat


Message édité par prettysmile le 02-07-2002 à 11:03:29
mood
Publicité
Posté le 01-07-2002 à 17:32:36  profilanswer
 

n°169125
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 01-07-2002 à 17:43:14  profilanswer
 

je comprends ce que tu veux, mais c'est le 3eme fichier que j'ai du mal à visualiser.
 
peux tu donner un exemple de 2 nom de fichiers qui doivent être concaténés, et un exemple du 3eme nom de fichier résultant ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°169152
try58
Posté le 01-07-2002 à 18:09:29  profilanswer
 

prettysmile a écrit a écrit :

g un magnifique tableau de char* qui contient des noms de fichiers que je dois parser. ces noms sont tous construit de la même manière:
(partievariable)_référence.extension
 
si 2 fichiers ont la même référence, il faut les concatener  dans un 3ème en lui donnant cette même référence (qui commence toujours par "per", donc facilement repèrable avec un strstr).
 
au final je veux avoir un tbleau qui contient le nom des fichiers concaténés et le nom des fichiers qui était seuls sur une reference
pour concatener :
 
for(i=0;i<taille_tableau;i++){
   recuperer partie commune avec strstr
    for (j=i+1;j<taille_tableau;j++)
        /*si jeme element a meme partie fixe que ieme, concatener dans nouveau fichier*/
         
en fait, je n'arrive pas à faire simple pour construire le tableau resultat




Tu ne peux pas utiliser strstr car sinon que se passerait il si dans la partie variable il y a egalement "per" ? Je te conseille plutot de reperer la reference en partant de la fin!


---------------
LOVE & PEACE !!! [:kirvel]
n°169158
prettysmil​e
Sourire est un devoir social
Posté le 01-07-2002 à 18:20:25  profilanswer
 

Harkonnen a écrit a écrit :

je comprends ce que tu veux, mais c'est le 3eme fichier que j'ai du mal à visualiser.
 
peux tu donner un exemple de 2 nom de fichiers qui doivent être concaténés, et un exemple du 3eme nom de fichier résultant ?




en gros :
pretty1_per305_0 et pretty2_per305_0 donne per305_0 (je vais pas me pourrir la vie a construire des jolis noms de fichiers), normalement il ne peut pas y avoir per ailleurs que dans la partie fixe ou il est toujours précédé de _ donc pas de pb pour concatener.
le problème c'est de conserver le nom de tous les fichiers+les concaténés-le fichiers utilisés pour concaténés
 :pt1cable:  
 
 

n°169401
prettysmil​e
Sourire est un devoir social
Posté le 02-07-2002 à 08:28:46  profilanswer
 

petit up du matin, si qqu'un a une id avant que je ne le fasse version pur bourrin

n°169407
darkoli
Le Petit Dinosaure Bleu
Posté le 02-07-2002 à 08:46:18  profilanswer
 

prettysmile a écrit a écrit :

petit up du matin, si qqu'un a une id avant que je ne le fasse version pur bourrin




 
il te faut :
 - la liste des noms de fichiers d'origine et pour chaque fichier, un numero de fichier destination.
 - la liste des noms de fichiers destination que tu construits au fur et a mesure.
 
ex :  

Code :
  1. nom_fichier1 = {"tfsdfhjksl_toto.ref", "rhbjfkjsdfnlk_toto.txt", "hjdfshklsdgd_toti.jpg"};
  2. numero_fichier1 = {-1, -1, -1};
  3. nb_fichier1=3;
  4. nom_fichier2 = {"","",""};
  5. nb_fichier2 = 0;
  6. pour chaque fichier de la liste 1 => i
  7.     extraire_reference(nomfichier1[i]);
  8.     rechercher_la_reference_dans_la_liste_2;
  9.     si elle existe, mettre son numero (indice) dans numero_fichier1[i];
  10.     sinon l'ajouter à la position nb_fichier3;
  11.     nb_fichier3++;
  12. a la fin tu dois avoir ça :
  13. numero_fichier1 = {0, 0, 1};
  14. nom_fichier2 = {"toto.ref","toti.jpg",""};
  15. nb_fichier2 = 2;


 
Voila, c'est fait rapidement mais ça doit marcher !!!
Euh comment tu gères : references identiques mais extensions differentss ?


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
n°169410
prettysmil​e
Sourire est un devoir social
Posté le 02-07-2002 à 09:00:19  profilanswer
 

DarkOli a écrit a écrit :

 
Voila, c'est fait rapidement mais ça doit marcher !!!
Euh comment tu gères : references identiques mais extensions differentss ?




1-merci je regarde ce que ça donne
2-normalement il ne doit pas y avoir d'extension différente (je ne suis pas non plus la fée clochette!!)

n°169418
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 02-07-2002 à 09:17:37  profilanswer
 

moi j'avais une autre idée : faire une 1ere passe, en stockant d'abord tous les fichiers de même référence dans une hashtable et les autres dans un tableau simple.
puis faire une 2eme passe, en parcourant la hashtable, et en concaténant les fichiers de même référence (qui normalement sont sur 2 lignes consécutives de la hashtable)
 
tu obtiens au final un tableau de fichiers concaténés obtenu à partir de la hashtable, et un tableau de fichiers isolés


---------------
J'ai un string dans l'array (Paris Hilton)
n°169445
prettysmil​e
Sourire est un devoir social
Posté le 02-07-2002 à 09:40:41  profilanswer
 

->avec qsort trier mon tableau par reference (je dois pouvoir gruger une onction qui renvoie 0 si égalité de réf et toujours -1 sinon)
->concatener toutes les memes reference dans un fichier (au pire un fichier concatené en lui meme)
->parser les fichiers concaténés (si je leur donne un nom suffisamment con, y'aura pas de pb pour les retrouver)
->détruire les fichiers concaténés
ça m'a l'air faisable et n'utilise pas trop de tableaux  [:shiryu]  (je m'y lance , merci pour votre aide)

n°169553
prettysmil​e
Sourire est un devoir social
Posté le 02-07-2002 à 11:03:00  profilanswer
 

donc ca marche, pas avec qsort (pas de longueur fixe pour les noms de fichiers a passer en 3eme argument,  il n'appréciait pas vraiement) mais avec un bête algo de quick sort écrit a mano

mood
Publicité
Posté le 02-07-2002 à 11:03:00  profilanswer
 

n°169570
darkoli
Le Petit Dinosaure Bleu
Posté le 02-07-2002 à 11:14:31  profilanswer
 

prettysmile a écrit a écrit :

donc ca marche, pas avec qsort (pas de longueur fixe pour les noms de fichiers a passer en 3eme argument,  il n'appréciait pas vraiement) mais avec un bête algo de quick sort écrit a mano
 




 
Tien moi aussi je me retrouve a faire un truc comme toi.
J'ai une liste de fichier du genre tototo_99999.log et je dois recuperer celui qui a le plus grand numero pour en creer un avec un numero plus grand !!!


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
n°169577
prettysmil​e
Sourire est un devoir social
Posté le 02-07-2002 à 11:18:44  profilanswer
 

DarkOli a écrit a écrit :

 
 
Tien moi aussi je me retrouve a faire un truc comme toi.
J'ai une liste de fichier du genre tototo_99999.log et je dois recuperer celui qui a le plus grand numero pour en creer un avec un numero plus grand !!!




ben bon courage  :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  j'arrive pas à faire simple [finallement si]

 

Sujets relatifs
[vb] J'arrive pas a changer l'icone de mon prog !!mysql : type de données (question simple)
[Php & Javascript] J'arrive pas a faire ce que je veux[Banniere de texte défilante] <---- Question simple inside
Tomcat 4, j'arrive pas à le faire marcher ![SQL/PHP] GRAS / ITALIQUE par simple click
Mouse Gesture for Mozilla [simple normalement][Access - Graphik et Requete] J'arrive pas a trouver un titre valable
[need help] - j'arrive pas à lire le port série[openGL 2D] afficher un simple bitmap sur une surface...
Plus de sujets relatifs à : j'arrive pas à faire simple [finallement si]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR