yarpal
Messages postés2Date d'inscriptionlundi 20 octobre 2008StatutMembreDernière intervention25 novembre 2009
-
25 nov. 2009 à 17:03
yarpal
Messages postés2Date d'inscriptionlundi 20 octobre 2008StatutMembreDernière intervention25 novembre 2009
-
25 nov. 2009 à 17:14
Bonjour à tous,
Ci dessous la Classe que j'ai écrit. Le but est d'extraire certains champs d'un grand tableau sachant qu'un des champs doit se retrouver dans deux fichiers différents. Je ne comprends pas pourquoi le if imbriqué celui qui duplique le champ dans un autre fichier ne fonctionne que partiellement. Il manque des lignes dans le fichier destination d'autant que sur la sortie console d'Eclipse tout semble correct.
J'ai beau chercher je ne voit pas où est mon erreur, un peu d'aide serait bienvenue.
Merci à vous,
Yal
// Classe de nettoyage on ne garde que les colonnes significatives, on crée aussi le fichiers des codes ISIN pour téléchargement des données intraday
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.StringTokenizer;
public class ListeEuronext {
public ListeEuronext(){
String s = File.separator;
Date dateFormatee = new Date();
SimpleDateFormat formatDate = new SimpleDateFormat("yyMMdd");
String date = formatDate.format(dateFormatee);
FileReader lire = null;
BufferedReader tamponIn = null;
File euroListe = new File("d:"+s+"Bourse"+s+"Archives"+s+"InfoSocietes"+s+"ListeEuronext-"+date+".txt");//fichier de sortie des données sociétées
FileWriter ecrireEuroListe = null;
String fichierCodes = "d:"+s+"Bourse"+s+"Programmes"+s+"Temp"+s+"Codes.txt";// indique le chemin du fichier des codes ISIN
try{
FileWriter fw = new FileWriter(fichierCodes,true);
ecrireEuroListe = new FileWriter(euroListe);
lire = new FileReader("d:"+s+"Bourse"+s+"Programmes"+s+"Temp"+s+"ListeEuronextBrute.txt");
tamponIn = new BufferedReader(lire);
int nbLignes = 0;
int control = 0;
while(true){
String ligne = tamponIn.readLine();
nbLignes += 1;
if(ligne == null) break;
if(nbLignes > 4){
int indexToken = 0;
StringTokenizer st = new StringTokenizer(ligne, ";");
StringBuffer newLigne = new StringBuffer();
while(st.hasMoreTokens()){
indexToken +=1;
if(indexToken > 12) break;
if(indexToken < 6 || indexToken == 12){
String champ = st.nextToken()+";";
champ = champ.replace(",","");
newLigne.append(champ);
// duplique le champ dans un autre fichier
if(indexToken == 2){
control++;
String code = champ.replace(";","\r\n");// remplace le ";" de la fin
String sortieCode = control+" -"+code;
fw.write(sortieCode);
System.out.println(control+" -"+code);
}
}
else st.nextToken();
}
newLigne.deleteCharAt(newLigne.length()-1);
String sortie = newLigne.toString();
ecrireEuroListe.write(sortie+"\r\n");
}
}
}
catch(IOException exception){
exception.printStackTrace();
}
finally{
try{
ecrireEuroListe.flush();
tamponIn.close();
ecrireEuroListe.close();
File supFichierSource = new File("d:"+s+"Bourse"+s+"Programmes"+s+"Temp"+s+"ListeEuronextBrute.txt");
supFichierSource.delete();
}
catch(IOException exception1){
exception1.printStackTrace();
}
}
}
}