IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ANT Java Discussion :

tag ant conversion format DOS --> UNIX


Sujet :

ANT Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 53
    Par défaut tag ant conversion format DOS --> UNIX
    Bonjour,

    existe il un tag ant qui permet de faire la transformation d'un fichier au format DOS vers le même fichier en format UNIX.

    Et si oui quelle en est la synthaxe.

    Merci pour votre reponse.

  2. #2
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    A ma connaissance le tag n'existe pas sous ant de base. Mais il est possible de créer toi meme des tags ou tu peux faire ce que tu veux,

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 53
    Par défaut
    Finalement après discussion avec un collègue de travail, voici ce que j'ai fait :

    J'ai ecrit mon build.xml de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0"?>
     
    <project name="OwnTaskExample" default="main"  basedir=".">
      <taskdef name="dos2unix" classname="com.montravail.atomixplus.Dos2Unix"/>
     
      <target name="main">
     
    	<dos2unix>
      		<fileset dir="D:/temporaire/johnnymnemonique" includes="**/*.txt"/>
        </dos2unix>
      </target>
    </project>

    Puis voici la classe java associée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
     
    package com.sgam.atomixplus;
     
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Vector;
     
    import org.apache.tools.ant.BuildException;
    import org.apache.tools.ant.DirectoryScanner;
    import org.apache.tools.ant.Project;
    import org.apache.tools.ant.Task;
    import org.apache.tools.ant.types.FileSet;
     
    public class Dos2Unix extends Task {
     
     
    	// *************************
    	// Déclaration des attributs
    	// *************************
    	private static final String SEPARATEUR_FICHIER = System.getProperty("file.separator");
    	private static final File FICHIER_TEMPORAIRE = new File("F:/DSI/SER/03_MDW/12_Atomix/Livraison/tmp/fichier.tmp");
    	private Vector aVecteurFichier = new Vector();
     
    	// Opération qui recupère le nom du repertoire donnée
    	// dans la balise <dos2unix><fileset> du paramètre dir
    	// et le type de fichier du paramètre includes
        public void addFileset(FileSet e_listefichier) {
        	aVecteurFichier.add(e_listefichier);
        }
     
    	// Opération qui scan tous les fichiers à partir du répertoire
        // qui a été donné en entrée
        public void execute() throws BuildException {
     
    		for (int j=0, l_nbfichier = aVecteurFichier.size() ; j < l_nbfichier; j++) {
     
    			// Déclaration des objets locaux
    			FileSet l_listefichier = (FileSet)aVecteurFichier.get(j);
    			Project l_projet = getProject();
    			DirectoryScanner l_repertoirescrute = l_listefichier.getDirectoryScanner(l_projet);
    			String l_nomrepertoire = l_listefichier.getDir(l_projet).getAbsolutePath();
    	        String[] l_tabnomfichier = l_repertoirescrute.getIncludedFiles();
     
     
    	        for(int i=0; i < l_tabnomfichier.length; i++) {
     
    	        	File l_fichier = new File(l_nomrepertoire+SEPARATEUR_FICHIER+l_tabnomfichier[i]);
                    System.out.println("Conversion de "+l_fichier);
                    try {
    					toUnix(l_fichier);
     
                    } catch (IOException e) {
    					e.printStackTrace();
    					System.err.println("La conversion de "+l_fichier+" a échoué");
    				}
                }
    		}
        }
     
        // Opération qui fait la conversion d'un fichier du format DOS au format UNIX
    	 public void toUnix(File e_fichier) throws IOException {
     
    		// Déclaration et instanciation du flux entrant et sortant ou canal
    		// de transmission vers le fichier déclaré en entrée		
    		FileReader l_fluxent = new FileReader(e_fichier);
    		FileWriter l_fluxsort = new FileWriter(FICHIER_TEMPORAIRE);
     
    		//Instanciation de l'objet mémoire tampon
    		// associée au flux
    		BufferedReader l_tamponent = new BufferedReader(l_fluxent);
     
    		String l_ligne = null;
    		boolean l_drapeau = true;
     
     
       		l_ligne = l_tamponent.readLine();
     
        	while (l_ligne != null) {
     
        		l_fluxsort.write(l_ligne+"\n");
        		l_fluxsort.flush();
        		l_ligne = l_tamponent.readLine();
        	}
     
    		// fermeture des flux et des tampons
        	l_fluxent.close();
     
    		l_tamponent.close();
    		l_fluxsort.close();
     
        	// Essai de supression de fichier
    		l_drapeau = e_fichier.delete();
     
    		if (l_drapeau == false) {
       			throw new IOException("Impossible de supprimer le fichier : "+e_fichier);
       		}
     
    		// essai de renomage du fichier temporaire
    		l_drapeau = FICHIER_TEMPORAIRE.renameTo(e_fichier);
     
    		if (l_drapeau == false) {
       			throw new IOException("Impossible de renomer le fichier : "+e_fichier);
       		}
        }
    }
    ça marche très bien.

    Merci pour votre aide.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 145

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Eclipse 3.0.1] Convertir des sources Dos en Unix
    Par Bicnic dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 22/09/2009, 16h38
  2. [Shell] Convertir format DOS vers Unix
    Par Neuromancien2 dans le forum Linux
    Réponses: 1
    Dernier message: 08/02/2008, 18h07
  3. [langage] fichier DOS et unix, retour chariot Mac unix
    Par Kinethe dans le forum Langage
    Réponses: 5
    Dernier message: 25/10/2004, 14h05
  4. convertir un nom long (win32) en format dos (8+3)
    Par kylekiller dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2002, 13h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo