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()); } }
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 }
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(""); } }
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); }