Je suis d'accord pour le Fs, il ne sert à rien. Mais pour le chemin du fichier j'avais mis ça pour rendre le programme plus universel.. En quoi cela pose-t-il problème ?
Je suis d'accord pour le Fs, il ne sert à rien. Mais pour le chemin du fichier j'avais mis ça pour rendre le programme plus universel.. En quoi cela pose-t-il problème ?
La fonction CD ne sert à rien puisque tu peux passer le chemin complet (via FULLFILE) dans SAVE
Ingénieur indépendant en mécatronique - Conseil, conception et formation
- Conception mécanique (Autodesk Fusion 360)
- Impression 3D (Ultimaker)
- Développement informatique (Python, MATLAB, C)
- Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)
« J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)
Que fait CreationT ?
S'il doit exploiter le fichier perso.txt et que celui-ci n'est pas créé, restons pragmatiques : il suffit de guetter jusqu'à ce qu'il le soit...
Quand j'évoquais un test d'existence et/ou taille du fichier dans un Timer, c'était ça.
On peut utiliser en Delphi, sous Windows les FindFirstChangeNotification, comme ici : http://www.phidels.com/php/index.php...ip.php3&id=494 ou là : http://nono40.developpez.com/sources/source0017/
Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !
Dac, merci pour l'astuce, je ne pensais plus au "cd" !
Oui c'est ça, CreationT se sert de Perso.txt. Mais je ne vois pas trop comment utiliser ce Timer.. J'a essayé avec un FileExists comme condition d'arrêt placée dans le OnTimer mais ça ne marche pas. Aurais-tu un exemple?
Ton code MATLAB n'est pas très robuste
Comment sont gérés les erreurs MATLAB dans le TProcess ?
Si une erreur survient, comment Lazarus réagit-il ?
Peut être faut-il quelque chose comme ceci :
C'est l'idée de base, il faut l’améliorer.
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 function CreaFichTexte(nf) if exist(nf,'file')~=7 error('Fichier "%s" inexistant',nf); end try y = wavread(nf); Mono = (y(:,1)+y(:,2))/2; Mono = resample(Mono,2500,44100); save(fullfile('E:\INSA\2A\Info\Projet\Sons','Perso.txt'),'Mono','-ASCII') quit catch error('Erreur dans CreaFichTexte.m') end
Tout dépend de la gestion des erreurs d'un programme externe par Lazarus...
Ingénieur indépendant en mécatronique - Conseil, conception et formation
- Conception mécanique (Autodesk Fusion 360)
- Impression 3D (Ultimaker)
- Développement informatique (Python, MATLAB, C)
- Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)
« J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)
A la rigueur, pas besoin de Timer :
Pour faire plus joli, il n'est pas interdit de déporter le code d'attente dans une fonction WaitForFile(AFileNAme: string): Boolean qui retournera vrai si fichier arrivé et faux si interruption demandée (en cliquant sur un bouton qui mettra une variable globale ArretDemande à True)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 // ici le code d'appel du Processus while not FileExists('perso.txt') do begin Sleep(10); // pour ne pas manger tout le temps CPU Application.ProcessMessages; // au cas où action end; // ici, si besoin, surveillance sur le même principe que sa taille reste fixe CreationT;
Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager