RV57000
Messages postés10Date d'inscriptionmardi 18 mai 2004StatutMembreDernière intervention27 janvier 2006 27 janv. 2006 à 16:54
Merci à toi f0xi pour les corrections, je note ce qui doit être fait et dès que je trouve le temps, je modifie tous sa.
Pour info le but de copier les MP3 c'est tout simplement pour que mon gamin puisse les mettre dans son lecteur sans avoir à chercher partout, d'où la copie de fichier et non pas la création de liens.
Encore merci
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 25 janv. 2006 à 12:20
ah aussi, plutot que de copier des mp3 lourd et donc long a copier.
tu peu tout simplement créer des liens (fichier .LNK) ce qui serat plus rapide.
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 25 janv. 2006 à 12:05
holala... bon par ou commencer.
- deja n'utilise pas les types Variant, mais plutot les type string, char, integer, single ect...
- ne fait pas de fonction quand tu n'as pas besoin de valeur de retour :
procedure Copy(params);
- ne cache pas les methodes existante par tes propre fonctions ou procedure (length).
- pour :
if memo1.Lines.Count = 0 then
memo1.Text:=FileListSelect.FileName
else
memo1.Text:=memo1.Text +chr(13)+chr(10) + FileListSelect.FileName;
var TauxProgress := integer;
begin
TauxProgress := round(100 / Memo1.Lines.Count);
end;
et dans la methode :
while FindFirst('*.mp3',faAnyFile,sr)=0 do begin
MediaPlayer1.Close;
DeleteFile(sr.Name);
end;
il faut faire :
MediaPlayer1.Close;
FindFirst('*.mp3',faAnyFile,sr);
while FindNext(sr)=0 do begin
DeleteFile(sr.Name);
end;
FindClose(sr);
pour recuperer le nom d'un chemin ou d'un fichier dans une chaine il suffit d'utiliser les fonctions ExtractFileName, ExtractFileExt et ExtractFilePath :
RV57000
Messages postés10Date d'inscriptionmardi 18 mai 2004StatutMembreDernière intervention27 janvier 2006 23 janv. 2006 à 21:43
Pour la procédure CopieFichier il faut quand même savoir que c'est un bout de code que j'ai trouvé sur le site et qui fonctionne pour mais besoins.
Pour les composants qui ne sont pas renommés, j'avous qu'étant novice et autodidacte en programmation , il m'arrive souvent d'oublier de nommé les composants mais je prend la remarque en compte et je vais essayer d'y faire attention pour les prochaines fois.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 23 janv. 2006 à 21:12
Dans la procédure CopieFichier tu as écrit :
buf : array [1..32768] of Pchar; {taille du buffer 32Ko par defaut mais vous pouver modifier pour voir le resultat}
Il doit y avoir une erreur. Soit tu as voulu déclarer un array of char, soit tu as déclaré un buffer de 131072 caractères !
Un PChar est un pointeur sur chaine et a une taille de 4 octets (adressage 32 bits).
Donc tu as déclaré un buffer de 32768 * 4 soit 131072 octets.
Autrement, on trouve encore trop de composants non renommés ralentissant la lecture du code source. On en est toujours à se demander ce que doit faire tel ou tel composant. Le code doit se lire sans avoir besoin de faire des allers retours entre l'éditeur de code et le concepteur de fiches de Delphi. Ca devient pénible car les membres ne cessent de faire cette remarque mais tout le monde s'en fout. Pas sérieux tout cela.
Je laisse le soin aux autres membres le loisir de détailler les nombreuses maladresses et lourdeurs dans le code.
27 janv. 2006 à 16:54
Pour info le but de copier les MP3 c'est tout simplement pour que mon gamin puisse les mettre dans son lecteur sans avoir à chercher partout, d'où la copie de fichier et non pas la création de liens.
Encore merci
25 janv. 2006 à 12:20
tu peu tout simplement créer des liens (fichier .LNK) ce qui serat plus rapide.
25 janv. 2006 à 12:05
- deja n'utilise pas les types Variant, mais plutot les type string, char, integer, single ect...
- ne fait pas de fonction quand tu n'as pas besoin de valeur de retour :
procedure Copy(params);
- ne cache pas les methodes existante par tes propre fonctions ou procedure (length).
- pour :
if memo1.Lines.Count = 0 then
memo1.Text:=FileListSelect.FileName
else
memo1.Text:=memo1.Text +chr(13)+chr(10) + FileListSelect.FileName;
tu peu simplement ecrire :
Memo1.Lines.Add(FileListSelect.FileName)
pour :
TauxProgress:= Memo1.lines.count;
TauxProgress:=100/TauxProgress;
ecrit plutot :
var TauxProgress := integer;
begin
TauxProgress := round(100 / Memo1.Lines.Count);
end;
et dans la methode :
while FindFirst('*.mp3',faAnyFile,sr)=0 do begin
MediaPlayer1.Close;
DeleteFile(sr.Name);
end;
il faut faire :
MediaPlayer1.Close;
FindFirst('*.mp3',faAnyFile,sr);
while FindNext(sr)=0 do begin
DeleteFile(sr.Name);
end;
FindClose(sr);
pour recuperer le nom d'un chemin ou d'un fichier dans une chaine il suffit d'utiliser les fonctions ExtractFileName, ExtractFileExt et ExtractFilePath :
CHM := 'c:\dossier\fichier.ext';
ExtractFileName(CHM) // = fichier.ext
ExtractFileExt(CHM) // = .ext
ExtractFilePath(CHM) // = c:\dossier\
23 janv. 2006 à 21:43
Pour les composants qui ne sont pas renommés, j'avous qu'étant novice et autodidacte en programmation , il m'arrive souvent d'oublier de nommé les composants mais je prend la remarque en compte et je vais essayer d'y faire attention pour les prochaines fois.
23 janv. 2006 à 21:12
buf : array [1..32768] of Pchar; {taille du buffer 32Ko par defaut mais vous pouver modifier pour voir le resultat}
Il doit y avoir une erreur. Soit tu as voulu déclarer un array of char, soit tu as déclaré un buffer de 131072 caractères !
Un PChar est un pointeur sur chaine et a une taille de 4 octets (adressage 32 bits).
Donc tu as déclaré un buffer de 32768 * 4 soit 131072 octets.
Autrement, on trouve encore trop de composants non renommés ralentissant la lecture du code source. On en est toujours à se demander ce que doit faire tel ou tel composant. Le code doit se lire sans avoir besoin de faire des allers retours entre l'éditeur de code et le concepteur de fiches de Delphi. Ca devient pénible car les membres ne cessent de faire cette remarque mais tout le monde s'en fout. Pas sérieux tout cela.
Je laisse le soin aux autres membres le loisir de détailler les nombreuses maladresses et lourdeurs dans le code.