supprimer premier et dernier caractère d'un fichier

supprimer premier et dernier caractère d'un fichier - Shell/Batch - Programmation

Marsh Posté le 25-05-2006 à 18:45:44    

hello
 
j'aurais juste besoin de savoir comment supprimer le premier caractère et le dernier d'un fichier .txt
 
peutetre avec UnxUtils ?
 
merci d'avance ;)

Reply

Marsh Posté le 25-05-2006 à 18:45:44   

Reply

Marsh Posté le 25-05-2006 à 19:34:06    

Capt1TaRace a écrit :

hello
 
j'aurais juste besoin de savoir comment supprimer le premier caractère et le dernier d'un fichier .txt
 
peutetre avec UnxUtils ?
 
merci d'avance ;)


 
Windows ou Unix ?
Bon, je présume qu'il s'agit de "Windows" car tu parles de ".txt" et on trouve en général ce genre de fichiers sous Windows
 
T'as un compilateur C présent sur ta machine ? Parce qu'en batch je ne vois pas trop...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 25-05-2006 à 19:48:30    

ouais c'est sous windows.
j'ai effectivement un compilateur C mais j'y connais vraiment pas grand chose là dedans.
enfin j'imagine que la source pour faire ça doit pas etre enorme si ? :p
merci d'avance pour ton aide

Reply

Marsh Posté le 26-05-2006 à 01:57:28    

Capt1TaRace a écrit :

ouais c'est sous windows.
j'ai effectivement un compilateur C mais j'y connais vraiment pas grand chose là dedans.
enfin j'imagine que la source pour faire ça doit pas etre enorme si ? :p
merci d'avance pour ton aide


 
Bon, un truc grossier mais qui devrait fonctionner

Code :
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. int main(int argc, char *argv[])
  4. {
  5.      FILE *fpIN;
  6.      FILE *fpOUT;
  7.      int c;
  8.      off_t len;    // Si ça compile pas, remplace "off_t" par "unsigned long"
  9.      // Ouverture fichiers
  10.      fpIN=fopen(argv[1], "r" );
  11.      fpOUT=fopen(argv[2], "w" );
  12.      // On saute le premier caractère
  13.      fgetc(fpIN);
  14.      // On lit tous les caractères dans in qu'on écrit dans out
  15.      len=0;
  16.      while ((c=fgetc(fpIN)) != EOF)
  17.      {
  18.          fputc(c, fpOUT);
  19.          len++;
  20.      }
  21.      // Fermeture
  22.      fclose(fpIN);
  23.      fclose(fpOUT);
  24.      // On a tout écrit (même le dernier caractère en trop) - On tronque
  25.      truncate(argv[2], len - 1);
  26.      return 0;
  27. }


 
Tu lances le pgm en lui passant ton fichier, et un autre nom. Il te créera "autre nom" à partir du fichier mais en enlevant les 2 caractères des extrémités
 
Bon, j'ai pas fait de contrôle (vérification des fopen, vérification que ton pgm a bien 2 noms en paramètres, etc). De plus, si je devais optimiser, je regarderais d'abord la taille du fichier et je ne lirais ni n'écrirais le dernier carac... mais là je suis un peu fatigué...


Message édité par Sve@r le 26-05-2006 à 02:02:08

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed