Count character
Count character
Hello all
How I can Count the complete characters (String values numbers etcpp) of my freebasic example?
How I can Count the complete characters (String values numbers etcpp) of my freebasic example?
Re: Count character
OK Made this example how many characters occurs in one String , all OK Here with result
(new edit)
(new edit)
Code: Select all
' Define the string
' fictive string below
Dim As String my_string = "screen 13:color 15,3:cls:line(100,100)-(150,150),,bf :dim as integer a = 10 : b,c,d : ""hello freebasic how are you?"": Rgb rnd 100 255 100 sleep locate 10,20"
' Initialize an array to store character counts (assuming ASCII characters)
Dim As Integer char_count(255)
' Iterate over the first 1024 characters of the string
For i As Integer = 1 To 1024
' Get the character
Dim As String current_char = Mid(my_string, i, 1)
' Ignore spaces and commas
If current_char <> " " And current_char <> "," Then
' Increment the count for the character
char_count(Asc(current_char)) += 1
End If
Next
' Print the character counts
For i As Integer = 0 To 255
If char_count(i) > 0 Then
Print "Character "; Chr(i); " occurs "; char_count(i); " times."
End If
Next
sleep
Re: Count character
For i As Integer = 1 To 1024 Len(my_string)
(otherwise, lots of ghost null characters are counted from the the string end index up to 1024 index)
(otherwise, lots of ghost null characters are counted from the the string end index up to 1024 index)
Re: Count character
Faster using string[n], no need an intermediate string. Warning zero based.
Code: Select all
Dim As String my_string = "screen 13:color 15,3:cls:line(100,100)-(150,150),,bf :dim as integer a = 10 : b,c,d : ""hello freebasic how are you?"": Rgb rnd 100 255 100 sleep locate 10,20"
' Initialize an array to store character counts (assuming ASCII characters)
Dim As Integer char_count(255)
' Iterate over the first 1024 characters of the string
For i As Integer = 0 To Len(my_string)-1
' Get the character
''''Dim As String current_char = Mid(my_string, i, 1)
dim as integer vchar=my_string[i]
' Ignore spaces and commas
'''''If current_char <> " " And current_char <> "," Then
If vchar <> asc(" ") And vchar <> asc(",") Then
' Increment the count for the character
char_count(vchar) += 1
End If
Next
' Print the character counts
For i As Integer = 0 To 255
If char_count(i) > 0 Then
Print "Character "; Chr(i); " occurs "; char_count(i); " times."
End If
Next
Re: Count character
For long strings (greater than 256 characters), where execution time becomes more noticeable, it is advantageous to filter certain characters only when displaying counters:
Code: Select all
Dim As String my_string = "screen 13:color 15,3:cls:line(100,100)-(150,150),,bf :dim as integer a = 10 : b,c,d : ""hello freebasic how are you?"": Rgb rnd 100 255 100 sleep locate 10,20"
' Initialize an array to store character counts (assuming ASCII characters)
Dim As Integer char_count(255)
' Iterate over the characters of the string
For i As Integer = 0 To Len(my_string)-1
' Increment the count for the character
char_count(my_string[i]) += 1
Next
' Print the character counts
For i As Integer = 0 To 255
' Ignore spaces and commas
If i <> asc(" ") And i <> asc(",") Then
If char_count(i) > 0 Then
Print "Character "; Chr(i); " occurs "; char_count(i); " times."
End If
End If
Next
Sleep
Re: Count character
Thank you both Sarg and fxm
@fxm where I can Insert in your Code the complete result of all characters? Like in my First example Shows result at First line
@fxm where I can Insert in your Code the complete result of all characters? Like in my First example Shows result at First line
Re: Count character
Your first code displays in the first line the value corresponding to:
1024 - Len(my_string) = 1024 - 156 = 868
What exactly do you want to display on the first line?
Re: Count character
No sorry misunderstanding I am meaning the result of all counts of characters AS a sum found in the String at the end of example
In my Fürst example the result after compiling showed at console Print at First Line
In my Fürst example the result after compiling showed at console Print at First Line
Re: Count character
Code: Select all
Dim As String my_string = "screen 13:color 15,3:cls:line(100,100)-(150,150),,bf :dim as integer a = 10 : b,c,d : ""hello freebasic how are you?"": Rgb rnd 100 255 100 sleep locate 10,20"
' Initialize an array to store character counts (assuming ASCII characters)
Dim As Integer char_count(-1 TO 255)
' Iterate over the first 1024 characters of the string
For i As Integer = 0 To Len(my_string)-1
' Get the character
''''Dim As String current_char = Mid(my_string, i, 1)
dim as integer vchar=my_string[i]
' Ignore spaces and commas
'''''If current_char <> " " And current_char <> "," Then
If vchar <> asc(" ") And vchar <> asc(",") Then
' Increment the count for the character
char_count(vchar) += 1
char_count(-1) += 1
End If
Next
' Print the character counts
Print "Number of characters in the string"; Len(my_string)
Print
Print "Number of characters counted"; char_count(-1)
For i As Integer = 0 To 255
If char_count(i) > 0 Then
Print " Character "; Chr(i); " occurs "; char_count(i); " times."
End If
Next
Sleep
Re: Count character
Thanks again for Feedback fxm I have now used your modified Version to adept for my example nice tuesday
Code: Select all
' - freebasic check length of a string, 21/23-04-2024, frank bruebach
' - working example string below, example runs, thx fxm :-)
'
Dim As String my_string = "Screen 13:color 15,3:cls:line(100,100)-(150,150),,bf:line(150,150)-(200,100),,bf:line(200,100)-(180,50),,bf:line(180,50)-(120,50),,bf:line(120,50)-(100,100),,bf:color 2,10:locate 10,20:? "";:color 2,11:locate 20,15:? ""Fr"";:color 2,12:locate 30,20:? ""e"";:color 2,13:locate 40,20:? ""e"";:color 2,14:locate 50,20:? ""B"";:color 2,15:locate 60,20:? ""a"";:color 2,0:locate 70,20:? ""s"";:color 2,1:locate 80,20:? ""iC"";:color 2,2:Sleep"
' Initialize an array to store character counts (assuming ASCII characters)
Dim As Integer char_count(-1 TO 255)
' Iterate over the first 1024 characters of the string
For i As Integer = 0 To Len(my_string)-1 '1 To 1024
' Get the character
'Dim As String current_char = Mid(my_string, i, 1)
Dim As integer current_char = my_string[i]
' Ignore spaces and commas
'''''If current_char <> " " And current_char <> "," Then
If current_char <> asc(" ") And current_char <> asc(",") Then
' Increment the count for the character
char_count(current_char) += 1
char_count(-1) += 1
End If
Next
' Print the character counts
Print "Number of characters in the string"; Len(my_string)
Print
Print "Number of characters counted"; char_count(-1)
For i As Integer = 0 To 255
If char_count(i) > 0 Then
Print " Character "; Chr(i); " occurs "; char_count(i); " times."
End If
Next
Print "all ok with result"
sleep