furious Gontran Posté 13 Décembre 2004 Posté 13 Décembre 2004 (modifié) 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é 13 Décembre 2004 par furious Gontran
Jan Posté 13 Décembre 2004 Posté 13 Décembre 2004 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 formulairefor ($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);?>
Dan Posté 14 Décembre 2004 Posté 14 Décembre 2004 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
furious Gontran Posté 14 Décembre 2004 Auteur Posté 14 Décembre 2004 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!!!))
Jan Posté 14 Décembre 2004 Posté 14 Décembre 2004 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.
Anonymus Posté 14 Décembre 2004 Posté 14 Décembre 2004 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 ?
furious Gontran Posté 14 Décembre 2004 Auteur Posté 14 Décembre 2004 @ 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
Anonymus Posté 14 Décembre 2004 Posté 14 Décembre 2004 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 ?
furious Gontran Posté 14 Décembre 2004 Auteur Posté 14 Décembre 2004 (modifié) 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é 14 Décembre 2004 par furious Gontran
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant