Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 2
Aller à la page: 1, 2  >
[Batch] Transformation de fichiers
Auteur Message
Répondre en citant
Message [Batch] Transformation de fichiers 
Bonjour à tous

Je suis en train de créer un batch qui est censé faire ceci :

- créer un fichier .txt pour chaque fichier .csv présent dans le dossier où est situé le batch en exécutant les modifications suivantes :

xxx.csv (composé de deux colonnes de nombres séparées par des tab)

1 0
2 0.1
3 0.2
4 0.3
5 0.5
6 0.7
... ...

en ce fichier xxx.txt

n
0
0.1
0.2
0.3
0.5
0.7
...


où n représente le nombre de lignes dans le fichier xxx.txt (moins la ligne du n évidemment)

Pourriez vous m'aider ?

Merci d'avance


Caldween



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Batch] Transformation de fichiers 
Hello,

alors voila une partie de la réponse, le reste viendra ce soir ^^
oui j'ai vu un truc de bizare...


Code:

@echo off
title Solution de la demande !
color 0A
echo.

set COUNT=0
:RETRY

set /a COUNT=COUNT+1

for /f "tokens=1,*" %%a in ('type xxx.csv ^| Find "%COUNT% "') do (
    set WRONG=%%a
    set LINE=%%b
    )
echo %LINE%
if %COUNT% GTR %WRONG% goto :END
goto :RETRY

:END
echo test ok
pause





Dernière édition par stryk le Ven 26 Fév 2010 - 23:24; édité 1 fois

______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Batch] Transformation de fichiers 
Re-hello,

Voici, toujours en attendant, un morceau de code pour lister les fichiers .csv de ton dossier !
vraiment désolé, je n'ai pas le temps de faire tout d'un coup ^^


Code:

@echo off

for /F "TOKENS=*" %%I IN ('DIR /B ^| Find ".csv"') DO (
echo %%I )

pause>nul





Dernière édition par stryk le Ven 26 Fév 2010 - 23:26; édité 1 fois

______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Batch] Transformation de fichiers 
Merci pour ton aide Wink

Je vais déjà décrypter ce que tu as mis ! Smile



Répondre en citant
Message [Batch] Transformation de fichiers 
Hello,
Désolé de la lenteur de mes réponses, je vais essayer d'être plus véloce ...

Voici le code fini, copie-le dans un fichier texte, rennome-le en .bat, Place le dans ton dossier et lance-le !
Cela correspond-il à ce que tu recherche ??
@++ Wink


Code:

@echo off
title Solution de la demande !
color 0A

for /F "tokens=*" %%N in ('dir /B ^| Find ".csv"') DO (
    set NEW_FILE=%%N
    call :APPLY
    )

goto :EOF

:APPLY

set COUNT=0
:RETRY
set /a COUNT=COUNT+1

for /f "tokens=1,*" %%E in ('type %NEW_FILE% ^| Find "%COUNT% "') do (
    set WRONG=%%E
    set LINE=%%F
    )

if %COUNT% GTR %WRONG% goto :END_TRY
echo %LINE% >>%NEW_FILE%.tmp
goto :RETRY
:END_TRY

set /a NB_LINES=COUNT-1
echo Nombre_de_lignes:_%NB_LINES%>%NEW_FILE%.txt
type %NEW_FILE%.tmp>>%NEW_FILE%.txt
del %NEW_FILE%.tmp





Dernière édition par stryk le Ven 26 Fév 2010 - 23:23; édité 4 fois

______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Batch] Transformation de fichiers 
Un tout grand merci ! Je teste ça au plus vite et je te donne des nouvelles Okay



Répondre en citant
Message [Batch] Transformation de fichiers 
Hello,

Alors, alors, que donne mon petit code Question




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Batch] Transformation de fichiers 
Salut !

Désolé pour le retard mais mon fils est né ce mois ci donc j'ai eu pas mal d'occupations on va dire Smile

Je suis revenu de mon congé aujourd'hui et je viens de tester mais ça ne me donne rien, la box disparait tout de suite et aucun fichier n'est créé...



Répondre en citant
Message [Batch] Transformation de fichiers 
Hello,

