Page 1 sur 1

comment supprimer des retours à la ligne

Posté : 22 avr. 2005, 14:30
par Killthetopten
Bonjour, voici mon problème:
J'ai une très longue liste de noms (environ 5000 noms) dans un fichier texte, ces noms sont écrits en colonne comme ceci:
exemple avec une liste plus courte:

John
Marie
Jean-Pierre
Cecile
Mark

Mais je voudrais que ces noms soient séparés par des virgules, pour cela je colle la liste dans excel dans la colonne A et je mets des virgules dans la colonne B, je copie les deux colonnes, le résultat est le suivant:

John ,
Marie ,
Jean-Pierre,
Cecile ,
Mark.

Il y a des espaces entre les noms et les virgules (même en alignant les noms à droite dans excel ça fait pareil)

Donc pour enlever ces espaces, je fais le code javascript suivant:

<script language="JavaScript" type="text/javascript">
var chaine='John ,
Marie ,
Jean-Pierre,
Cecile ,
Mark';
var a = '';
for (i=0;i<chaine.length;i++)
{
if (chaine.charAt(i)!=' '){a+=chaine.charAt(i);}
}
chaine = a;
document.write (chaine);
</script>


Ce script marche très bien avec:

var chaine='John ,Marie ,Jean-Pierre,Cecile ,Mark';

il donne ce que je veux cad: John,Marie,Jean-Pierre,Cecile,Mark

Le problème c'est qu'il y a des retours à la lignes et ça crée une erreur dans le script, il faudrait supprimer les retours à la ligne pour les 5000 noms pour que ça marche, ou alors écrire:

'John ,'+
'Marie ,'+
'Jean-Pierre,'+ etc... mais là encore il faudrait le faire pour les 5000 noms, alors j'ai bien essayé avec mon editeur de script de faire remplacer automatiquement les , par des ,'+ ce qui me donne ceci:

'John ,'+
Marie ,'+
Jean-Pierre,'+ etc.

mais je ne peux pas rajouter de ' devant le nom au début de chaque ligne.

Donc si quelqu'un avait une solution pour transformer une liste:

John
Marie
Jean-Pierre
Cecile
Mark

en John,Marie,Jean-Pierre,Cecile,Mark ce serait cool, merci!

désolé le forum a effacé les espaces que j'avais mis

Posté : 22 avr. 2005, 14:39
par killthetopten
J'essaye à nouveau avec des espaces insécables:

Bonjour, voici mon problème:
J'ai une très longue liste de noms (environ 5000 noms) dans un fichier texte, ces noms sont écrits en colonne comme ceci:
exemple avec une liste plus courte:

John
Marie
Jean-Pierre
Cecile
Mark

Mais je voudrais que ces noms soient séparés par des virgules, pour cela je colle la liste dans excel dans la colonne A et je mets des virgules dans la colonne B, je copie les deux colonnes, le résultat est le suivant:

John ,
Marie ,
Jean-Pierre,
Cecile ,
Mark.

Il y a des espaces entre les noms et les virgules (même en alignant les noms à droite dans excel ça fait pareil)

Donc pour enlever ces espaces, je fais le code javascript suivant:

<script language="JavaScript" type="text/javascript">
var chaine='John ,
Marie ,
Jean-Pierre,
Cecile ,
Mark';
var a = '';
for (i=0;i<chaine.length;i++)
{
if (chaine.charAt(i)!=' '){a+=chaine.charAt(i);}
}
chaine = a;
document.write (chaine);
</script>


Ce script marche très bien avec:

var chaine='John ,Marie ,Jean-Pierre,Cecile ,Mark';

il donne ce que je veux cad: John,Marie,Jean-Pierre,Cecile,Mark

Le problème c'est qu'il y a des retours à la lignes et ça crée une erreur dans le script, il faudrait supprimer les retours à la ligne pour les 5000 noms pour que ça marche, ou alors écrire:

'John ,'+
'Marie ,'+
'Jean-Pierre,'+ etc... mais là encore il faudrait le faire pour les 5000 noms, alors j'ai bien essayé avec mon editeur de script de faire remplacer automatiquement les , par des ,'+ ce qui me donne ceci:

'John ,'+
Marie ,'+
Jean-Pierre,'+ etc.

mais je ne peux pas rajouter de ' devant le nom au début de chaque ligne.

