IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Gestion de sons qui fait planter la gestion de fichier.


Sujet :

Delphi

  1. #1
    Membre régulier Avatar de poly128
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 73
    Points
    73
    Par défaut Gestion de sons qui fait planter la gestion de fichier.
    Là j'avoue ne plus rien comprendre. J'ai un programme qui joue des sons. A partir de la tout va très bien. Mais, ensuite je veut qu'il puisse enregistrer des chiffre dans un fichier. Donc je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      assignfile(fichier,'C:\fic.dat');
      if not fileexists('C:\fic.dat') then rewrite(fichier);
     
     
     
      if not SND_init(Handle) then application.Terminate;
      SND_add('snd1.wav');      //Ajouter un son
      SND_global_volume(100);  //Volume du son
      SND_global_freq(12000);  //Fréquence du son
    end;
     
     
    procedure TForm1.ecrireClick(Sender: TObject);
    begin
      chiffre:=strtoint(edit1.Text);
     
      reset(fichier);
      seek(fichier,strtoint(edit2.Text));
      write(fichier,chiffre);
      closefile(fichier);
    end;
    Je me dit que ca devrai marcher, mais je clique sur le boutton écrire et mon programme me dit: Acces au fichier refusé. Pour qu'il ne me dise pas ca, il faut enlever

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     if not SND_init(Handle) then application.Terminate;
      SND_add('snd1.wav');      //Ajouter un son
      SND_global_volume(100);  //Volume du son
      SND_global_freq(12000);  //Fréquence du son
    Ce qui a pour effet que je ne peut plus jouer le son.
    Pourquoi est qu'il plante ?

    Le source du programme fichier.zip un peut fait a la vat vite .

  2. #2
    Membre régulier Avatar de poly128
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 73
    Points
    73
    Par défaut
    AAAHHH ca fait des jours que je cherche et je ne sais toujours pas pourquoi ca plante.


    Personne ne sait pourquoi ?

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 732
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 732
    Points : 15 137
    Points
    15 137
    Par défaut
    Yop !

    Tes fonctions SND_xxx sont dans un "snd_main.pas" que tu n'as pas inclus au zip...

    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #4
    Membre régulier Avatar de poly128
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 73
    Points
    73
    Par défaut
    Oups désolé: snd_main.zip

  5. #5
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 732
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 732
    Points : 15 137
    Points
    15 137
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      assignfile(fichier,'C:\fic.dat');
      if not fileexists('C:\fic.dat') then rewrite(fichier);
     
      if not SND_init(Handle) then application.Terminate;
      SND_add('snd1.wav');      //Ajouter un son
      SND_global_volume(100);  //Volume du son
      SND_global_freq(12000);  //Fréquence du son
    end;
    En 1re approche comme ça vit' fait, moi je verrais bien un CloseFile(fichier) après le traitement (il est où, au fait ? Y a rien, là) avant d'attaquer SND_add qui fait aussi un AssignFile, des fois que ça fasse un pâté puisque si tu commentes ça passe.
    Enfin, tu vois l'idée...
    Mes 2 cts,
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #6
    Membre régulier Avatar de poly128
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 73
    Points
    73
    Par défaut
    Merci de bien vouloir m'aider.
    Oui c'est vrai, il manque un closefile(fichier);
    Mais, le mettre n'arrange pas le problème.

  7. #7
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 732
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 732
    Points : 15 137
    Points
    15 137
    Par défaut
    Oui c'est vrai, il manque un closefile(fichier);
    Manque pas que ça...
    Si tu regardais l'aide et les exemples de l'aide, et si tu étudiais le message d'erreur que tu as (et que j'ai eu aussi), la lumière devrait se faire, non ?

    Cherche un peu, tu y es presque.

    [edit :]
    Bon, allez, ch'suis bon prince :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      AssignFile(fichier, 'C:\fic.dat');
      if not FileExists('C:\fic.dat') then ReWrite(fichier);
      Reset(fichier);
      CloseFile(fichier);
     
      if not SND_init(Handle) then application.Terminate;
      SND_add('snd1.wav');
      SND_global_volume(100);
      SND_global_freq(12000);
      SND_play(0, 128);
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      chiffre := StrToInt(edit1.Text);
     
      AssignFile(fichier, 'C:\fic.dat');
      FileMode := 10;  {Accès fmShareExclusive au fichier }
      Reset(fichier);
      Seek(fichier, StrToInt(edit2.Text));
      Write(fichier, chiffre);
      CloseFile(fichier);
    end;
     
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      edit1.Text := '';
     
      AssignFile(fichier, 'C:\fic.dat');
      Reset(fichier);
      Seek(fichier, StrToInt(edit2.Text));
      Read(fichier, chiffre);
      CloseFile(fichier);
     
      edit1.Text := IntToStr(chiffre);
    end;
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  8. #8
    Membre régulier Avatar de poly128
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Points : 73
    Points
    73
    Par défaut
    Wow, merci ca marche . J'aurais jamais trouvé ca tout seul.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Access 2003] Macro qui fait planter Access
    Par nuriel2 dans le forum Access
    Réponses: 5
    Dernier message: 10/05/2006, 14h00
  2. Supprimer une crontab qui fait planter le server
    Par osmoze dans le forum Administration système
    Réponses: 5
    Dernier message: 31/03/2006, 15h42
  3. 56k qui fait planter le PC
    Par Spack dans le forum Périphériques
    Réponses: 4
    Dernier message: 03/10/2005, 19h35
  4. probleme de requette qui fait planter powergres
    Par fehmitn dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 15/09/2004, 18h48
  5. Réponses: 12
    Dernier message: 16/03/2004, 14h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo