Jump to content
  • 0
Bruno S.

Supprimer Valeur

Question

Bonjour,

Je suis à la recherche d'une formule de calcul pour ôter une valeur d'une liste de valeurs.

Par exemple :

Liste :

- lundi

- mardi

- mercredi

Résultat calcul :

- lundi

- mercredi

On a enlevé "- mardi".

J'en ai fait une mais qui ne prend pas en compte une éventuelle répétitions de la valeur à supprimer dans la liste et qui laisse 1 saut de ligne si la valeur à supprimer est la première.

Share this post


Link to post
Share on other sites

21 answers to this question

Recommended Posts

  • 0

Hello,

avec une FP qui n'est plus si perso que ça, puisque j'y ai remplacé mon code par celui de Michael (merci agnès !)

BrunoS.fp7

BrunoS.fp7

BrunoS.fp7

BrunoS.fp7

BrunoS.fp7

BrunoS.fp7

BrunoS.fp7

BrunoS.fp7

BrunoS.fp7

BrunoS.fp7

Share this post


Link to post
Share on other sites
  • 0

Hello,

Marchera pas impec tout a fait, si la liste est

- lundi

- mardi

- mardi

- mercredi

par exemple, enlever "- mardi" n'en enlèvera qu'un, enlever "- Mardi" n'enlèvera rien

J'ose aiguiller sur FilterList ()

ou alors il faut revoir le calcul un petit peu :rolleyes:

sisi ! 2 mardis côte à côte ça arrivera un jour :ph34r:

Bonne journée

Agnès

Share this post


Link to post
Share on other sites
  • 0
 Definir ([ Value = "vendredi"; Tag = "#|#"; Sub = Remplace2 ( Tag & BrunoS::Liste & Tag; [¶; Tag & ¶ & Tag ]; [ Tag & Value & Tag; "" ]; [ Tag; "" ] ) ]; Remplace2 ( SupprimerTout ( Remplace2 ( Sub;  [ " "; "§" ]; [ ¶; " " ] ); 0; 0 ); [ " "; ¶]; [ "§"; " " ] ) // ou CleanList (biensur!) )

celui ci doit le faire, vec le code de Michael ;)

et rester sensible à la casse

Share this post


Link to post
Share on other sites
  • 0

C'est ma foi vrai, mardi ! Euh... pardi !

Voilà un calcul modifié.

Je vais jeter un oeil sur FilterList... ;)

-- edit --

oups, pas vu arriver ta réponse, Agnès !

moi, maintenant je me méfie des "#|#" depuis que j'ai eu des soucis ! :lol:

(pas encore prouvé que c'était ça, mais bon...)

BrunoS.fp7

BrunoS.fp7

BrunoS.fp7

BrunoS.fp7

BrunoS.fp7

BrunoS.fp7

BrunoS.fp7

BrunoS.fp7

BrunoS.fp7

BrunoS.fp7

Edited by lem alpha

Share this post


Link to post
Share on other sites
  • 0

et je me méfie aussi, mais rien encore constaté

marche très bien ton calcul d'abord !

Share this post


Link to post
Share on other sites
  • 0

'alut

-me semble qu'on peut s'abstenir de taguer car des lundi dans des lundi cé pas souvent quiena

maintenant l'autre utilité des tags c'est de les supprimer facilement à la fin

-ensuite le clean n'est pas nécessaire si la "listossectomie" est bien réalisée

une variante plus simple donc serait :

Definir([list = Remplace2 ( ¶ &Liste & ¶; ¶ & ValeurAsupprimer; "");listdef = Extrait ( list; 2; Longueur ( list )-2)];listdef )

ou à la rigueur si on veut éviter des remplacements inopinés :

Definir([list = Remplace2 ( ¶ &Liste & ¶; ¶ & ValeurAsupprimer&¶; ¶);listdef = Extrait ( list; 2; Longueur ( list )-2)];listdef ))

Share this post


Link to post
Share on other sites
  • 0

salut laurent

essai des fois avec des "€8O})" :D:D

moi, maintenant je me méfie des "#|#" depuis que j'ai eu des soucis !

Share this post


Link to post
Share on other sites
  • 0

OK Eric, ton premier code marche dans ce cas de liste très ciblée, mais dans le cas d'une liste où la valeur à supprimer peut apparaître au début d'une ligne à conserver, on est foutus... ;)

Résolu dans ton 2e code, mais qui du coup, comme le notait Agnès sur mon 1er jet, ne supprime pas 2 valeurs consécutives identiques.

D'où mon calcul pour doubler les retours chariot, et d'où le "CleanList"...

De toute façon, je me sers souvent du CleanList, car si ta liste est un résultat de fonction sur les listes (ValeursDebut, ValeursFiltre etc...), il y a toujours un retour chariot final qui fait suer.

essai des fois avec des "€8O})"

c'est quoi ça, ton smiley personnalisé ? :D

