Пример #1
0
 static void TraduireBinaire(DonneesBourse curDate, BinaryWriter writer)
 {
     // On va convertir la ligne courante ici l'objet curDate courant en octets dans un fichier de données
     writer.Write(Convert.ToSingle(curDate.DateConvertie));
     writer.Write(curDate.Ouverture);
     writer.Write(curDate.Eleve);
     writer.Write(curDate.Faible);
     writer.Write(curDate.Cloture);
     writer.Write(curDate.ClotureAjuste);
     writer.Write(curDate.Volume);
 }
Пример #2
0
        static void ConvertirLigne(string dbLine)
        // Convertir la ligne courante en objet DonneesBourses
        {
            string[] tokensNonVerifies = dbLine.Trim(' ').Split(charsSeparateur);
            int      cptTokensVerif    = 0;

            if ((tokensNonVerifies[3] == "-") && (tokensNonVerifies[4] == "-") && (tokensNonVerifies[5] == "-") && (tokensNonVerifies[6] == "-") &&
                (tokensNonVerifies[7] == "-") && (tokensNonVerifies[8] == "-"))
            {
                //Console.WriteLine("Jour férié");
            }
            else
            {
                string[] tokensVerifies = new string[9];

                for (int i = 0; i < tokensNonVerifies.Length; i++) // Analyse du tableau de tokens non vérifiés et non analysés
                {
                    if (tokensNonVerifies[i] != "")
                    {
                        tokensVerifies[cptTokensVerif] = tokensNonVerifies[i]; // On vient stocker le token qui vient d'être analysé dans le tableau des tokens vérifié

                        switch (tokensVerifies[1])                             // On compare le nom du mois pour lui assigner un nombre correspondant au mois
                        {
                        case "janv.":
                            tokensVerifies[1] = "01";
                            break;

                        case "févr.":
                            tokensVerifies[1] = "02";
                            break;

                        case "mars":
                            tokensVerifies[1] = "03";
                            break;

                        case "avr.":
                            tokensVerifies[1] = "04";
                            break;

                        case "mai":
                            tokensVerifies[1] = "05";
                            break;

                        case "juin":
                            tokensVerifies[1] = "06";
                            break;

                        case "juil.":
                            tokensVerifies[1] = "07";
                            break;

                        case "août":
                            tokensVerifies[1] = "08";
                            break;

                        case "sept.":
                            tokensVerifies[1] = "09";
                            break;

                        case "oct.":
                            tokensVerifies[1] = "10";
                            break;

                        case "nov.":
                            tokensVerifies[1] = "11";
                            break;

                        case "déc.":
                            tokensVerifies[1] = "12";
                            break;
                        }

                        if (tokensVerifies[8] == "-")
                        {
                            tokensVerifies[8] = "-1";
                        }                                                           // Si on ne connait pas le volume on met -1

                        //Console.WriteLine(tokensVerifies[cptTokensVerif] + " - " + cptTokensVerif); // Affichage tableau tokens triés (analyés) de chaque lignes
                        cptTokensVerif++;
                    }
                } // Fin traitement des tokens non vérifiés

                //Console.WriteLine("avant trad" + tokensVerifies[8]);

                float   Date   = 0;
                float[] result = new float[9];

                for (int y = 0; y < tokensVerifies.Length; y++) // Pour chaque case du tableau de token
                {
                    result[y] = Convert.ToSingle(tokensVerifies[y]);
                }

                DoEncodeDate((int)result[2], (int)result[1], (int)result[0], ref Date); // Encodage

                DoDecodeDate((int)Date, ref Date);                                      // Decodage

                //Console.WriteLine("");

                //Console.WriteLine(result[8]);

                DonneesBourse curDate = new DonneesBourse
                {
                    DateConvertie = Date,
                    Ouverture     = result[3],
                    Eleve         = result[4],
                    Faible        = result[5],
                    Cloture       = result[6],
                    ClotureAjuste = result[7],
                    Volume        = result[8]
                };

                FileStream   fsBinary = File.Open(dataBinaryFilePath, FileMode.Append);
                BinaryWriter writer   = new BinaryWriter(fsBinary);

                TraduireBinaire(curDate, writer); // On envoie l'objet writer soit le fichier binaire sur lequel on va écrire

                fsBinary.Close();
                writer.Close();
            }
        }