modifier un fichier texte automatiquement - Divers - Programmation
Marsh Posté le 26-06-2023 à 11:12:21
Si tu es sous linux:
https://www.cyberciti.biz/faq/how-t [...] nix-shell/
Donc:
sed 's/"//g' input.file > output.file
Et pour la suppression:
sed '1d' input.file
Sous windows:
more +1 input.file > output.file
Pour la suppression de la premiere ligne.
Et pour le remplacement ca semble plus compliqué mais possible:
https://stackoverflow.com/questions [...] rogramming
Marsh Posté le 26-06-2023 à 11:14:55
C'est pour une utilisation sous windows.
Par contre je ne comprend absolument pas ce que tu veux m'expliquer avec ton "more +1 input.file > output.file"
En tout cas merci pour ta réponse
Marsh Posté le 26-06-2023 à 11:23:11
C'est ce que tu dois mettre en bash pour faire "enlever la premiere ligne" pour windows !
Donc more +1 input.txt > output.txt
Output sera le meme fichier que input sans la premiere ligne.
Marsh Posté le 05-07-2023 à 11:50:42
Tu y es arrivé ? Je crois pouvoir te le faire en java si besoin (faudra installer le dernier java jdk). C'est des gros fichiers ? Et beaucoup de fichiers ?
Marsh Posté le 05-07-2023 à 11:56:15
Alors pour le moment non. J'ai fait quelques tests mais je ne suis pas très doué en programmation donc pas concluant. J'ai commencé a regarder quelques tutos pour voir comment écrire le début du fichier.
Alors non ce n'est pas de gros fichiers a mon avis les plus gros auront dans les 100 -200 lignes et le volumes serait de 5-10 fichiers par semaine
Marsh Posté le 05-07-2023 à 12:34:30
gortex3D a écrit : En gros je supprime la première ligne systématiquement, je supprime tout les " et je dois ajouter le numéro de la ligne avec un virgule au début de chaque coordonnée. |
Tu as ça a faire dessus, rien d'autre ? Que je structure mon programme correctement.
Marsh Posté le 05-07-2023 à 14:16:06
normalement oui. Dans mon premier message le premier contenu est vraiment ce que j'ai de mon appareil de mesure et le deuxième c'est après modification manuel. les numéros + , ont été mis à la main. les " ont été supprimé sous blocnote avec un remplace et la première ligne à la main également. Ce sont les seuls modifications qui ont été faites.
Merci beaucoup pour ton aide
Marsh Posté le 05-07-2023 à 14:47:24
Bon j'ai presque fini, j'obtiens ça c'est bon ? (faut que je vire la ligne vide a la fin)
T'as même une interface graphique
Code :
|
Marsh Posté le 05-07-2023 à 15:04:47
Ok je viens de voir ton message. Je fignole un peu et je te donne l'executable .jar
Marsh Posté le 05-07-2023 à 15:29:48
Voici : https://drive.google.com/file/d/17s [...] sp=sharing
Fais des essais pour contrôler d'abord !
Installe préalablement le JDK : https://download.oracle.com/java/20 [...] 64_bin.exe
Marsh Posté le 05-07-2023 à 21:28:25
ReplyMarsh Posté le 06-07-2023 à 09:33:08
C'est super sympa sur le principe, mais je trouve que c'est pas trop le principe du forum, surtout si tu ne partages pas les sources du bousin. Ne serait-ce que par transparence pour celui qui va lancer ça sans te connaître !
Dans ton cas t'es un ancien du forum donc on n'a pas trop à s'inquiéter de tes bonnes intentions, mais j'imagine la boucherie si on commençait à avoir un débarquement de gens qui se mettaient à poster des exécutables susceptible de contenir tout et n'importe quoi soit disant pour "aider les gens" alors je préfère aborder la question
Marsh Posté le 06-07-2023 à 09:46:45
Oui j'y ai pensé, mettre le code source mais dans l'absolu j'aurais pu faire un .jar vicieux et donner un code source tout propre...
Mais je veux bien donner le code source bien sûr. Comment je fais TotalRecall pour le mettre a dispo ?
Marsh Posté le 06-07-2023 à 09:52:35
Oui c'est clair, mais c'est toujours un premier pas dans la bonne direction, et au moins rien n'empêche celui qui demande de recompiler sa propre version s'il le souhaite (partant du principe qu'on est sur la catégorie Programmation d'un forum informatique c'est pas délirant).
Bah pourquoi pas en zip sur le même drive (si tu veux faire au plus simple pour toi) ?
Marsh Posté le 06-07-2023 à 10:03:21
D'accord, merci totalRecall
Le zip : https://drive.google.com/file/d/1s3 [...] sp=sharing
(@gortex : faut aller dans src puis dérouler jusque trouver Gortex3D.java pour voir la beauté de mon code (tu peux l'ouvrir avec un blocnote même si les IDE c'est 1000 fois mieux))
Marsh Posté le 07-07-2023 à 16:03:54
Ah yes, merci, je le dl de suite. Je ne connais pas java mais je vais aller voir le code.
Malheureusement je n'ai pas eu le temps de faire de test aujourd'hui. des petits soucis qui font que j'ai du quitter mon poste de travail.
Marsh Posté le 09-07-2023 à 14:51:03
C'est tout à fait possible.
En tant que feignasse qui fait du PowerShell 3 fois par an, j'ai demandé à un ami virtuel :
|
Il a répondu :
Code :
|
powershell .\transform-file.ps1 -filename "chemin_vers_le_fichier\mon_fichier.txt" Assurez-vous de remplacer "chemin_vers_le_fichier\mon_fichier.txt" par le chemin d'accès réel de votre fichier à transformer. Le script lira le contenu du fichier, supprimera les guillemets et ajoutera le numéro de ligne devant chaque ligne. Le fichier transformé sera enregistré avec le même nom, suivi du suffixe "_transformé". |
J'ai oublié de lui dire sous quelle forme on veut le numéro de ligne devant, mais l'idée est là (non j'ai pas testé )
Marsh Posté le 09-07-2023 à 20:26:47
Ah pas mal, il manque juste l'effacement de la 1ère ligne
Quel est cet ami virtuel ?
Marsh Posté le 09-07-2023 à 21:59:37
ChatGPT ! Si tu veux, tu peux reprendre mon prompt en y ajoutant les ajustements qu'il te faut, et lui redemander et créant un compte gratuit .
Mais pour l'histoire de la ligne à zapper, il doit suffire de modifier le for pour compter à partir de 1 au lieu de 0.
Marsh Posté le 13-07-2023 à 15:11:46
gortex3D a écrit : Ah yes, merci, je le dl de suite. Je ne connais pas java mais je vais aller voir le code. |
Alors il marche bien mon programme ?
Marsh Posté le 14-07-2023 à 14:56:58
Un one-liner linux suffit :
cat {nom-du-fichier} | tr -d '"XYZ:m' | tr ',' ' ' | grep '\S'
(le code de joce bouffe les blancs, mais il y en a un entre les deux ' à la fin de tr ',' ' '
A+,
Marsh Posté le 14-07-2023 à 14:58:28
Facile, au niveau des prérequis il faut juste prévoir quelques mois pour migrer sous Linux avant de pouvoir utiliser la ligne quoi
edit : bon je trolle, je sais qu'on peut installer un shell linux sous Windows
edit² : écrasage du gilou
Marsh Posté le 14-07-2023 à 15:01:27
TotalRecall a écrit : Facile, au niveau des prérequis il faut prévoir avant quelques mois pour migrer sous Linux quoi |
Tu installes (comme tout le monde) MSYS2 en ucrt64 et ça roule.
et sinon, sous powershell, tu fais wsl tr
A+,
Marsh Posté le 14-07-2023 à 15:04:41
ReplyMarsh Posté le 14-07-2023 à 15:06:30
TotalRecall a écrit : Pourquoi tu as édité mon post |
Par erreur, je croyais avoir cliqué sur répondre/citer
Normalement, je l'ai rétabli dans l'état ou je l'avais trouvé.
A+,
Marsh Posté le 14-07-2023 à 15:08:38
En fait non, du coup tu avais écrasé mon propre édit . Pas grave j'ai remis.
Mais je comprends l'accident
Marsh Posté le 14-07-2023 à 15:14:18
D'ailleurs, je n'ai testé le one-liner que avec MSYS2
(je l'utilise pour faire tourner des scripts bash historiques (et pourris) de milliers de lignes que je dois maintenir sur des VMs windows au taff )
A+,
Marsh Posté le 14-07-2023 à 15:21:19
gilou a écrit : et sinon, sous powershell, tu fais wsl tr |
C'est à dire ? Tu pourrais donner le code complet pour Powershell ?
Marsh Posté le 14-07-2023 à 15:35:41
Je fais pas de powershell, mais je peux te répondre avec une commande CMD :
Si tu as installé wsl sur ton windows,
type {nom-du-fichier} | wsl tr -d '"XYZ:m' | tr ',' ' ' | grep '\S'
fait le taff.
(et wsl cat {nom-du-fichier} | wsl tr -d '"XYZ:m' | tr ',' ' ' | grep '\S' aussi)
A+,
Marsh Posté le 14-07-2023 à 16:21:16
C'est bien la peine de faire du powershell pour lancer du linux dedans
Marsh Posté le 14-07-2023 à 17:39:37
C'est bien pour cela que j'avais mis un smiley "c'est, euh, renversant"
A+,
Marsh Posté le 26-06-2023 à 09:31:15
Bonjour tout le monde
Voila j'ai un appareil de mesure qui me créé un fichier de coordonnée sous cette forme :
Et mon logiciel a besoin que le fichier soit sous ce format :
En gros je supprime la première ligne systématiquement, je supprime tout les " et je dois ajouter le numéro de la ligne avec un virgule au début de chaque coordonnée.
Est ce que vous auriez une solution? Un fichier .bat ? le problème c'est que mon fichier change de nom à chaque fois. Le nombre de ligne est inconnue.
Merci d'avance pour vos idées.
---------------
Mon feedback