moi ce serait plutôt |°C :lol:

Share this post


Link to post
Share on other sites
  • 0

salut Laurent,

Résolu dans ton 2e code, mais qui du coup, comme le notait Agnès sur mon 1er jet, ne supprime pas 2 valeurs consécutives identiques.

vrai alors voilà corrigé :

Definir([list =Remplace2 ( Liste; ¶;"¶¶");list=¶ & list & ¶;list=Remplace2(list;[¶ & ValeurAsupprimer&¶; ""];["¶¶";¶]);listdef = Extrait ( list; 2; Longueur ( list )-2)];listdef )
c'est quoi ça, ton smiley personnalisé ? :D

moi ce serait plutôt |°C :lol:

oui c'est un smiley et je vois que le tiens est plutôt moustache gauloise :D

edit : ah oui bon aspirateur à ¶, yen a partout de ces bêtes ! (allez¶ avec¶ cleanlist plus¶¶ de parasist¶)

Share this post


Link to post
Share on other sites
  • 0

OK OK... :lol:

Mais en fait, c'est quoi le but ? :D:D

En fait tu vas arriver au même code, mais sans la FP (qui n'est pas nécessaire d'ailleurs, on peut tout mettre dans le calcul)

donc au lieu de traiter les retours chariots par

Remplace2 ( SupprimerTout ( Remplace2 ( Liste ; [ " " ; "§" ] ; [ ¶ ; " " ] ) ; 0 ; 0 ) ; [ " " ; ¶] ; [ "§" ; " " ] )

tu le fais par

Definir ( liste = Remplace2( liste ;[¶ & ValeurAsupprimer&¶; ""];["¶¶";¶]) ;

Extrait ( liste ; 2; Longueur ( liste )-2) )

Je répète : faut pas avoir de retour chariot qui traîne à la fin... ;)

Tiens, en passant : je me sers aussi de CleanList pour "nettoyer" les concaténations du type adresse par ex. ( contact¶rue¶complément¶cp¶ville¶pays)

facile d'obtenir un résultat propre lorsqu'on a juste le nom et la ville, par exemple !

Share this post


Link to post
Share on other sites
  • 0

tiens j'ai même rajouté ça au cas ou les valeurs à supprimer seraient consécutives

Definir([val= Remplace2(ValeurAsupprimer; ¶;"¶¶");list =Remplace2 ( Liste; ¶;"¶¶");list=¶ & list & ¶;list=Remplace2(list;[¶ & val & ¶; ""];["¶¶";¶]);listdef = Extrait ( list; 2; Longueur ( list )-2)];listdef )

Share this post


Link to post
Share on other sites
  • 0

vi laurent

la méthode est différente...mais on arrive au même résultat (à part le bonus que j'ai rajouté) :)

je comprends pas ça : "Tiens, en passant : je me sers aussi de CleanList pour "nettoyer" les concaténations du type adresse par ex. ( contact¶rue¶complément¶cp¶ville¶pays)

facile d'obtenir un résultat propre lorsqu'on a juste le nom et la ville, par exemple !"

Share this post


Link to post
Share on other sites
  • 0
à part le bonus que j'ai rajouté

lequel ? :blink: j'ai du louper un truc

je comprends pas ça : "Tiens, en passant : je me sers aussi de CleanList pour "nettoyer" les concaténations du type adresse par ex. ( contact¶rue¶complément¶cp¶ville¶pays)

facile d'obtenir un résultat propre lorsqu'on a juste le nom et la ville, par exemple !"

Si tu écris un calcul du style

Rubr1 & ¶ & Rubr2 & ¶ & (...) & ¶ & RubrN

et que certaines peuvent être vide, mais que tu ne veux pas de "ligne vide" dans la liste, plutôt que d'écrire des

Cas ( Not EstVide...), tu écris

CleanList ( Rubr1 & ¶ & Rubr2 & ¶ & (...) & ¶ & RubrN )

Et, au risque d'être lassant :D :

faut pas avoir de retour chariot qui traîne à la fin...

Share this post


Link to post
Share on other sites
  • 0
lequel ? :blink: j'ai du louper un truc

http://www.fmsource.com/forum/index.php?s=...st&p=177183

pour supprimer par exemple "-lundi¶-mardi" (moi ch'serai pour supprimer les lundis et les vendredis...de boulot :D )

Si tu écris un calcul du style

Rubr1 & ¶ & Rubr2 & ¶ & (...) & ¶ & RubrN

et que certaines peuvent être vide, mais que tu ne veux pas de "ligne vide" dans la liste, plutôt que d'écrire des

Cas ( Not EstVide...), tu écris

CleanList ( Rubr1 & ¶ & Rubr2 & ¶ & (...) & ¶ & RubrN )

en effet dans ce cadre là cé super pratique et économise des cas(cas) :lol:

Et, au risque d'être lassant :D :

faut pas avoir de retour chariot qui traîne à la fin...

pourquoi tut répet ? j'ai loupé quèqchose ?

dans mes fonctions c'est le extrait final qui supprime les ¶ rajoutés au début et à la fin et ça le fait chez moi.

à moins que le "faut pas avoir de retour chariot qui traîne à la fin" signifie autre chose pour toi ?

Share this post


Link to post
Share on other sites
  • 0
tiens j'ai même rajouté ça au cas ou les valeurs à supprimer seraient consécutives
(...)

list =Remplace2 ( Liste; ¶;"¶¶");

list=¶ & list & ¶;

(...)

Eric, je ne pense pas que cela soit une bonne chose de nommer tes variables du Definir() comme le nom des fonctions, FM va se paumer un jour la dedans

les concaténations du type adresse par ex. ( contact¶rue¶complément¶cp¶ville¶pays)

facile d'obtenir un résultat propre lorsqu'on a juste le nom et la ville, par exemple !

euh....

et pourquoi tu n'écris pas plutôt List ( contact ; rue ; complément ; cp ; ville ; pays ) ?

Share this post


Link to post
Share on other sites
  • 0

bonjour Agnès

Eric, je ne pense pas que cela soit une bonne chose de nommer tes variables du Definir() comme le nom des fonctions, FM va se paumer un jour la dedans

vi m'dame,

merci :)

Share this post


Link to post
Share on other sites
  • 0
pour supprimer par exemple "-lundi¶-mardi"

OK, j'avais pas compris ça ;) je croyais que tu parlais de 2x mardi comme disait Agnès...

Mais là, je pense honnêtement qu'on ne traiterait pas ça comme ça, car tu supprimeras exclusivement "l'enchaînement" de ces 2 valeurs.

Si tu as une liste de jours "en vrac" et que tu veuilles supprimer toutes les occurrences de lundi et toutes celles de mardi, faudra de toute façon faire 2 passes, car elles peuvent apparaitre n'importe où, pas forcément à la suite l'une de l'autre.

Pour ça que ça m'a pas traversé l'esprit ;)

