Bonjour,
Je ne voulais pas vous ennuyer avec mes problèmes métaphysiques mais quand je tombe sur ce que je vais vous conter ci-après, 1), je tombe par terre et 2), je me sens obligé de partager.
Donc, pour raccourcir des lignes de code un peu longues et pas très lisibles ainsi que pour économiser des calculs, je décide de remplacer length(TestDir)+1 par lenTestDir avec lenTestDir := length(TestDir)+1;, et TestDir n'est qu'une bête string utilisée comme constante.
Je pars de ça :
et ça donne ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for i := 0 to mmoTemp.Lines.Count-1 do mmoFoldersForFonts.Lines.Add(copy(mmoTemp.Lines[i],length(TestDir)+1,length(mmoTemp.Lines[i])-length(TestDir)+1));
Et que croyez-vous qu'il arrivât ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for i := 0 to mmoTemp.Lines.Count-1 do mmoFoldersForFonts.Lines.Add(copy(mmoTemp.Lines[i],lenTestDir,length(mmoTemp.Lines[i])-lenTestDir));
J'ai un dossier nommé "vide" : la première ligne de code affiche "vide", la seconde "vid" et pareil pour tous les autres dossiers, il manque la dernière lettre !
Je mets ci-après juste la partie incriminée des bouts de code en mode comparaison graphique :
Alors, elle est où, la blague ? (pourquoi la vie est-elle si compliquée, et l'informatique encore plus ?)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ...copy( mmoTemp.Lines[i], length(TestDir)+1, length(mmoTemp.Lines[i])-length(TestDir)+1 ); // ok ...copy( mmoTemp.Lines[i], lenTestDir , length(mmoTemp.Lines[i])-lenTestDir ); // kc //Et pour que je retrouve des résultats corrects, il me faut bidouiller, avec ce +1 rajouté dessous ...copy( mmoTemp.Lines[i], lenTestDir , length(mmoTemp.Lines[i])-lenTestDir+1) ); // ok
Au plaisir de vous lire,
Partager