Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1698 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Supprimer les espces blancs en fin de chaîne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Supprimer les espces blancs en fin de chaîne

n°1616333
jeanFB
Posté le 27-09-2007 à 20:56:52  profilanswer
 

Bonsoir j'aimerais savoir s'il y a une fonction native en batch pour supprimer les espaces blancs en fin de chaîne
(genre rtrim) ou alors un bout de code assez simple ?
merci beaucoup

mood
Publicité
Posté le 27-09-2007 à 20:56:52  profilanswer
 

n°1616709
blastkille​r
Posté le 28-09-2007 à 16:27:10  profilanswer
 

@echo off
for /f "delims=" %%a in (t.txt) do call :cmd "%%a"
pause
exit
:cmd
set ligne=%~1
set var=%ligne:~-2%
set var=%var: =%
set ligne=%ligne:~0,-2%
set ligne=%ligne%%var%
echo %ligne%> s.txt

n°1616824
jeanFB
Posté le 28-09-2007 à 21:31:37  profilanswer
 

merci blastkiller mais ça fonctionne pas ... c'est  sympa quand même

n°1616907
blastkille​r
Posté le 29-09-2007 à 12:51:13  profilanswer
 

Au cas où t'aurais pas compris, parce que bon, chez moi sa marche, le programme lit le fichier t.txt, supprime les espaces de fin de ligne, et ressort tout ça dans le fichier s.txt

n°1616925
jeanFB
Posté le 29-09-2007 à 13:36:08  profilanswer
 

@blastkiller
si je fais  
echo (%ligne%)
les espaces y sont toujours
donc ça fonctionne quand tu écris dans un nouveau fichier  
moi  je dois manipuler la chaîne extraite
inscrire la chaîne extraite dans un fichier texte pour le réouvrir et reprendre la chaîne c'est un peu lourd  y a peut être plus simple...

n°1616949
blastkille​r
Posté le 29-09-2007 à 15:20:08  profilanswer
 

@echo off
set chaine=espace_a_la_fin  
echo (%chaine%)
::y'a bien un espace a la fin
set var=%chaine:~-1%
if "%var%"==" " echo (%chaine:~0,-1%)
::y'a pu d'espace
pause
exit

n°1616951
aigles
Posté le 29-09-2007 à 15:29:21  profilanswer
 

C:\>set chaine=espace_a_la_fin
C:\>echo (%chaine%)
(espace_a_la_fin    )
C:\>set chaine2=%chaine: =%
C:\>echo (%chaine2%)
(espace_a_la_fin)
C:\>
 
 
 
Jean-Pierre.

n°1616959
jeanFB
Posté le 29-09-2007 à 16:52:00  profilanswer
 

@blastkiller
 
Merci

n°1616960
jeanFB
Posté le 29-09-2007 à 16:52:49  profilanswer
 

@aigles
 
Merci également
 
BON WEEK END à vous

n°1616965
blastkille​r
Posté le 29-09-2007 à 17:23:27  profilanswer
 

@aigles
sa supprime tous les espaces, pas juste ceux de la fin

mood
Publicité
Posté le 29-09-2007 à 17:23:27  profilanswer
 

n°1617340
aigles
Posté le 01-10-2007 à 13:46:10  profilanswer
 

blastkiller a écrit :

@aigles
sa supprime tous les espaces, pas juste ceux de la fin


Oups! C'est effectivement un peu radical comme méthode !  :ange:

n°2235851
TOTO925
Posté le 19-08-2014 à 14:57:33  profilanswer
 

REM Pour ne supprimer qu'à la fin, tant qu'il y en a...
rem (au début $="A B    C  D         ", à la fin $="A B    C  D" )

rem Attention lors d'un copier/coller, cette page peut rajouter des espaces après "set $$=%$%", ce qui crée un bug.
rem Seul "set $=A B    C  D         " a des espaces en fin de ligne.

 

REM Exemple simplifié (sans fonction):
:-------------------------------------------------------------------
@echo off
set $=A B    C  D      
echo I%$%I

 

:DEL_LAST_SPACES
if "%$%"=="" goto DEL_LAST_SPACES_end
set $$=%$%
if not "%$:~,-1% "=="%$$%" goto DEL_LAST_SPACES_end
set $=%$:~,-1%
goto DEL_LAST_SPACES
:DEL_LAST_SPACES_end

 

echo I%$%I
pause


Message édité par TOTO925 le 19-08-2014 à 15:56:31
n°2343524
GEEK82500
no lose, win or learn
Posté le 22-12-2019 à 16:46:13  profilanswer
 

blastkiller a écrit :

@echo off
for /f "delims=" %%a in (t.txt) do call :cmd "%%a"
pause
exit
:cmd
set ligne=%~1
set var=%ligne:~-2%
set var=%var: =%
set ligne=%ligne:~0,-2%
set ligne=%ligne%%var%
echo %ligne%> s.txt


 
désolé pour le déterrage profond mais j'aurais été intéressé de pouvoir lancer ce script depuis un autre dossier que le fichier txt à traiter. Est-ce que quelqu'un saurait l'adapter?
merci d'avance


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Supprimer les espces blancs en fin de chaîne

 

Sujets relatifs
débutant: trouver une chaîne dans une ligne, en remplacer une autreSupprimer ligne fichier
supprimer ligne d'excel par VBA[PHP][REGEX]réduire le texte d'un lien dans une chaine
Requête select sur une chaine sans tenir compte des espaces[VB6] : Supprimer le titre et numéro de page d'un fichier texte
Supprimer tout les chiffres/nombres contenus dans une chainesupprimer et inserer
[Résolu] CSS/JS : comment supprimer un <br> ? 
Plus de sujets relatifs à : Supprimer les espces blancs en fin de chaîne


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR