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

  FORUM HardWare.fr
  Programmation
  C

  Gestion d'un stock de presse...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Gestion d'un stock de presse...

n°761258
yaumeguy
Posté le 12-06-2004 à 14:06:21  profilanswer
 

Bonjour !
 
 
Les vacances commence à peine que mon père a besoin de moi pour un petit programme...argh
 
Donc pour faire bref je vais d'abord poser le décor, ce sera plus simple pour bien comprendre mes questions par la suite :
 
- Mon père a besoin d'un système qui lui permet de gérer sa presse (il a une maison de presse)
- Le but est d'avoir l'image de couverture du magazine sur un écran après avoir tapé la codification correspondant à celui-ci
- On peut trouver sur un site internet toutes les images de couverture de ces magazines, mise à jour à chaque nouvelle parution
- Le but est d'avoir les vieilles parutions en mémoire sur l'ordinateur (c'est pour gérer le vieux stock), celles-ci étant supprimées du site internet dès la parution d'un nouveau numéro
- Les images sur le site internet ont pour nom leur codification (Donc pour les retrouver sur l'ordi, on fait recherche, on tape la codif et c ok)
- Le but est donc de telecharger quotidiennement les nouvelles images à partir du site internet, pour ce job un aspirateur de site programmé automatiquement chaque nuit fait parfaitement l'affaire
- Le problème, c'est qu'en mode "update" l'aspirateur va supprimer les anciennes references déjà présentes sur l'ordi, ce qu'on ne veut pas
 
 
Voilà ce que je pense faire pour résoudre le problème :
 
- Je stock toutes les images dans un fichier "toto", ainsi que dans un fichier "temp"
- Chaque nuit l'aspirateur telecharge à nouveau toutes les images dans le fichier"temp"
- L'aspirateur ne remplaçant sur l'ordinateur que les fichiers qui ont été modifiés sur le site internet, il y aura un certain nombre de fichiers dans le repertoire "temp" qui auront pour date de création celle de la journée en cours
- Un programme se charge alors de récupérer ces fichiers la (par rapport à la date), et comme on veut les avoir dans le repertoire image alors qu'il portent le même nom que leur version précédente, il faut donc les renommer tout en gardant leur nom de départ (la codification), je pense donc rajouter à la fin du nom de l'image 2 chiffres aléatoires afin de les differencier tout en gardant l'essentiel, la codification...
Par exemple, le nom de l'image avant la modif sera 159753.jpeg, après modif ce sera 15975345.jpeg, et en faisant la recherche sous windows avec la codif 159753 on tombera bien sur les 2 images que l'on souhaite. De plus, elle pourront ainsi cohabiter dans le même répertoire "image"...
 
Donc pour conclure est-ce que ce que je souhaite faire est programmable en C ? C'est à dire récupérer la date d'un fichier, faire la comparaison avec l'horloge windows, si la date est identique renommer ce fichier avec 2 chiffres aléatoires au bout, le recopier dans le fichier "image", puis enfin supprimer ce fichier du repertoire "temp"...
 
Ce qui me dérange le plus là dedans c'est récupérer l'heure système ds le programme...
 
Voilà voilà, j'ai essayé d'être bref, je crois que c'est complètement loupé........
 
Si vous lisez ces lignes, merci d'avoir lu ce message en entier :-))
 
 
Guillaume

mood
Publicité
Posté le 12-06-2004 à 14:06:21  profilanswer
 

n°761296
Caedes
Posté le 12-06-2004 à 16:47:07  profilanswer
 

Oui tu peux parfaitement faire cela en C, même si un petit langage sans prétention comme le VB convient parfaitement pour ce genre de programmes.
 
Autrement si tu veux gérer l'aspiration toi même, tu peux aussi regarder du côté de la libcurl.
(edit : et bravo, pour une fois qu'on voit un message qui n'est pas bourré de fautes d'orthographe, ça fait du bien ! ;)


Message édité par Caedes le 12-06-2004 à 16:48:19
n°761332
yaumeguy
Posté le 12-06-2004 à 17:55:57  profilanswer
 

Ok, et bien en voilà uen bonne nouvelle :-)
 
Pour télécharger les données je vais laisser ce travail à l'aspirateur, vu qu'il le fait bien, ça fera autant de temps de gagné...
 
Je code en C depuis 5 mois, donc je ne connais pas des masses de choses, mais je sais utiliser les nombres aléatoires, je ne connais pas les commandes de copie/suppression/renommage de fichier mais je saurai les faire je pense sans trop de problèmes une fois que je connaitrai la synthaxe... D'ailleurs, ou peut-on trouver la synthaxe de telles commandes sur le net ?
 
Par contre pour récupérer l'horloge système et les date des fichiers, je n'ai absolument aucune idée de comment le faire, et je n'ai rien trouvé sur ce sujet avec l'ami google là dessus (tout ce que j'ai trouvé se rapporte au php...)
 
Si vous avez des liens à me donner sur le sujet, ou si vous connaissez les synthaxes de ces commandes, je suis preneur !
 
Merci !
 
Guillaume

n°761346
yaumeguy
Posté le 12-06-2004 à 18:22:38  profilanswer
 

Ah enfin g trouvé un truc bien interessant !!!
 
http://msdn.microsoft.com/library/ [...] letime.asp

n°761370
yaumeguy
Posté le 12-06-2004 à 19:10:35  profilanswer
 

En fait il y a beaucoup plus simple que l'utilisation de la date des fichiers  :sarcastic:  
 
Je n'ai qu'a redownloader chaque nuit l'integralité des fichiers (et non pas faire une update), et comparer la taille de tous les fichiers avec les versions de la nuit precedente...!!!
Si la taille des fichiers est differente, ça je remplace l'ancien fichier par le nouveau, et c'est réglé :-)
 
Bon maintenant il me reste à trouver comment récupérer la taille d'un fichier pour fourguer ça dans un double...

n°761382
Carbon_14
Posté le 12-06-2004 à 19:51:39  profilanswer
 

S'il crée un répertoire qui a la date comme nom, ça sépare les fichiers sans risque de superposition ?

n°761839
yaumeguy
Posté le 13-06-2004 à 16:15:36  profilanswer
 

Le but est d'avoir tous les fichiers dans un même répertoire, donc je ne peux procéder comme ça...
 
Bon je suis en train de devenir fou, j'ai l'impression de n'avoir rien vu en C quand je vois tout ce que je dois utiliser et que je ne connais pas  :ouch: J'ai trouvé un bout de code que j'essaye d'adapter à mes besoins mais c pas gagné, il y a plein de choses que je en maîtrise pas !!!
 
Voici le code :
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. int main(int argc, char *argv[])
  5. {
  6.   WIN32_FIND_DATA FileData;
  7. HANDLE hSearch;
  8.              
  9. DWORD dwAttrs;
  10. char szDirPath[] = "c:\\TEXTRO\\";
  11. char szNewPath[MAX_PATH];
  12. char szHome[MAX_PATH];
  13. DWORD File_Size;
  14. BOOL fFinished = FALSE;
  15. // Create a new directory.  
  16. if (!CreateDirectory(szDirPath, NULL))
  17. {
  18.     printf("Couldn't create new directory." );
  19.     return;
  20. }
  21. // Start searching for .TXT files in the current directory.  
  22. hSearch = FindFirstFile("*.txt", &FileData);
  23. if (hSearch == INVALID_HANDLE_VALUE)
  24. {
  25.     printf("No .TXT files found." );
  26.     return;
  27. }
  28. // Copy each .TXT file to the new directory  
  29. // and change it to read only, if not already.  
  30. while (!fFinished)
  31. {
  32.      lstrcpy(szNewPath, szDirPath);
  33.     lstrcat(szNewPath, FileData.cFileName);
  34.     CopyFile(FileData.cFileName, szNewPath, FALSE);
  35.     File_Size = GetFileSize (FileData.cFileName, NULL);
  36.     printf("%x\n",File_Size);
  37.     if (!FindNextFile(hSearch, &FileData))
  38.     {
  39.         if (GetLastError() == ERROR_NO_MORE_FILES)
  40.         {
  41.            
  42.             fFinished = TRUE;
  43.         }
  44.         else
  45.         {
  46.             printf("Couldn't find next file." );
  47.             return;
  48.         }
  49.     }
  50. }
  51. // Close the search handle.  
  52. FindClose(hSearch);
  53.   system("PAUSE" );
  54.   return 0;
  55. }


 
J'ai rajouté ceci dans le code pour avoir la taille du fichier en cours de traitement, mais étant donné que je ne sais pas ce qu'est un DWORD, je ne sais même pas comment afficher le résultat pour vérifier si la focntion marche :
 

Code :
  1. File_Size = GetFileSize (FileData.cFileName, NULL);
  2. printf("%x\n",File_Size);


 
Donc pour résumer, au secours  :pt1cable:  
 
Guillaume

n°762416
bombyce
Posté le 14-06-2004 à 09:23:40  profilanswer
 

un DWORD c'est un type (equivalent a double ), non?
 
sinon essaye avec un %d (puisque c'est une taille).
               ou un %s (si c'est une chaine de caracteres ).
 
J'espere ne pas t'avoir dis de conneries.
 
A+
               ou un %c (si c'est un caracteres).

n°762441
cricri_
Posté le 14-06-2004 à 09:55:40  profilanswer
 

DWORD pour double word, un word c'est un unsigned short


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

  Gestion d'un stock de presse...

 

Sujets relatifs
gestion de la conccurrence[cherche Script] Gestion d'une bdd de DVD
Gestion de Fichiers. Quelle solution adopter ?Application de gestion de projet & de versionning
[WIP] PHPMark : gestion de note, moyenne ... pour étudiant[BO Supervisor] Gestion des users
Socket en C++ avec gestion de stream sous Linux[ASP] Problème de gestion de fenêtres
gestion de clavier[C++] Problème de gestion de SAFERRAY transmis à une f° d'une dll
Plus de sujets relatifs à : Gestion d'un stock de presse...


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