Inverser ligne

Fermé
terreur69 Messages postés 10 Date d'inscription vendredi 3 février 2012 Statut Membre Dernière intervention 25 juin 2014 - Modifié par terreur69 le 3/02/2012 à 18:59
@ur3l'$ Messages postés 17 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 17 juin 2014 - 4 févr. 2012 à 22:03
Bonjour a tous !

je voudrait si possible que quelqun me cree un .bat qui permet d'inverser les lignes ,
c'est a dire sa :

309.189 -2344.82 480.656 0  
314.476 -2316.95 484.68 0  
319.671 -2299.35 486.789 0  
326.168 -2282.25 488.344 0 


a sa :

326.168 -2282.25 488.344 0  
319.671 -2299.35 486.789 0  
314.476 -2316.95 484.68 0  
309.189 -2344.82 480.656 0  



que la 1er ligne soit la dernier
que la 2er ligne soit l'avant dernier ....ect


merci!


9 réponses

Bizarre, Excel peut importer des fichiers comme le tien sans problème, en plaçant chaque valeur dans une cellule en respectant les lignes.
Mais c'est toujours facile quand on sait...

Bon voilà la macro, je l'ai faite pour Excel, c'est plus facile, et par chance tes parents on Excel, alors si ça les dérange pas...

Sub inverse_fichier() 
Dim Lignes(600) As String '600 lignes 
Dim i As Integer 
Dim NBlignes As Integer 

Dim Chemin As String 
Dim FichierINP As String 
Dim FichierOUT As String 

i = 0 

'Adapter selon ta config 
Chemin = "C:\Users\Yoda\Documents\" 'nom complet du dossier où se trouvent les fichiers 
FichierINP = "Fichier_INP.txt" 'nom du fichier à inverser 
FichierOUT = "Fichier_OUT.txt" 'nom du fichier resultat 

Close 
'Lecture du fichier et stockage en tableau 
Open Chemin & FichierINP For Input As #1 
While Not EOF(1) 
i = i + 1 
Line Input #1, Lignes(i) 
Wend 
Close 

NBlignes = i 
'Ecriture du tableau en commençant par la fin 
Open Chemin & FichierOUT For Output As #1 
For i = NBlignes To 1 Step -1 
Print #1, Lignes(i) 
Next 
Close 

MsgBox "Fichier " & FichierOUT & " créé" 

End Sub
Le tableau est dimensionné pour 600 lignes.

Dans Excel, acceder à l'éditeur Visual Basic (Alt F11)
Dans la partie de droite (Eplorateur de projet), clic droit, Insertion Module
Une fenêtre Module1 doit s'ouvrir

Copier/Coller la macro dans le module.

Modifier manuellement les variables Chemin, FichierINP et FichierOUT
FichierINP et FichierOUT doivent être différents
Ensuite, Menu Exécution Exécuter la Macro (ou F5)

Si tout s'est bien passé, le fichier inversé est créé.

Essaye, dis moi si c'est pas clair.
1
Bonsoir,

En batch, je ne sais pas.
Mais ecrire une petite routine en VB ou autre langage, pourquoi pas.

A tout hazard, combien de lignes a ton fichier à inverser?
Est ce tu connais un peu la programmation? Sinon est ce que tu as Excel ou une autre application du meme genre sur ta machine?

;)
0
terreur69 Messages postés 10 Date d'inscription vendredi 3 février 2012 Statut Membre Dernière intervention 25 juin 2014
3 févr. 2012 à 20:17
non je ne sais pas programmé , pour le fichiers il y en a 7 qui on environ 450 lignes chaque fichiers , je n'est pas exel , j'ai notpad++ , j'ai dit en bat car je pense que sa doit être simple a faire , mais si il y a une autre technique sur notpad/ autre éditeur de texte ou un programme , je prend !

merci
0
Effectivement, c'est assez simple à faire, mais en pas en batch. Enfin, je ne connais pas suffisament le batch pour faire ça.

Comme ce sont de petits fichiers et qu'il n'y en a que 7, un tableur serait idéal.

Si tu peux installer des applications sur ton PC, installes Open Office, c'est gratuit.

N'as-tu aucun logiciel qui exécute des macros VBA (avec Word ça mache aussi)?

Ou encore un bon vieux QBasic ou Turbo Pascal? Parce ce sans outils ça va pas être facile.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
terreur69 Messages postés 10 Date d'inscription vendredi 3 février 2012 Statut Membre Dernière intervention 25 juin 2014
Modifié par terreur69 le 3/02/2012 à 21:25
et bien quand tu ma dit excel , je suis allez tester sur le pc de mes parents , et sa fait pas se que je veux , pour te dire je ne connais rien en programmation , j'ai visual basic expresse .
0
VB Express, c'est bon, quelle version?

Mais avec excel, ça va aussi. C'est quoi qui n'a pas marché?

Dis moi pendant que je prépare une macro.
0
terreur69 Messages postés 10 Date d'inscription vendredi 3 février 2012 Statut Membre Dernière intervention 25 juin 2014
3 févr. 2012 à 21:46
version 2010 , avec excel ça me faisait tout sur une ligne , je veut garder les espaces entre

ligne1
ligne2
ligne3
ligne4

execl:

ligne1 ligne2 ligne3 ligne4

se que je veut


ligne4
ligne3
ligne2
ligne1


merci beaucoup de m'aider !
0
terreur69 Messages postés 10 Date d'inscription vendredi 3 février 2012 Statut Membre Dernière intervention 25 juin 2014
3 févr. 2012 à 22:50
ça marche nickel !!! franchement tu sais pas à quel point tu ma aider , juste pour info , je modifie tout la maps d'un jeux (gtaIV ), et ses fichier serve au chemin des trains , et il fallait les inverser , tu seras créditer pour ça , un grand merci mec !
0
Bon, ben ammuses toi bien.
Apprendre la programmation peut être ammusant aussi, et ça peut toujours servir.
;)
0
@ur3l'$ Messages postés 17 Date d'inscription samedi 4 février 2012 Statut Membre Dernière intervention 17 juin 2014 4
4 févr. 2012 à 22:03
Tu est dans quel langage ?
Si ce que tu peux faire -> compter le nombre de lignes du fichier source, et tu fais une boucle et tu met la ligne en dernier tu fichier.
Voila une boucle en gros :

taille = taille_du_fichier_source;

for(int i = 1;i <= taille; i++) {
chaine = lirePremiereLigne();
ecrireFinFichier();
}
0