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 : Accés au Fichier [ Système / Fichier & Disque ] (Lamarmottedu73)

mercredi 28 novembre 2007 à 15:13:56 | Accés au Fichier

Lamarmottedu73

Salut tlm, j'ai un petit problème de fichier j'ai une idée pour le résoudre mais je ne trouve pas comment le faire. Voici le problème :
Un programme génère des fichiers et les copies dans un dossier.
Le 2eme programme via un thread lit ces fichiers au fur et à mesure qu'ils arrivent, puis les déplaces. Seul problème c'est que défoit le 2eme programme est trop rapide par rapport au programme 1 et zou "Violation d'accés" car il accède encore au fichier.

Ma solution serait de tester si le fichier est fermé et que je peux y accéder sans problème, mais je ne trouve pas comment le faire.

Merci bien pour votre aide.

mercredi 28 novembre 2007 à 16:27:48 | Re : Accés au Fichier

Lamarmottedu73

Réponse acceptée !

Re finalement c'est good méthode un peu bourrin mais ça marche et ça donne cela

while (1=1) do
begin
   Handle := FileOpen(Fichier_a_ouvrir, $0040);      //On essaye d'ouvrir le fichier en mode exclusif
   if Handle <> -1 then                                             //Si le résultat est différent de -1 cela veux dire que cela à marché
   begin
      FileClose(Handle);                                            //On ferme le fichier
      //*** Faire ce qu'il y a à faire ***//
   end;
end;

Voilà bonne soirée !!!!


mercredi 28 novembre 2007 à 20:39:23 | Re : Accés au Fichier

Guillemouze

Réponse acceptée !
petite question, pourquoi while (1=1) do et pas while true do ?
autre chose, il serait peut etre judicieux de faire un sleep dans ta boucle pour ne pas surcharger le systeme de fichier, et peut etre aussi de mettre un nombre de boucles max, au cas ou ton fichier reste ouvert par l'autre programme


jeudi 29 novembre 2007 à 10:46:51 | Re : Accés au Fichier

Lamarmottedu73

Salut en fait c'est juste un code exemple c'est pas le final !!! sinon je risque d'assoir la machine !!! Mais tes remarque sont judicieuse ... Pour le while (1=1) do en fait c'est une conneri qu'on avait fait en BTS IRIS avec des potes.
A bientôt

jeudi 29 novembre 2007 à 11:13:13 | Re : Accés au Fichier

Loda

Membre Club
salut,

ce genre de system (utiliser une fichier comme moyen de communication entre deux programme) est pas terrible, lent (accès disque) et souvent problematique (concurrence).

Il existe des moyen de partager des info entre processus (par ex: filemap). Perso, je trouve que UDP peut être un très bon moyen (simple, assez rapide). surtout pour un serveur (après tu peux bouger un des processus sur une autre machine en 2min). Evidemment cela dépend de ce que tu veux faire et de ton environnement.

réflèchit, et demandes toi si tu ne peux pas remplacer ce système par qqch de plus propre.

bon code,

Loda

Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.



Cette discussion est classé dans : fichier, problème, programme, trouve, accés


Répondre à ce message

Sujets en rapport avec ce message

probléme d'accés fichier [ par GawiNDX ] Bonjour !J'ai un petit souci avec un soft que je suis en train de développer, je m'explique :j'execute un programme externe via un createprocess,ce pr Fin d'écriture dans un fichier ? [ par azera ] Voilà j'ai pas mal recherché mais je n'ai pas trouvé, alors je me suis dit que j'allais vous demander de l'aide.Je veux réaliser un programme de surve problème d'execution ds un programme de BDD [ par Rankin ] Salut, alors voilà j'ai posté il y a quelques jours pour faire part d'un problème d'éxecution de l'appli que je viens de finir, à savoir qu'elle ne se Problème de BDE [ par atrebate62 ] Bonjour,J'ai un programme développé en Delphi3 fonctionnant avec le BDE, et j'ai fait un programme d'installation avec InstallShield.Sous W95/98 l'ins Pack/Archive de fichier [ par Benitora ] Bonjour,voilà, je cherche a utiliser dans mon programme des fichiers "pack", je m'explique :j'ai plusieurs dossiers et sous-dossiers contenant des fic Big Problème! [ par Faust ] Voila en gros le topoj'ai un fichier: toto.avi, et Animate1tout les deux sont liés.Comment je peux faire pour que mon prog intègre directement mon fic Erreurs de page pendant l'exécution du programme [ par Emandhal ] Bonjour!Je suis en train de faire un programme (c'est original, je sais ), il marche parfaitement (c'est génial pour moi ). Mais il y a un p problème avec l'objet XMLDoc [ par csweety13 ] Bonjour,j'ai un soucis avec l'objet de Delphi le XMLDoc.j'ai inscrit la ligne suivante : XMLFic := LoadXMLDocument(Nom_Fic);qui me charge dans mon o Cacher un mot de passe... [ par TiDaN326 ] Bonjour à tous...J'ai un léger problème de sécurité... J'ai un programme qui accède à une base de donnée... Évidemment, le mot de passe d'accès à cett Rechercher dans le HDD [ par norton ] Hello, j'essaye de faire un petit anti-virus mais j'aimerai que mon programme recherche un fichier dans tous le hdd.par exemple le fichier hallo.exe e


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,437 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é.