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

Messages postés
127
Date d'inscription
mardi 23 août 2005
Dernière intervention
9 mai 2011
- 17 sept. 2005 à 17:43 - Dernière réponse :
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Dernière intervention
13 avril 2007
- 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
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Dernière intervention
28 août 2007
- 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é 90 internautes ce mois-ci

Commenter la réponse de J_G
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Dernière intervention
13 avril 2007
- 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
Messages postés
127
Date d'inscription
mardi 23 août 2005
Dernière intervention
9 mai 2011
- 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
Messages postés
127
Date d'inscription
mardi 23 août 2005
Dernière intervention
9 mai 2011
- 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
Messages postés
127
Date d'inscription
mardi 23 août 2005
Dernière intervention
9 mai 2011
- 18 sept. 2005 à 13:28
0
Merci
ok merci bien
Commenter la réponse de dark_naruto25
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Dernière intervention
13 avril 2007
- 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.