Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

renommer automatiquement

4 réponses
Avatar
loac
bonjour,

je cherche un algo pour renommer automatiquement un nom (pour éviter les
doublons dans une liste). Ce que je voudrais renommer à cette tête:
PHC2401 -> PHC2401-a (PHC2401-b si PHC2401-a existe)
PHC2401-a -> PHC2401-b
PHC2401-1 -> PHC2401-2

note : le séparateur paut être n'importe quel non-alphanum

4 réponses

Avatar
jean-marc
"loac" wrote in message
news:
bonjour,

je cherche un algo pour renommer automatiquement un nom (pour éviter les
doublons dans une liste). Ce que je voudrais renommer à cette tête:
PHC2401 -> PHC2401-a (PHC2401-b si PHC2401-a existe)
PHC2401-a -> PHC2401-b
PHC2401-1 -> PHC2401-2

note : le séparateur paut être n'importe quel non-alphanum



Hello,
je n'ai pas compris la question...
Ou est la liste? dans un fichier ? sur plusieurs lignes?
Le plus simple ne serait il pas de montrer un extrait du fichier si c'en est
un
pour qu on puisse voir:
1/ le fichier en entrée
2/ la sortie attendue

Sinon, à vue de nez c'est assez simple et il y a certainement plusieurs
solutions.
La meilleur solution ne pourra être donnée que si on connait mieux les
besoins
et les formats au départ. Le meilleur programmeur ne peut rien faire si il
n'a pas de spécifications claires et détaillées.

Jean-marc
Avatar
Loic BERTHOLLET
Il s'agit d'une liste chainée du stype names() as string

des exemple :
entrée
----------
PHC2401 -> PHC2401-a (PHC2401-b si PHC2401-a existe)
PHC2401-a -> PHC2401-b
PHC2401/a -> PHC2401-b
PHC2401 a -> PHC2401 b
PHC2401-1 -> PHC2401-2
PHC2401-10 -> PHC2401-11
ISE3051 -> ISE3051-a
REF201 -> REF201-a
...

"jean-marc" a écrit :

"loac" wrote in message
news:
> bonjour,
>
> je cherche un algo pour renommer automatiquement un nom (pour éviter les
> doublons dans une liste). Ce que je voudrais renommer à cette tête:
> PHC2401 -> PHC2401-a (PHC2401-b si PHC2401-a existe)
> PHC2401-a -> PHC2401-b
> PHC2401-1 -> PHC2401-2
>
> note : le séparateur paut être n'importe quel non-alphanum

Hello,
je n'ai pas compris la question...
Ou est la liste? dans un fichier ? sur plusieurs lignes?
Le plus simple ne serait il pas de montrer un extrait du fichier si c'en est
un
pour qu on puisse voir:
1/ le fichier en entrée
2/ la sortie attendue

Sinon, à vue de nez c'est assez simple et il y a certainement plusieurs
solutions.
La meilleur solution ne pourra être donnée que si on connait mieux les
besoins
et les formats au départ. Le meilleur programmeur ne peut rien faire si il
n'a pas de spécifications claires et détaillées.

Jean-marc






Avatar
LE TROLL
Bonjour,

Il y a par enregistrement un élément fixe, et un élément mobile, je
pense que des listes peuvent faire ça, si le nombre est < 32.000, le
principe

Avec une liste list1, on teste si l'arrivant est égal à un élément de la
liste, dans ce cas, on modifie l'arrivant avant de l'insérer (additem +
Refresh).

Si c'est une liste déjà existante, on met list1.sorted=true
On la teste en boucle avec a chaque modification
RemoveItem
Refresh
goto recmmence_la_boucle

Ton enregistrement contient une partie fixe et une partie variable, s'il
faut modifier, avec "Mid" on sépare les 2 parties, on fait évoluer la partie
variable avant de l'insérer dans la liste, etc...

Si tu veux plus sportif, tu peux le faire avec que des variables, des
tris bulles...

Il doit y avoir plein d'autre possibilités...
--------------


"loac" a écrit dans le message de news:

bonjour,

je cherche un algo pour renommer automatiquement un nom (pour éviter les
doublons dans une liste). Ce que je voudrais renommer à cette tête:
PHC2401 -> PHC2401-a (PHC2401-b si PHC2401-a existe)
PHC2401-a -> PHC2401-b
PHC2401-1 -> PHC2401-2

note : le séparateur paut être n'importe quel non-alphanum


Avatar
dark poulpo
> Il s'agit d'une liste chainée du stype names() as string

des exemple :
entrée
----------
PHC2401 -> PHC2401-a (PHC2401-b si PHC2401-a existe)
PHC2401-a -> PHC2401-b
PHC2401/a -> PHC2401-b
PHC2401 a -> PHC2401 b
PHC2401-1 -> PHC2401-2
PHC2401-10 -> PHC2401-11
ISE3051 -> ISE3051-a
REF201 -> REF201-a
...



voila une explication simple,


pour chaque fichier
separeration des parties se trouvant avant le point et le reste du nom
du fichier

repeter
nom de nouveau fichier = avantlepoint + "_xxx" + le reste du nom //
_xxxx c toi qui le fait avec ta facon a toi
jusqua ce nouveau nom de fichier n'existe pas deja
renommer le fichier actuel par le nom de nouveau fichier
fin pour



voila un algo

--
-----
http://dark.freezee.org/
- Dark Update v1.0
- Dark Emule v0.44b r4
- Dark Desktop 3D (en cours)