écrire plus d'octet qu'une string.... [Résolu]

dark_naruto25 127 Messages postés mardi 23 août 2005Date d'inscription 9 mai 2011 Dernière intervention - 17 sept. 2005 à 17:43 - Dernière réponse : cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention
- 18 sept. 2005 à 19:11
Bonjour, le titre n'est pas très clair donc je vais vous expliquer en détail :

Je transcrit un code C++ en PHP (du moins un code ayant le même but). Seulement il doit me manquer une fonction.

En C++, j'écris ma string dans un fichier comme ci :

fwrite(File,maString,1,sizeof(maString));

avec sizeof(maString) en paramètre j'écris autant d'octet que ma
variable en prend même si la chaine à l'intérieur n'occupe pas tout.

Et donc je cherche une fonction qui pourrait faire ça ou une astuce ?!
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
J_G 1406 Messages postés mercredi 17 août 2005Date d'inscription 28 août 2007 Dernière intervention - 18 sept. 2005 à 11:58
3
Merci
Salut,



pour combler une chaine, il existe cette superbe fonction :

str_pad




(PHP 4 >= 4.0.1, PHP 5)

str_pad -- Complète une chaîne jusqu'à une
taille donnée




Description
string str_pad ( string input, int
pad_length [, string pad_string [, int pad_type]] )

Merci J_G 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 78 internautes ce mois-ci

Commenter la réponse de J_G
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 17 sept. 2005 à 18:32
0
Merci
Salut,



bah dans un fichier en php si tu veux faire ça faut mettre des espaces par exemple :-)



bref tu mesures la longueur de ta chaîne :



$taille=strlen($chaine);

$chaine_comble='';

if($taille<50) //mettons que tu veuilles 50 caractères au minimum

{

$combler=50-$taille; //le nombre de caractères à rajouter pour atteindre 50

$i=1;

while($i<=$combler)

{

$chaine_comble.=' ';

}

}



fputs($fp,$chaine.$chaine_comble);




je pense que ça devrait aller :-)
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro
dark_naruto25 127 Messages postés mardi 23 août 2005Date d'inscription 9 mai 2011 Dernière intervention - 17 sept. 2005 à 18:43
0
Merci
Bon pour le moment mon astuce est une fonction qui rempli la chaine
avec des # à la fin pour que la chaine fasse ces 32 octets, et une
autre fonction qui transforme ces ### en espaces que je suppr avec
trim().

Donc si quelqu'un à une autre proposition/amélioration à me proposer... je suis partant.

Merci
Commenter la réponse de dark_naruto25
dark_naruto25 127 Messages postés mardi 23 août 2005Date d'inscription 9 mai 2011 Dernière intervention - 17 sept. 2005 à 18:47
0
Merci
désolé Anthomicro, je n'avais pas vu ta réponse... il semblerais qu'on ai eu la même idée !

merci
Commenter la réponse de dark_naruto25
dark_naruto25 127 Messages postés mardi 23 août 2005Date d'inscription 9 mai 2011 Dernière intervention - 18 sept. 2005 à 13:28
0
Merci
ok merci bien
Commenter la réponse de dark_naruto25
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 18 sept. 2005 à 19:11
0
Merci
ah nickel je connaissais pas ;-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.