dans mes fonctions c'est le extrait final qui supprime les ¶ rajoutés au début et à la fin et ça le fait chez moi.

à moins que le "faut pas avoir de retour chariot qui traîne à la fin" signifie autre chose pour toi ?

On s'est mal compris... si tu as déjà un retour chariot final avant le calcul (car c'est le résultat d'une fonction sur les listes par ex...), alors avec ton calcul il restera.

De même que si, par on ne sait quel hasard, il y a plus d'un CR en trop...

et pourquoi tu n'écris pas plutôt List ( contact ; rue ; complément ; cp ; ville ; pays ) ?

Eh ben là, c'est simple, je n'y ai carrément pas pensé... :blush:

Mais là j'ai donné l'exemple le plus simple, et là non plus il ne faut pas qu'il y ait un CR en trop pour l'une des valeurs...

J'insiste avec ça :lol: mais le jour où j'ai eu des cas de ¶ en trop, je m'étais bien cassé la tête pour m'en débarrasser. J'avais d'ailleurs posté ici et tu m'avais répondu. ;)

Share this post


Link to post
Share on other sites
  • 0

vi chef laurent

pi d'abord mes listes elles sont pas polluées d'atomes errants ¶ car je les soigne à mesure

c'était entendu que c'était de valeurs consécutives que je parlais, sinon un bon CL ou un evaluate (remplace2(10^end.....

allez va ch'te laisse avec tes chariottes

pteu pteu j'avais un ¶ coincé entre les dents ! ;)

bien l'bonsoèr

Share this post


Link to post
Share on other sites
  • 0
vi chef laurent

ah ben ouais alors, si ch'suis chef, alors d'accord !!

pi d'abord mes listes elles sont pas polluées d'atomes errants ¶ car je les soigne à mesure

t'as bien de la chance :D

c'était entendu que c'était de valeurs consécutives que je parlais, sinon un bon CL ou un evaluate (remplace2(10^end.....

bah ouais, d'où l'intérêt de traiter de suite le plus de cas possibles ... :rolleyes:

allez va ch'te laisse avec tes chariottes

pteu pteu j'avais un ¶ coincé entre les dents ! ;)

bien l'bonsoèr

OK ça roule ! ;) en même temps, t'étais là, on allait pas te laisser monologuer ! :lol:

bonne nuit !

(dis-donc, sur ce post j'ai fait mon quota de citations pour l'année...)

Share this post


Link to post
Share on other sites
  • 0

tiens Laurent pour le fun

une tit récursive de clean et pour toi je me suis même occupé des éventuels ¶ au début ou à la fin :D

Cas (Occurrences ( Texte; "¶¶");clean_retour(Remplace2 ( Texte; "¶¶"; "¶"));Remplace2("8O})" & Texte & "8O})"; ["8O})¶";""];["¶8O})";""];[ "8O})";""]))

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...