package machine;

import java.io.*;

//quelques primitives d'criture  l'ecran  ou dans un fichier

public class Ecriture {   
    private static void erreur(IOException e) {
        System.out.println(e.getMessage());
	System.out.println("Erreur fatale");
	System.exit(1);
    }

    public static OutputStream ouvrir(String nomFich) {
	//dlivre un pointeur sur le fichier de nom nomFich (null si erreur)
	OutputStream f;
	try {f=new DataOutputStream(new FileOutputStream(nomFich));
	}
	catch (IOException e) {f=null;}
	return f;
    }
     
    public static void fermer(OutputStream f) {
	//fermeture d'un fichier                                          
	try {f.close();}
	catch (IOException e) {erreur(e);}
    }

     

    //criture d'un caractre                   

    public static void ecrireChar(OutputStream f,char c) {
	try {f.write(c);}
        catch(IOException e) {erreur(e);}
    }

    public static void ecrireChar(char c) {ecrireChar(System.out,c);}



    //criture d'une chane, avec ventuel passage  la ligne 
     
    public static void ecrireString(OutputStream f,String s) {
	try {for (int i=0;i<s.length();i++) f.write(s.charAt(i));}
        catch(IOException e) {erreur(e);}
    }

    public static void ecrireString(String s) {
	ecrireString(System.out,s);
    }

    public static void ecrireStringln(OutputStream f,String s) {
	ecrireString(f,s+"\r\n");
    }

    public static void ecrireStringln(String s) {
	ecrireStringln(System.out,s);
    }



    //criture d'un entier avec formatage ventuel 
    
    public static void ecrireInt(OutputStream f,int x) {
	ecrireString(f,Integer.toString(x));
    }

    public static void ecrireInt(int x) {ecrireInt(System.out,x);}
    
    public static void ecrireInt(OutputStream f,int x,int longueur) {
	String s=Integer.toString(x);
	int k=longueur-s.length();
	for (int i=0;i<k;i++) ecrireChar(f,' ');
	ecrireString(f,s);
    }

    public static void ecrireInt(int x,int longueur) {
	ecrireInt(System.out,x,longueur);
    }



    //criture d'un double avec formatage ventuel                   
  
    public static void ecrireDouble(OutputStream f,double d) {
	ecrireString(f,Double.toString(d));
    }

    public static void ecrireDouble(double d) {ecrireDouble(System.out,d);}

    public static void ecrireDouble(OutputStream f,double d,int longueur) {
	String s=Double.toString(d);
	int k=longueur-s.length();
	for (int i=0;i<k;i++) ecrireChar(f,' ');
	ecrireString(f,s);
    }

    public static void ecrireDouble(double d,int longueur) {
	ecrireDouble(System.out,d,longueur);
    }

}//class Ecriture


@@ -1,24 +1,4 @@
-package machine;%0D%0A%0D%0A
 impo
@@ -38,24 +38,25 @@
 tives d'
+%C3%A9
 criture 
  l'ecran
@@ -47,16 +47,17 @@
 criture 
+%C3%A0
  l'ecran
@@ -57,17 +57,16 @@
 l'ecran 
- 
 ou dans 
@@ -328,16 +328,17 @@
  %7B%0D%0A%09//d
+%C3%A9
 livre un
@@ -729,32 +729,33 @@
 %0A     %0D%0A%0D%0A    //
+%C3%A9
 criture d'un car
@@ -757,16 +757,17 @@
 n caract
+%C3%A8
 re      
@@ -990,32 +990,33 @@
 ;%7D%0D%0A%0D%0A%0D%0A%0D%0A    //
+%C3%A9
 criture d'une ch
@@ -1016,16 +1016,17 @@
 'une cha
+i
 ne, avec
@@ -1026,16 +1026,17 @@
 e, avec 
+%C3%A9
 ventuel 
@@ -1043,16 +1043,17 @@
 passage 
+%C3%A0
  la lign
@@ -1525,32 +1525,33 @@
  %7D%0D%0A%0D%0A%0D%0A%0D%0A    //
+%C3%A9
 criture d'un ent
@@ -1561,32 +1561,33 @@
  avec formatage 
+%C3%A9
 ventuel %0D%0A    %0D%0A
@@ -2082,16 +2082,17 @@
 %0D%0A    //
+%C3%A9
 criture 
@@ -2118,16 +2118,17 @@
 rmatage 
+%C3%A9
 ventuel 

Fix UTF-8 and pckg