using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Windows.Forms;
using Helpers;
String Ma = this.M1.Text;
String Ma = this.M1.Text.CreateSublevelMask();
string pattern = "0"; int count = Regex.Matches(bcbinaire, pattern).Count; string pattern1 = "0"; int count1 = Regex.Matches(bcbinaire1, pattern1).Count; string pattern2 = "0"; int count2 = Regex.Matches(bcbinaire2, pattern2).Count; string pattern3 = "0"; int count3 = Regex.Matches(bcbinaire3, pattern3).Count;
string pattern = "0"; int count = Regex.Matches(bcbinaire, pattern).Count; int count1 = Regex.Matches(bcbinaire1, pattern).Count; int count2 = Regex.Matches(bcbinaire2, pattern).Count; int count3 = Regex.Matches(bcbinaire3, pattern).Count;
// Calcul Subnet Apres conversion d'une chaine en Byte + erreur si Chiffre incorrecte String IPa = this.IP1.Text; String Ma = this.M1.Text; Byte ip1 = Convert.ToByte(IPa); Byte m1 = Convert.ToByte(Ma); Byte subnet1 = (byte)(ip1 & m1); Sub1.Text = Convert.ToString(subnet1); String IPb = this.IP2.Text; String Mb = this.M2.Text; Byte ip2 = Convert.ToByte(IPb); Byte m2 = Convert.ToByte(Mb); Byte subnet2 = (byte)(ip2 & m2); Sub2.Text = Convert.ToString(subnet2); string IPc = this.IP3.Text; string Mc = this.M3.Text; Byte ip3 = Convert.ToByte(IPc); Byte m3 = Convert.ToByte(Mc); byte subnet3 =(byte)(ip3 & m3); Sub3.Text = Convert.ToString(subnet3); string IPd = this.IP4.Text; string Md = this.M4.Text; Byte ip4 = Convert.ToByte(IPd); Byte m4 = Convert.ToByte(Md); Byte subnet4 =(byte)(ip4 & m4); Sub4.Text = Convert.ToString(subnet4); // Calcule BroadCastApres avoir inverser le masque int mbc = Convert.ToInt32(Ma); int mbc1 = Convert.ToInt32(Mb); int mbc2 = Convert.ToInt32(Mc); int mbc3 = Convert.ToInt32(Md); string bcbinaire = Convert.ToString(mbc, 2).PadLeft(8, '0'); string bcbinaire1 = Convert.ToString(mbc1, 2).PadLeft(8, '0'); string bcbinaire2 = Convert.ToString(mbc2, 2).PadLeft(8, '0'); string bcbinaire3 = Convert.ToString(mbc3, 2).PadLeft(8, '0'); byte reverse_mbc = Convert.ToByte(new string(Convert.ToString(mbc, 2).PadLeft(8, '0').Reverse().ToArray()), 2); byte reverse_mbc1 = Convert.ToByte(new string(Convert.ToString(mbc1, 2).PadLeft(8, '0').Reverse().ToArray()), 2); byte reverse_mbc2 = Convert.ToByte(new string(Convert.ToString(mbc2, 2).PadLeft(8, '0').Reverse().ToArray()), 2); byte reverse_mbc3 = Convert.ToByte(new string(Convert.ToString(mbc3, 2).PadLeft(8, '0').Reverse().ToArray()), 2); Byte Broad1 (byte)(ip1 | ~mbc); bc1.Text Convert.ToString(Broad1); Byte Broad2 (byte)(ip2 | ~mbc1); bc2.Text Convert.ToString(Broad2); Byte Broad3 (byte)(ip3 | ~mbc2); bc3.Text Convert.ToString(Broad3); Byte Broad4 (byte)(ip4 | ~mbc3); bc4.Text Convert.ToString(Broad4); //Calcul premier address dispo pad1.Text Sub1.Text; pad2.Text Sub2.Text; pad3.Text = Sub3.Text; int padcalcul = Convert.ToInt32(subnet4); int padcalcul1 = padcalcul + 1; string returnpad = Convert.ToString(padcalcul1); pad4.Text = returnpad; //Calcul derniere adress dispo dad1.Text bc1.Text; dad2.Text bc2.Text; dad3.Text = bc3.Text; int dadcalcul = Convert.ToInt32(Broad4); int dadcalcul1 = dadcalcul - 1; string returndad = Convert.ToString(dadcalcul1); dad4.Text = returndad; //compte le nombre de 0 dans le masque via une Expression Reguliere de Type Regular(string , string) string pattern = "0"; int count = Regex.Matches(bcbinaire, pattern).Count; string pattern1 = "0"; int count1 = Regex.Matches(bcbinaire1, pattern1).Count; string pattern2 = "0"; int count2 = Regex.Matches(bcbinaire2, pattern2).Count; string pattern3 = "0"; int count3 = Regex.Matches(bcbinaire3, pattern3).Count; int addnb0 = count + count1 + count2 + count3; int nbreseau = (int)Math.Pow(2, addnb0); nbr.Text = Convert.ToString(nbreseau); int nbreseau1 = nbreseau - 2; nbru.Text = Convert.ToString(nbreseau1);
private void ConvertToSubnet(string ip_addr, string mask, out byte ip, out byte m, out byte subnet) { ip = Convert.ToByte(ip_addr); m = Convert.ToByte(mask.CreateSublevelMask()); subnet = (byte)(ip & m); } private void ComputeBroadcast(byte ip, string mask, out byte broad, out string bcbBinaire) { int mbc = Convert.ToInt32(mask); bcbBinaire = Convert.ToString(mbc, 2).PadLeft(8, '0'); byte reverseMbc = Convert.ToByte(Convert.ToString(mbc, 2).PadLeft(8, '0').Reverse().ToArray(), 2); broad = (byte)(ip | ~mbc); } private int Count(string bcbBinaire, string pattern) { return Regex.Matches(bcbBinaire, pattern).Count; } private void Button_Click(object sender, EventArgs e) { byte ip; byte m; byte subnet; byte broad; string bcbBinaire; int totalCount = 0; ConvertToSubnet(IP1.Text, M1.Text, out ip, out m, out subnet); ComputeBroadcast(ip, M1.Text, out broad, out bcbBinaire); bc1.Text = broad.ToString(); Sub1.Text = subnet.ToString(); totalCount += Count(bcbBinaire, "0"); ConvertToSubnet(IP2.Text, M2.Text, out ip, out m, out subnet); ComputeBroadcast(ip, M2.Text, out broad, out bcbBinaire); bc2.Text = broad.ToString(); Sub2.Text = subnet.ToString(); totalCount += Count(bcbBinaire, "0"); ConvertToSubnet(IP3.Text, M3.Text, out ip, out m, out subnet); ComputeBroadcast(ip, M3.Text, out broad, out bcbBinaire); bc2.Text = broad.ToString(); Sub3.Text = subnet.ToString(); totalCount += Count(bcbBinaire, "0"); ConvertToSubnet(IP4.Text, M4.Text, out ip, out m, out subnet); ComputeBroadcast(ip, M4.Text, out broad, out bcbBinaire); bc2.Text = broad.ToString(); Sub4.Text = subnet.ToString(); totalCount += Count(bcbBinaire, "0"); //Calcul premier address dispo pad1.Text = Sub1.Text; pad2.Text = Sub2.Text; pad3.Text = Sub3.Text; int padcalcul = Convert.ToInt32(subnet); padcalcul++; pad4.Text = padcalcul.ToString(); //Calcul derniere adress dispo dad1.Text = bc1.Text; dad2.Text = bc2.Text; dad3.Text = bc3.Text; int dadcalcul = Convert.ToInt32(broad); dadcalcul--; dad4.Text = dadcalcul1.ToString(); int nbReseau = (int)Math.Pow(2, totalCount); nbr.Text = nbReseau.ToString(); nbReseau -= 2; nbru.Text = nbReseau.ToString(); }
static public string CreateSublevelMask(this string text) { byte num; byte.TryParse(text, out num); StringBuilder result = new StringBuilder(); for(byte i = 0; i < num; i++) result.Append("1"); for(byte i = num; i < 32; ++i) result.Append("0"); return result.ToString(); }
using Helpers; private string mask; // Ensuite tu enregistre l'évent TextChanged de ton textbox // et dans la méthode créée, tu fais ceci : public void OnTextChanged(object sender, TextChangedEventArgs) { mask = ((TextBox)sender).Text.CreateSublevelMask(); }
namespace Helpers { static public class StringExtensions { static public string CreateSublevelMask(this string text) { byte num; byte.TryParse(text, out num); StringBuilder result = new StringBuilder(); for(byte i = 0; i < num; i++) result.Append("1"); for(byte i = num; i < 32; ++i) result.Append("0"); return result.ToString(); } } }
using Helpers; public partial class Form1 : Form { private string mask; // Code par défaut // Cherche le code qui correspond à l'évènement TextChanged, ça doit être // quelque chose comme : private void textbox1_TextChanged(object sender, TextChangedEventArgs e) { // ici tu mets à jour ton mask mask = txtbox1.Text.CreateSublevelMask(); } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionstring x = String.Empty; x = x.PadRight(24, '1'); // PasLeft