Félicitation ^^
Pas grave, je connais ça, mon deuxième a 6 mois !!

J'ai fait l'essai chez moi, ça fonctionne impec', tu place juste le batch dans le dossier et tu lance ...
La box se ferme tout de suite, ca c'est normal, mais logiquement des fichiers .txt sont créés !
Donc, pour faire plus simple, peux-tu envoyer un ou plusieurs de tes fichiers .csv , histoire de tester ?
@+




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Batch] Transformation de fichiers 
Toujours pas c'est bizarre pourtant je met bien le .bat là où il y a d'autres .csv

Tu pourrais me donner ton mail pour t'envoyer des fichiers stp ?



Répondre en citant
Message [Batch] Transformation de fichiers 
Lu,

J'ai bien reçu tes petits fichiers !
Mais le contenu n'a rien à voir avec ce que tu écris dans ton premier post ...
Peux tu me donner un exemple de ce que tu souhaites obtenir avec ce fichier par exemple :
Code:

0;1.339601
0.5;1.338439
1;1.337177
1.5;1.335867
2;1.33456
2.5;1.333162
3;1.331876
3.5;1.330601
4;1.32942
4.5;1.327901
5;1.32659
5.5;1.325284
6;1.323948
6.5;1.322656
7;1.321296
7.5;1.31994
8;1.318569





______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Batch] Transformation de fichiers 
C'est bizarre pour moi j'ai :

0.000000;1.339601
0.500000;1.338439
1.000000;1.337177
1.500000;1.335867
2.000000;1.334560
2.500000;1.333162
3.000000;1.331876
3.500000;1.330601
4.000000;1.329420
4.500000;1.327901
5.000000;1.326590
5.500000;1.325284
6.000000;1.323948
6.500000;1.322656
7.000000;1.321296
7.500000;1.319940
8.000000;1.318569
8.500000;1.317403
9.000000;1.316084
9.500000;1.314590


Mais c'est de ma faute j'ai assimilé une tabulation alors que c'était symbolisé par un ; j'imaginais que c'était pareil dans le code je me suis trompé car sous excel ça formait deux colonnes. En ouvrant avec notepad je me suis aperçu que le séparateur était un ;


Le but est donc de compter le nombre de lignes (n) et d'enlever la première colonne pour obtenir ceci :

n
1.339601
1.338439
1.337177
1.335867
1.33456
1.333162
1.331876
1.330601
1.32942
1.327901
1.32659
1.325284
1.323948
1.322656
1.321296
1.31994
1.318569
1.317403
1.316084
1.314590



Répondre en citant
Message [Batch] Transformation de fichiers 
RE,

Dans un premier temps, on va tester sans le compteur de lignes, juste pour vérifier que le code correspond:


Code:

@echo off
color 0A

for /F "tokens=*" %%N in ('dir /B ^| Find ".csv"') DO (
    set NEW_FILE=%%N
    call :APPLY
    )

goto :EOF

:APPLY

for /f "tokens=2 delims=;" %%E in ('type %NEW_FILE%') do (
    echo %%E>>%NEW_FILE%.txt
    )





Dernière édition par stryk le Ven 26 Fév 2010 - 23:20; édité 1 fois

______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Batch] Transformation de fichiers 
Ca marche ! Smile



Répondre en citant
Message [Batch] Transformation de fichiers 
Mr. Green Donc voici le code Mr. Green


Code:

@echo off
title ^| By Stryk ^|
color D0 & mode con LINES=3 COLS=22
for /F "tokens=*" %%N in ('dir /B ^| Find ".csv"') DO (
    set NEW_FILE=%%N
    call :APPLY
    )
echo.
echo      ---  OK  ---
@ping localhost -n 4 >nul
goto :EOF
:APPLY
set COUNT=0
for /f "tokens=2 delims=;" %%E in ('type %NEW_FILE%') do (
    set /a COUNT=COUNT+1
    echo %%E>>%NEW_FILE%.stryk
    )
echo %COUNT%>>%NEW_FILE%.txt
type %NEW_FILE%.stryk>>%NEW_FILE%.txt
del %NEW_FILE%.stryk






______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Message [Batch] Transformation de fichiers 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 2
Aller à la page: 1, 2  >
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch