Backspace correction - ShadyShadow - Apr 29, 2014
Hey, im working on a little fun prokject at the moment and i ran in 1 problem,
Its like a keylogger when it says: 14[back]23[back]35[back]
I want it to remove the [back] and the character before it, can someone help me out with this??? there might be also a problem when there is a situation like this: 123757[back][back][back] and the outcome has to be 123, can someone help me with this??
* - tweety - Apr 29, 2014
I suggest you stop copy and pasting the class you're using. It's not a matter of if anyone can do this, it's just the most simple string manipulation that you will ever do in your life.. Jesus.
PHP Code
<?php static void Main(string[] args) { string message = "this message!"; Console.WriteLine(message.Remove(message.Length - 1)); Console.Read(); }
Just use that snippet in the handler for the backspace keycode.
* - ShadyShadow - Apr 29, 2014
(Apr 29, 2014 03:36 PM)Tweety. Wrote: I suggest you stop copy and pasting the class you're using. It's not a matter of if anyone can do this, it's just the most simple string manipulation that you will ever do in your life.. Jesus.
PHP Code
<?php static void Main(string[] args) { string message = "this message!"; Console.WriteLine(message.Remove(message.Length - 1)); Console.Read(); }
Just use that snippet in the handler for the backspace keycode.
I already fixed it with my own code :D thanks anyways
* - VPN - Apr 29, 2014
(Apr 29, 2014 04:17 PM)ShadyShadow Wrote: I already fixed it with my own code :D thanks anyways
Do you mind posting your code aswell so people can learn from it ? I personally don't look forward to use but it might be helpful for others.
* - ShadyShadow - Apr 29, 2014
(Apr 29, 2014 04:36 PM)Woopza Wrote: Do you mind posting your code aswell so people can learn from it ? I personally don't look forward to use but it might be helpful for others.
Sure, I know there is a much easier way to do this but this one is just working fine for me,
Code Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If TextBox1.Text.Contains("1{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("1{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("2{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("2{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("3{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("3{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("4{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("4{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("5{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("5{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("6{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("6{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("7{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("7{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("8{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("8{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("9{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("9{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("0{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("0{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("a{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("a{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("b{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("b{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("c{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("c{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("d{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("d{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("e{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("e{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("f{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("f{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("g{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("g{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("h{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("h{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("i{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("i{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("j{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("j{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("k{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("k{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("l{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("l{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("m{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("m{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("n{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("n{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("o{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("o{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("p{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("p{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("q{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("q{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("r{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("r{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("s{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("s{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("t{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("t{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("u{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("u{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("v{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("v{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("w{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("w{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("x{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("x{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("y{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("y{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("z{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("z{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("A{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("A{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("B{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("B{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("C{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("C{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("D{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("D{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("E{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("E{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("F{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("F{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("G{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("G{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("H{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("H{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("I{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("I{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("J{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("J{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("K{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("K{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("L{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("L{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("M{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("M{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("N{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("N{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("O{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("O{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("P{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("P{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("Q{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("Q{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("R{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("R{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("S{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("S{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("T{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("T{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("U{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("U{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("V{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("V{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("W{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("W{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("X{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("X{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("Y{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("Y{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("Z{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("Z{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("@{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("@{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("!{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("!{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("#{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("#{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("?{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("?{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("%{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("%{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("${Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("${Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("({Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("({Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("){Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("){Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("-{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("-{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("={Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("={Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("+{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("+{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("/{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("/{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("\{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("\{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("[{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("[{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("]{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("]{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("{{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("{{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("}{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("}{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("*{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("*{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("&{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("&{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("^{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("^{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("<{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("<{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains(">{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace(">{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("_{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("_{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("€{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("€{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains(".{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace(".{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains(",{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace(",{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains(":{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace(":{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains(";{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace(";{Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains(" {Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace(" {Backspace}", "").Trim()
ElseIf TextBox1.Text.Contains("{Backspace}") Then
TextBox1.Text = TextBox1.Text.Replace("{Backspace}", "").Trim()
End If
End Sub
* - 6e756c6c - Apr 29, 2014
Here, try this instead.
Function:
Code Function RemoveBackspaces(text As String, search As String) As String
Dim Index, Count As Integer
While True
Index = text.IndexOf(search)
Count = Math.Min(Index, 1)
If Index = -1 Then
Exit While
End If
text = text.Remove(Index - Count, search.Length + Count)
End While
Return text
End Function
Usage:
Code Dim Source As String = "[back]14[back][back][back][back]23135[back]7[back]"
Dim Text As String = RemoveBackspaces(Source, "[back]")
* - 6577657534735 - Apr 29, 2014
Find each group of contiguous [back] tokens
Count how many there are ("n" of them) and remove them from the string
Remove the previous "n" characters from the string as well
* - ShadyShadow - Apr 30, 2014
(Apr 29, 2014 08:17 PM)Aeonhack Wrote: Here, try this instead.
Function:
Code Function RemoveBackspaces(text As String, search As String) As String
Dim Index, Count As Integer
While True
Index = text.IndexOf(search)
Count = Math.Min(Index, 1)
If Index = -1 Then
Exit While
End If
text = text.Remove(Index - Count, search.Length + Count)
End While
Return text
End Function
Usage:
Code Dim Source As String = "[back]14[back][back][back][back]23135[back]7[back]"
Dim Text As String = RemoveBackspaces(Source, "[back]")
Thanks aeonhack, ur a great programmer, thanks for ur help the code from you is much easier :d
* - Washi - Apr 30, 2014
(Apr 29, 2014 08:17 PM)Aeonhack Wrote: Here, try this instead.
Function:
Code Function RemoveBackspaces(text As String, search As String) As String
Dim Index, Count As Integer
While True
Index = text.IndexOf(search)
Count = Math.Min(Index, 1)
If Index = -1 Then
Exit While
End If
text = text.Remove(Index - Count, search.Length + Count)
End While
Return text
End Function
Usage:
Code Dim Source As String = "[back]14[back][back][back][back]23135[back]7[back]"
Dim Text As String = RemoveBackspaces(Source, "[back]")
I would consider creating a StringBuilder and use a StringBuilder.Remove instead of calling String.Remove. If you wants to mutate strings, you should use a mutable string instead of the normal static string, in order to gain speed and reduce memory usage, which is quite a must if you are mutating a large string.
* - SIM-1456245 - Apr 30, 2014
(Apr 30, 2014 02:27 AM)TheUnknownProgrammer Wrote: I would consider creating a StringBuilder and use a StringBuilder.Remove instead of calling String.Remove. If you wants to mutate strings, you should use a mutable string instead of the normal static string, in order to gain speed and reduce memory usage, which is quite a must if you are mutating a large string.
You know, you remind me on ident, he was always telling people to use strict and you are telling everyone to use string builder. I'm not saying that it's not the way of doing this, but it's funny how you are always saying, that, and people never get it.
|