Donc si quelqu'un avait une solution pour transformer une liste:

John
Marie
Jean-Pierre
Cecile
Mark

en John,Marie,Jean-Pierre,Cecile,Mark ce serait cool, merci!

bon vraiment désolé

Posté : 22 avr. 2005, 14:43
par Killthetopten
Bon je vais mettre des _ à la place espaces:


Bonjour, voici mon problème:
J'ai une très longue liste de noms (environ 5000 noms) dans un fichier texte, ces noms sont écrits en colonne comme ceci:
exemple avec une liste plus courte:

John
Marie
Jean-Pierre
Cecile
Mark

Mais je voudrais que ces noms soient séparés par des virgules, pour cela je colle la liste dans excel dans la colonne A et je mets des virgules dans la colonne B, je copie les deux colonnes, le résultat est le suivant:

John______,
Marie_____ ,
Jean-Pierre,
Cecile ____,
Mark.

Il y a des espaces entre les noms et les virgules (même en alignant les noms à droite dans excel ça fait pareil)

Donc pour enlever ces espaces, je fais le code javascript suivant:

<script language="JavaScript" type="text/javascript">
var chaine='John _____,
Marie_____ ,
Jean-Pierre,
Cecile ____,
Mark';
var a = '';
for (i=0;i<chaine.length;i++)
{
if (chaine.charAt(i)!=' '){a+=chaine.charAt(i);}
}
chaine = a;
document.write (chaine);
</script>


Ce script marche très bien avec:

var chaine='John _____,Marie _____,Jean-Pierre,Cecile ____,Mark';

il donne ce que je veux cad: John,Marie,Jean-Pierre,Cecile,Mark

Le problème c'est qu'il y a des retours à la lignes et ça crée une erreur dans le script, il faudrait supprimer les retours à la ligne pour les 5000 noms pour que ça marche, ou alors écrire:

'John_____ ,'+
'Marie ____,'+
'Jean-Pierre,'+ etc... mais là encore il faudrait le faire pour les 5000 noms, alors j'ai bien essayé avec mon editeur de script de faire remplacer automatiquement les , par des ,'+ ce qui me donne ceci:

'John_____ ,'+
Marie_____ ,'+
Jean-Pierre,'+ etc.

mais je ne peux pas rajouter de ' devant le nom au début de chaque ligne.

Donc si quelqu'un avait une solution pour transformer une liste:

John
Marie
Jean-Pierre
Cecile
Mark

en John,Marie,Jean-Pierre,Cecile,Mark ce serait cool, merci!

Posté : 22 avr. 2005, 14:50
par pjl
Je comprends ton problème.
J'avais aussi une très grande liste de noms qui devenait ingérable.

Du coup, j'ai fait appel à Léon et aujourd'hui, ma liste a perdu près des 3/4 de ses noms.


PS : connais tu les fonctions de gestion de fichier en PHP et la fonction IMPLODE ?

Posté : 23 avr. 2005, 00:50
par Killthetopten
Je ne connais pas encore bien le php, je ne connaissais pas IMPLODE, ça sert à quoi?
Et c'est qui Léon?
Merci.

Posté : 23 avr. 2005, 00:57
par pjl
Google est mon ami : 1ere page, 4eme ligne : http://www.allocine.fr/film/fichefilm_g ... =9684.html

La doc est la meilleure amie du programmeur : http://fr2.php.net/manual/fr/function.implode.php

J'ai le même problème

Posté : 23 mai 2005, 10:06
par Asterius
Je génère du code javascript à partir d'une variable php, soit par exemple :

[code]
$onclick = document.formName.fieldName.value='a

b';
[/code]

Si j'utilise cette variable tel quel dans le code javascript, ça foire, car javascript n'aime pas les retours à la ligne...

[code]
<a href="#" onclick="document.formName.fieldName.value='a

b';">test</a>
[/code]

Via php, je tente d'utiliser la commande nl2br() qui est censée me remplacer ces retours à la ligne... mais voici alors ce que j'obtiens dans mon code html :

[code]
<a href="#" onclick="document.form_id.editContent.value='a<br />
<br />
b';">test</a>
[/code]

Il y a toujours des retours à la ligne, et je n'arrive pas à m'en débarrasser...

S'il existe une solution miracle pour enlever ces retours à la ligne, ce serait super![/code]