예제 #1
0
        private void Ecriture(string Texte, string Chemin, FileMode filemode, bool Encryption)
        {
            try
            {
                FileStream fs = new FileStream(Chemin, filemode, FileAccess.Write, FileShare.Read);
                if (Encryption)
                {
                    Texte = DatabaseEncryption.Encryter(Texte, m_MotDePasse);
                }
                fs.Write(Encoding.ASCII.GetBytes(Texte), 0, Encoding.ASCII.GetBytes(Texte).Length);

                fs.Dispose();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Data.ToString());
            }
        }
예제 #2
0
        private void btnCreerInventaire_Click(object sender, EventArgs e)
        {
            string StrNouvInventaire = "4\n"; //Nombre d'item dans l'inventaire

            StrNouvInventaire += "1-5\n";     //Emplacement de l'item "1" == 5
            StrNouvInventaire += "2-6\n";     //Emplacement de l'item "2" == 6
            StrNouvInventaire += "34-7\n";    //Emplacement de l'item "34" == 7
            StrNouvInventaire += "Z9-8\n";    //Emplacement de l'item "Z9" == 8
#if Encryption
            m_MotDePasse       = txtMotDePasse.Text;
            StrNouvInventaire += DatabaseEncryption.Encryter("03", m_MotDePasse) + "\n";
            StrNouvInventaire += DatabaseEncryption.Encryter("43", m_MotDePasse) + "\n";
            StrNouvInventaire += DatabaseEncryption.Encryter("12", m_MotDePasse) + "\n";
            StrNouvInventaire += DatabaseEncryption.Encryter("30", m_MotDePasse) + "\n";

            //15.42 8.94 21.70 12.24
            StrNouvInventaire += DatabaseEncryption.Encryter("15.42", m_MotDePasse) + "\n";
            StrNouvInventaire += DatabaseEncryption.Encryter("8.94", m_MotDePasse) + "\n";
            StrNouvInventaire += DatabaseEncryption.Encryter("21.70", m_MotDePasse) + "\n";
            StrNouvInventaire += DatabaseEncryption.Encryter("12.24", m_MotDePasse) + "\n";

            Ecriture(StrNouvInventaire, "Inventaire.txt", FileMode.Create, false);
#else
            StrNouvInventaire += "03\n";
            StrNouvInventaire += "43\n";
            StrNouvInventaire += "12\n";
            StrNouvInventaire += "30\n";

            //15.42 8.94 21.70 12.24
            StrNouvInventaire += "15.42\n";
            StrNouvInventaire += "8.94\n";
            StrNouvInventaire += "21.70\n";
            StrNouvInventaire += "12.24\n";

            Ecriture(StrNouvInventaire, "Inventaire.txt", FileMode.Create);
#endif

            /*int Quantite;
             * decimal prix;
             * InventaireUpdate("Z9", out Quantite, out prix);*///simple petit test
        }
예제 #3
0
        private string Lecture(string Chemin, bool Encryption)
        {
            try
            {
                FileStream fs     = new FileStream(Chemin, FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
                byte[]     buffer = new byte[fs.Length];
                fs.Read(buffer, 0, (int)fs.Length);
                string Texte = System.Text.Encoding.ASCII.GetString(buffer);

                if (Encryption)
                {
                    Texte = DatabaseEncryption.Decrypter(Texte, m_MotDePasse);
                }

                fs.Dispose();
                return(Texte);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Data.ToString());
                return("");
            }
        }
예제 #4
0
        private bool InventaireUpdate(string Item, out int Quantite, out decimal Prix)
        {
            Quantite = -1;
            Prix     = 0.0M;
            string StrQuantiteInv;
            string StrPrixInv;
            int    QuantiteInv;

#if Encryption
            string StrInventaire = Lecture("Inventaire.txt", false); //Lis l'inventaire au complet et ne la decrypte pas
#else
            string StrInventaire = Lecture("Inventaire.txt");        //Lis l'inventaire au complet et ne la decrypte pas
#endif
            string[] Inventaire = StrInventaire.Split('\n');
            int      i          = Array.FindIndex(Inventaire, element => element.StartsWith(Item, StringComparison.Ordinal)); //position (index) de l'item en inventaire (evite de devoir decrypter chaque lignes de l'inventaire pour trouver le bon item)
            if (i > 0 && i <= Int32.Parse(Inventaire[0]))                                                                     //Verifie que l'item est enregistre en inventaire
            {
                //Ecriture(DatabaseEncryption.Encryter((Int32.Parse(DatabaseEncryption.Decrypter(Lecture("inventaire.txt", false).Split('\n')[Int32.Parse(Lecture("inventaire.txt", false).Split('\n')[Array.FindIndex(Lecture("inventaire.txt", false).Split('\n'), element => element.StartsWith(Item, StringComparison.Ordinal))].Split('-').Last())], m_MotDePasse)) - 1).ToString(), m_MotDePasse), "Inventaire.txt", FileMode.Append, false);
#if Encryption
                StrQuantiteInv = DatabaseEncryption.Decrypter(Inventaire[Int32.Parse(Inventaire[i].Split('-').Last())], m_MotDePasse);
                if (StrQuantiteInv == null)
                {
                    MessageBox.Show("Mauvais mot de passe"); //Message d'erreur generique
                    return(false);
                }
                StrPrixInv = DatabaseEncryption.Decrypter(Inventaire[Int32.Parse(Inventaire[i].Split('-').Last()) + Int32.Parse(Inventaire[0])], m_MotDePasse);
#else
                StrQuantiteInv = Inventaire[Int32.Parse(Inventaire[i].Split('-').Last())];
                StrPrixInv     = Inventaire[Int32.Parse(Inventaire[i].Split('-').Last()) + Int32.Parse(Inventaire[0])];
#endif


                if (!Int32.TryParse(StrQuantiteInv, out QuantiteInv))
                {
                    MessageBox.Show("Erreur lors de la recuperation de la quantite en inventaire"); //Message d'erreur generique
                    return(false);
                }
                if (!Decimal.TryParse(StrPrixInv, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out Prix))
                {
                    MessageBox.Show("Erreur lors de la recuperation du prix en inventaire"); //Message d'erreur generique
                    return(false);
                }
            }
            else
            {
                MessageBox.Show("Item introuvable dans l'inventaire"); //Message d'erreur generique
                return(false);
            }
            QuantiteInv--;
            if (QuantiteInv < 0)
            {
                MessageBox.Show("Inventaire insuffisant");
                return(false);
            }
            Quantite = QuantiteInv;
#if Encryption
            Inventaire[Int32.Parse(Inventaire[i].Split('-').Last())] = DatabaseEncryption.Encryter(QuantiteInv.ToString(), m_MotDePasse);
#else
            Inventaire[Int32.Parse(Inventaire[i].Split('-').Last())] = QuantiteInv.ToString();
#endif

            StrInventaire = String.Join("\n", Inventaire);
#if Encryption
            Ecriture(StrInventaire, "Inventaire.txt", FileMode.Create, false);
#else
            Ecriture(StrInventaire, "Inventaire.txt", FileMode.Create);
#endif
            return(true);
        }