longueur de chaine de caractères

Eléphanteau du PHP | 14 Messages

13 avr. 2007, 15:12

Bonjour, c'est encore moi mais cette fois mon problème est dans le sens inverse il se trouve que je dois ecrire un fichier selon une structure bien spécifique et j'ai un probleme avec mes chaines de caractères qui ne sont pas forcement de la longueur exacte de ce que j'ai besoin!
est- ce qu'il existerait par hazard une fonction permattant de rajouter des blancs devant ou derriere une chaine de caractère afin que celle-ci atteigne la longueur voulue ?
Merci encore a vous :D

ViPHP
ViPHP | 3607 Messages

13 avr. 2007, 15:15

je pense que tu parts du mauvais côté...
Pour écrire un fichier de données, il vaut mieux utiliser des séparateurs (tabulation ou une suite de caractères précis), plutôt que de limiter les données en nombre de caractères...
Mais je pense que ça irait mieux si tu nous disais enfin à quoi ressemble ton fichier, et ce que tu veux mettre dedans :roll:

Eléphant du PHP | 120 Messages

13 avr. 2007, 15:17

expressions régulières et strlen()

Eléphanteau du PHP | 14 Messages

13 avr. 2007, 15:38

heu en fait non j peu pas choisir parce que je doit le donner à un format bien précis car derriere moi il y a un autre système qui recupere ce fichier et qui a besoin que les zones soient bien délimitées. c'est pourquoi je ne peut pas utilisé les séparateurs!
c'est un fichier contenant principalement des références par exemple une référence qui doit se contenir sur 25 caractères n'en fait que 15 ou 12 ou 14 cela depend et il me faudrait donc une facon de mettre cette référence sur 25 automatiquement...

ViPHP
ViPHP | 3607 Messages

13 avr. 2007, 15:47

alors regarde du côté de sprintf():
$chaineformate=sprintf('%'.$longueurcodemax.'s',$codeproduit);

Eléphanteau du PHP | 14 Messages

13 avr. 2007, 16:44

merci ca a l'ai d'être plutot interressant je vais voir tout ca en attendant j me suis trouvé une ptite astuce :)

voila pour une chaine qui doit faire 6caracteres par exemple je lui met le nombre de 0 minimum qu'il faudra a sa suite et je complete avec des 0 devant pour avoir une chaine de la longueur minimum si ma variable est vide et ensuite je coupe la partie de la chaine qui me plait soit les 6 dernier caractères :D
Bon j'avoue c'est pa ce qu'il y a de plus propre mais ca feras l'affaire le temp j analyse la solution qui seras plus interressante :)

$machaine de 6caracteres=substr(('000'.$machainequinefesait que0à3caractères.'000'), -6, 6);

Vive Joe la Bidouille :)

Mammouth du PHP | 505 Messages

13 avr. 2007, 20:12

comme précisé plus haut, tu as sprintf() ou plus simple tu as str_pad().

Mais ta solutions, c'est un peu l'usine...

Eléphanteau du PHP | 14 Messages

16 avr. 2007, 10:20

haaaaa str_pad ca c'est parfait pour moi :) tout ce qu'il me fallait :)
Merci a toi titerm :)