diff --git a/BaseConverter/Form1.Designer.cs b/BaseConverter/Form1.Designer.cs index 85cb968..6b10f86 100644 --- a/BaseConverter/Form1.Designer.cs +++ b/BaseConverter/Form1.Designer.cs @@ -65,11 +65,21 @@ namespace WindowsFormsApplication1 this.octalTextBox = new System.Windows.Forms.TextBox(); this.autoCompute = new System.Windows.Forms.CheckBox(); this.autoComputeToolTip = new System.Windows.Forms.ToolTip(this.components); + this.paddingToggle = new System.Windows.Forms.CheckBox(); + this.groupBox5 = new System.Windows.Forms.GroupBox(); + this.paddingOffsetTextBox = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.groupBox6 = new System.Windows.Forms.GroupBox(); + this.label2 = new System.Windows.Forms.Label(); + this.spacingOffsetTextBox = new System.Windows.Forms.TextBox(); + this.spacingToggle = new System.Windows.Forms.CheckBox(); this.groupBox1.SuspendLayout(); this.binaryGroupBox.SuspendLayout(); this.groupBox2.SuspendLayout(); this.groupBox3.SuspendLayout(); this.groupBox4.SuspendLayout(); + this.groupBox5.SuspendLayout(); + this.groupBox6.SuspendLayout(); this.SuspendLayout(); // // computeButton @@ -256,13 +266,100 @@ namespace WindowsFormsApplication1 // autoComputeToolTip // this.autoComputeToolTip.IsBalloon = true; - //this.autoComputeToolTip.Popup += new System.Windows.Forms.PopupEventHandler(this.autoComputeToolTip_Popup); + // + // paddingToggle + // + this.paddingToggle.AutoSize = true; + this.paddingToggle.Location = new System.Drawing.Point(6, 19); + this.paddingToggle.Name = "paddingToggle"; + this.paddingToggle.Size = new System.Drawing.Size(81, 17); + this.paddingToggle.TabIndex = 9; + this.paddingToggle.Text = "Pad Zeros?"; + this.paddingToggle.UseVisualStyleBackColor = true; + this.paddingToggle.CheckedChanged += new System.EventHandler(this.paddingToggle_CheckedChanged); + // + // groupBox5 + // + this.groupBox5.Controls.Add(this.label1); + this.groupBox5.Controls.Add(this.paddingOffsetTextBox); + this.groupBox5.Controls.Add(this.paddingToggle); + this.groupBox5.Location = new System.Drawing.Point(295, 13); + this.groupBox5.Name = "groupBox5"; + this.groupBox5.Size = new System.Drawing.Size(89, 88); + this.groupBox5.TabIndex = 10; + this.groupBox5.TabStop = false; + this.groupBox5.Text = "Padding"; + // + // paddingOffsetTextBox + // + this.paddingOffsetTextBox.Location = new System.Drawing.Point(7, 59); + this.paddingOffsetTextBox.Name = "paddingOffsetTextBox"; + this.paddingOffsetTextBox.ReadOnly = true; + this.paddingOffsetTextBox.Size = new System.Drawing.Size(76, 20); + this.paddingOffsetTextBox.TabIndex = 10; + this.paddingOffsetTextBox.Text = "8"; + this.paddingOffsetTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(7, 39); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(76, 14); + this.label1.TabIndex = 11; + this.label1.Text = "Padding offset"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // groupBox6 + // + this.groupBox6.Controls.Add(this.label2); + this.groupBox6.Controls.Add(this.spacingOffsetTextBox); + this.groupBox6.Controls.Add(this.spacingToggle); + this.groupBox6.Location = new System.Drawing.Point(295, 107); + this.groupBox6.Name = "groupBox6"; + this.groupBox6.Size = new System.Drawing.Size(89, 88); + this.groupBox6.TabIndex = 12; + this.groupBox6.TabStop = false; + this.groupBox6.Text = "Spacing"; + // + // label2 + // + this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Location = new System.Drawing.Point(7, 39); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(76, 14); + this.label2.TabIndex = 11; + this.label2.Text = "Spacing Offset"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // spacingOffsetTextBox + // + this.spacingOffsetTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.spacingOffsetTextBox.Location = new System.Drawing.Point(7, 59); + this.spacingOffsetTextBox.Name = "spacingOffsetTextBox"; + this.spacingOffsetTextBox.ReadOnly = true; + this.spacingOffsetTextBox.Size = new System.Drawing.Size(76, 20); + this.spacingOffsetTextBox.TabIndex = 10; + this.spacingOffsetTextBox.Text = "4"; + this.spacingOffsetTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // spacingToggle + // + this.spacingToggle.AutoSize = true; + this.spacingToggle.Location = new System.Drawing.Point(6, 19); + this.spacingToggle.Name = "spacingToggle"; + this.spacingToggle.Size = new System.Drawing.Size(71, 17); + this.spacingToggle.TabIndex = 9; + this.spacingToggle.Text = "Spacing?"; + this.spacingToggle.UseVisualStyleBackColor = true; + this.spacingToggle.CheckedChanged += new System.EventHandler(this.spacingToggle_CheckedChanged); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(300, 364); + this.ClientSize = new System.Drawing.Size(396, 364); + this.Controls.Add(this.groupBox6); + this.Controls.Add(this.groupBox5); this.Controls.Add(this.autoCompute); this.Controls.Add(this.groupBox4); this.Controls.Add(this.groupBox3); @@ -284,6 +381,10 @@ namespace WindowsFormsApplication1 this.groupBox3.PerformLayout(); this.groupBox4.ResumeLayout(false); this.groupBox4.PerformLayout(); + this.groupBox5.ResumeLayout(false); + this.groupBox5.PerformLayout(); + this.groupBox6.ResumeLayout(false); + this.groupBox6.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -309,6 +410,14 @@ namespace WindowsFormsApplication1 private System.Windows.Forms.TextBox octalTextBox; private System.Windows.Forms.CheckBox autoCompute; private System.Windows.Forms.ToolTip autoComputeToolTip; + private System.Windows.Forms.CheckBox paddingToggle; + private System.Windows.Forms.GroupBox groupBox5; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox paddingOffsetTextBox; + private System.Windows.Forms.GroupBox groupBox6; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox spacingOffsetTextBox; + private System.Windows.Forms.CheckBox spacingToggle; } } diff --git a/BaseConverter/Form1.cs b/BaseConverter/Form1.cs index eb8f1dd..a50c49b 100644 --- a/BaseConverter/Form1.cs +++ b/BaseConverter/Form1.cs @@ -41,13 +41,21 @@ namespace WindowsFormsApplication1 { // Define variables long decimalNum = 0, hexNum = 0, binNum = 0, octalNum = 0; + int paddingOffset = 0,spacingOffset = 0, i = 0; try { // Extract data from text boxes. decimalNum = long.Parse(decimalTextBox.Text); hexNum = Convert.ToInt64(hexTextBox.Text, 16); + // Remove spacing from binaryTextBox before parsing it + if (spacingToggle.Checked) + { + binaryTextBox.Text = binaryTextBox.Text.Replace(" ", ""); + } binNum = Convert.ToInt64(binaryTextBox.Text, 2); octalNum = Convert.ToInt64(octalTextBox.Text, 8); + paddingOffset = int.Parse(paddingOffsetTextBox.Text); + spacingOffset = int.Parse(spacingOffsetTextBox.Text); } catch (Exception Ex) { @@ -94,12 +102,54 @@ namespace WindowsFormsApplication1 currentFocus("binaryTextBox"); } // Print output - decimalTextBox.Text = decimalNum.ToString(); + if (paddingToggle.Checked) // Padding: Add Zeros to the beginning of the string + { + string binaryString = Convert.ToString(binNum, 2); // Define string to offset + int binarySize = binaryString.Length; //count the length of the string. + + if (paddingOffset > binarySize) + { // Is the decimal offset larger than the size of ths string? + while (i != (paddingOffset - binarySize)) + { + binaryString = "0" + binaryString; + i++; + } + } + binaryTextBox.Text = binaryString; + } + else + { + binaryTextBox.Text = Convert.ToString(binNum, 2); + } + try + { + if (spacingToggle.Checked) + { + string binaryString = binaryTextBox.Text; // Define string to offset + int binarySize = binaryString.Length; //count the length of the string. + i = binarySize; + var builder = new StringBuilder(binaryString); // String builder + while (i != 0) + { + if (i % spacingOffset == 0) // If i mod spacingOffset equals zero, append a space to the offset specified by i. + { + builder.Insert(i, " "); + } + i--; + } + binaryTextBox.Text = builder.ToString(); + builder = null; // null out builder when done + //binaryTextBox.Text = binaryString; + } + } catch (Exception Ex) { + MessageBox.Show("Divide by zero"); + } hexTextBox.Text = hexNum.ToString("X"); - binaryTextBox.Text = Convert.ToString(binNum, 2); octalTextBox.Text = Convert.ToString(octalNum, 8); + decimalTextBox.Text = decimalNum.ToString(); } - private void currentFocus(string focusOn) { + private void currentFocus(string focusOn) + { switch (focusOn) { case "binaryTextBox": @@ -197,5 +247,29 @@ namespace WindowsFormsApplication1 if (autoCompute.Checked) compute(); } + + private void paddingToggle_CheckedChanged(object sender, EventArgs e) + { + if (paddingToggle.Checked) + { + paddingOffsetTextBox.ReadOnly = false; + } + else + { + paddingOffsetTextBox.ReadOnly = true; + } + } + + private void spacingToggle_CheckedChanged(object sender, EventArgs e) + { + if (spacingToggle.Checked) + { + spacingOffsetTextBox.ReadOnly = false; + } + else + { + spacingOffsetTextBox.ReadOnly = true; + } + } } -} +} \ No newline at end of file diff --git a/BaseConverter/bin/Debug/BaseConverter.application b/BaseConverter/bin/Debug/BaseConverter.application index 29c0ddb..09112f3 100644 --- a/BaseConverter/bin/Debug/BaseConverter.application +++ b/BaseConverter/bin/Debug/BaseConverter.application @@ -11,7 +11,7 @@ - yuucww+k7TDTPDj046KVMAquP4M= + M1+IlQiQJ4OfFXw+8V52dd47UwQ= diff --git a/BaseConverter/bin/Debug/BaseConverter.exe b/BaseConverter/bin/Debug/BaseConverter.exe index 4660b30..445f920 100644 Binary files a/BaseConverter/bin/Debug/BaseConverter.exe and b/BaseConverter/bin/Debug/BaseConverter.exe differ diff --git a/BaseConverter/bin/Debug/BaseConverter.exe.manifest b/BaseConverter/bin/Debug/BaseConverter.exe.manifest index 452eee4..26bf3e6 100644 --- a/BaseConverter/bin/Debug/BaseConverter.exe.manifest +++ b/BaseConverter/bin/Debug/BaseConverter.exe.manifest @@ -52,14 +52,14 @@ - + - AZ1RyIR6zUElaFiQPabdRc1KQGU= + UiwtToWaxlHHmAc6iXW07oBqZio= diff --git a/BaseConverter/bin/Debug/BaseConverter.pdb b/BaseConverter/bin/Debug/BaseConverter.pdb index f693ad7..33dc26c 100644 Binary files a/BaseConverter/bin/Debug/BaseConverter.pdb and b/BaseConverter/bin/Debug/BaseConverter.pdb differ diff --git a/BaseConverter/bin/Debug/BaseConverter.vshost.application b/BaseConverter/bin/Debug/BaseConverter.vshost.application index 29c0ddb..09112f3 100644 --- a/BaseConverter/bin/Debug/BaseConverter.vshost.application +++ b/BaseConverter/bin/Debug/BaseConverter.vshost.application @@ -11,7 +11,7 @@ - yuucww+k7TDTPDj046KVMAquP4M= + M1+IlQiQJ4OfFXw+8V52dd47UwQ= diff --git a/BaseConverter/bin/Release/BaseConverter.application b/BaseConverter/bin/Release/BaseConverter.application index 2b67b7d..b12ee7f 100644 --- a/BaseConverter/bin/Release/BaseConverter.application +++ b/BaseConverter/bin/Release/BaseConverter.application @@ -11,7 +11,7 @@ - ZheybUAJpg39YCWBJx+Gc4mkZw4= + o9qGPInDcM+MIPFuzS1NJwC3Lk8= diff --git a/BaseConverter/bin/Release/BaseConverter.exe b/BaseConverter/bin/Release/BaseConverter.exe index fee7e53..c41049f 100644 Binary files a/BaseConverter/bin/Release/BaseConverter.exe and b/BaseConverter/bin/Release/BaseConverter.exe differ diff --git a/BaseConverter/bin/Release/BaseConverter.exe.manifest b/BaseConverter/bin/Release/BaseConverter.exe.manifest index 07e31b6..d048bdd 100644 --- a/BaseConverter/bin/Release/BaseConverter.exe.manifest +++ b/BaseConverter/bin/Release/BaseConverter.exe.manifest @@ -52,14 +52,14 @@ - + - GXF67NBKCPtbhPkDo1mD8A/wVqU= + DHImL6Kx0jD1DC/eCcyyWDlW0JI= diff --git a/BaseConverter/bin/Release/BaseConverter.pdb b/BaseConverter/bin/Release/BaseConverter.pdb index b37968a..493ab11 100644 Binary files a/BaseConverter/bin/Release/BaseConverter.pdb and b/BaseConverter/bin/Release/BaseConverter.pdb differ diff --git a/BaseConverter/obj/Debug/BaseConverter.application b/BaseConverter/obj/Debug/BaseConverter.application index 29c0ddb..09112f3 100644 --- a/BaseConverter/obj/Debug/BaseConverter.application +++ b/BaseConverter/obj/Debug/BaseConverter.application @@ -11,7 +11,7 @@ - yuucww+k7TDTPDj046KVMAquP4M= + M1+IlQiQJ4OfFXw+8V52dd47UwQ= diff --git a/BaseConverter/obj/Debug/BaseConverter.csproj.GenerateResource.Cache b/BaseConverter/obj/Debug/BaseConverter.csproj.GenerateResource.Cache index 86fa837..4917a05 100644 Binary files a/BaseConverter/obj/Debug/BaseConverter.csproj.GenerateResource.Cache and b/BaseConverter/obj/Debug/BaseConverter.csproj.GenerateResource.Cache differ diff --git a/BaseConverter/obj/Debug/BaseConverter.exe b/BaseConverter/obj/Debug/BaseConverter.exe index 4660b30..445f920 100644 Binary files a/BaseConverter/obj/Debug/BaseConverter.exe and b/BaseConverter/obj/Debug/BaseConverter.exe differ diff --git a/BaseConverter/obj/Debug/BaseConverter.exe.manifest b/BaseConverter/obj/Debug/BaseConverter.exe.manifest index 452eee4..26bf3e6 100644 --- a/BaseConverter/obj/Debug/BaseConverter.exe.manifest +++ b/BaseConverter/obj/Debug/BaseConverter.exe.manifest @@ -52,14 +52,14 @@ - + - AZ1RyIR6zUElaFiQPabdRc1KQGU= + UiwtToWaxlHHmAc6iXW07oBqZio= diff --git a/BaseConverter/obj/Debug/BaseConverter.pdb b/BaseConverter/obj/Debug/BaseConverter.pdb index f693ad7..33dc26c 100644 Binary files a/BaseConverter/obj/Debug/BaseConverter.pdb and b/BaseConverter/obj/Debug/BaseConverter.pdb differ diff --git a/BaseConverter/obj/Release/BaseConverter.application b/BaseConverter/obj/Release/BaseConverter.application index 2b67b7d..b12ee7f 100644 --- a/BaseConverter/obj/Release/BaseConverter.application +++ b/BaseConverter/obj/Release/BaseConverter.application @@ -11,7 +11,7 @@ - ZheybUAJpg39YCWBJx+Gc4mkZw4= + o9qGPInDcM+MIPFuzS1NJwC3Lk8= diff --git a/BaseConverter/obj/Release/BaseConverter.csproj.GenerateResource.Cache b/BaseConverter/obj/Release/BaseConverter.csproj.GenerateResource.Cache index 8e5c067..a4d9ab5 100644 Binary files a/BaseConverter/obj/Release/BaseConverter.csproj.GenerateResource.Cache and b/BaseConverter/obj/Release/BaseConverter.csproj.GenerateResource.Cache differ diff --git a/BaseConverter/obj/Release/BaseConverter.exe b/BaseConverter/obj/Release/BaseConverter.exe index fee7e53..c41049f 100644 Binary files a/BaseConverter/obj/Release/BaseConverter.exe and b/BaseConverter/obj/Release/BaseConverter.exe differ diff --git a/BaseConverter/obj/Release/BaseConverter.exe.manifest b/BaseConverter/obj/Release/BaseConverter.exe.manifest index 07e31b6..d048bdd 100644 --- a/BaseConverter/obj/Release/BaseConverter.exe.manifest +++ b/BaseConverter/obj/Release/BaseConverter.exe.manifest @@ -52,14 +52,14 @@ - + - GXF67NBKCPtbhPkDo1mD8A/wVqU= + DHImL6Kx0jD1DC/eCcyyWDlW0JI= diff --git a/BaseConverter/obj/Release/BaseConverter.pdb b/BaseConverter/obj/Release/BaseConverter.pdb index b37968a..493ab11 100644 Binary files a/BaseConverter/obj/Release/BaseConverter.pdb and b/BaseConverter/obj/Release/BaseConverter.pdb differ