Aller au contenu

Piti probleme de syntaxe...


furious Gontran

Sujets conseillés

Alors voila...

code:

$total = file ($fichier);

for ($p=0; $p=$i; $p++)

   {

                $ligne='ligne'.$p;

if (isSet ($_POST[$ligne]))

  {

  $f=$p-1;

  echo "<strong>ligne: ".$p."</strong><br>";

  echo $total[$f];

  }

    }

Bon, le but de tout ca maintenant...

je cherche a effacer les lignes d'un fichier texte (comment ca?? ca vous rapelle kekchose ???).

Le principal probleme viens du fait que je ne sais jamais combien de ligne il y a dans le fichier. Je comptais utiliser une boucle mais celle ci est infini et stoppée par le code avec une jolie erreur.

$i est un compteur qui me sers a determiner le nombre total de ligne.

Je pense que cela viens de ma syntaxe qui est assez instinctive pour le coup.

$total est un tableau, donc pour afficher la ligne 1, je dois afficher $total[0], d'ou le $f=$p-1;

Mais le principal soucis me viens du $_post[$ligne] qui m'a l'air plus qu'hasardeux...

En gros, je sais quoi faire (enfin, je crois) mais pas comment l'ecrire...

(pis apres mon sujet sur le visionnage des sources html j'ais un peu peur de me faire jartter avec mes questions de neo-newbie)

Modifié par furious Gontran
Lien vers le commentaire
Partager sur d’autres sites

Si j'ai bien compris ce que tu cherches à faire, tu peux t'inspirer de ce code:

<?php
$total = file($fichier); // on lit le fichier dans le tableau $total
$contenu_final = ""; // initialisation
// suppression des lignes choisies dans le formulaire
for ($i=0; $i<count($total); $i++) { // count donne le nombre de lignes du tableau
 $ligne = "ligne".$i;
 if (isset($_POST[$ligne])) { // si la ligne a été sélectionnée dans le formulaire
   $total[$i] = ""; // on la supprime
 }
 $contenu_final .= $total[$i]; // concaténation des lignes
}
// réécriture dans le fichier
$fp = fopen("$fichier","w");
fputs($fp,$contenu_final);
fclose($fp);
?>

Lien vers le commentaire
Partager sur d’autres sites

Salut Furious Gontran,

Sur quel critère te bases-tu pour supprimer une ligne ? Une chaîne de caractère ? Un numéro de ligne ? autre ?

Et combien de ligne(s) supprimes-tu à chaque fois ? Une seule ou plusieurs ? Nombre connu à l'avance ou non ?

Quand tu auras répondu à cela, on te fera le code qui va bien ;)

Dan

Lien vers le commentaire
Partager sur d’autres sites

Lorsque j'affiche les lignes du fichier j'affiche un bouton radio pour chaques lignes; bouton a cocher pour effacer la ligne correspondante.

Donc je me base sur le isset de ces boutons radios.

Le nombre de lignes a effacer ainsi que le nombre de ligne totale ne sont pas connues a l'avance.

Je vais tester le code de Jan, il a l'air correct.

(Je veux pas non plus qu'on me donne trop de code tout fais sinon je vais pas progresser (et non, je suis pas maso!!!))

Lien vers le commentaire
Partager sur d’autres sites

Je vais tester le code de Jan, il a l'air correct.

(Je veux pas non plus qu'on me donne trop de code tout fais sinon je vais pas progresser (et non, je suis pas maso!!!))

<{POST_SNAPBACK}>

Désolé furious Gontran, mon intention n'était pas de faire le boulot à ta place. Je sais qu'il n'y a rien de plus frustrant quand on s'attaque à l'apprentissage d'un nouveau sujet.

J'ai simplement donné ce code parce que je n'étais pas sur d'avoir compris ton besoin. Tu peux t'en inspirer sans pour autant l'utiliser tel quel. D'ailleurs je ne suis toujours pas sûr qu'il réponde à ton besoin. Tu y trouveras quand même quelques éléments qui te serviront, notamment la fonction count pour compter les lignes de ton tableau ;) Bonne chance.

Lien vers le commentaire
Partager sur d’autres sites

Le problème principal, c'est qu'il n'efface 'que' les lignes, et pas les mots au milieu de ces lignes.

POurquoi n'affiches tu pas tout le texte du fichier dans un textarea, et ensuite tu sauvegardes le contenu changé du textarea dans ton fichier.

Ce serait plus simple, non ?

Lien vers le commentaire
Partager sur d’autres sites

@ Jan

ah non, je t'en veux pas...

Bien au contraire !!!

(merci pour count)

_AT_Anonymous

Ben l'utilisateur en question est mega refractaire a l'informatique alors il est capable de raler encore...

Lorsque je lui ais montré comment editer directement le fichier texte il a mis une telle mauvaise volonté qu'il a tout cassé...

alors la je prefere lui macher le travail

Lien vers le commentaire
Partager sur d’autres sites

Non, justement, il aurait une grande zone texte et un bouton valider.

Il entre ce qu'il veut, il modifie/efface/.. ce qu'il veut, et valide, et c'est tout.

Tu te vois, devant 'word', en train d'effacer des lignes en cliquant sur des checkbox ?

Lien vers le commentaire
Partager sur d’autres sites

oui, c'est vrai que vu comme ca...

Il rentre les données par formulaire, le probleme lorsqu'il efface c'est le caractere | qu'il ne trouve pas sur son clavier mac (quand je parlais de mauvaise volonté) et qui me sers a separer les differents elements.

Code qui marche:

$total = file($fichier);

$contenu_final = "";

for ($p=1; $p<=count($total); $p++)

{

$ligne='ligne'.$p;

$f=$p-1;

if (isSet ($_POST[$ligne]))

{

echo "<strong>Vous allez effacer la ligne: ".$p."</strong><br>";

echo $total[$f]."<br>";

$total[$f]="";

echo "verif:".$total[$f]."<br>";

}

echo "total0".$total[0];

$contenu_final.=$total[$f];

}

il ne reste plus qu'a inscrire le fichier...

Modifié par furious Gontran
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...