ASCII string to single variable decimal?
Hey, guys. I have yet another problem. One that seems to be a little harder to figure out or perhaps i have done all i can. I have a homemade ASCII string to single variable converter. It works nice and gets the job done. The only problem is that it takes 50 or so lines of code to accomplish and that is a LOT of time if you are constantly using it. Here is my current code.....
var
long· decval, decval2, decval3, decval4
long varstore[noparse][[/noparse]4]
pub convert(dec4, dec3, dec2, dec) : finalval
varstore[noparse][[/noparse]3] := dec
varstore[noparse][[/noparse]2] := dec2
varstore[noparse][[/noparse]1] := dec3
varstore[noparse][[/noparse]0] := dec4
if varstore[noparse][[/noparse]3] == "0"
·decval := 0
if varstore[noparse][[/noparse]3] == "1"
·decval := 1
if varstore[noparse][[/noparse]3] == "2"
·decval := 2
if varstore[noparse][[/noparse]3] == "3"
·decval := 3
if varstore[noparse][[/noparse]3] == "4"
·decval := 4
if varstore[noparse][[/noparse]3] == "5"
·decval := 5
if varstore[noparse][[/noparse]3] == "6"
·decval := 6
if varstore[noparse][[/noparse]3] == "7"
·decval := 7
if varstore[noparse][[/noparse]3] == "8"
·decval := 8
if varstore[noparse][[/noparse]3] == "9"
·decval := 9
if varstore[noparse][[/noparse]2] == "0"
·decval2 := 0
if varstore[noparse][[/noparse]2] == "1"
·decval2 := 10
if varstore[noparse][[/noparse]2] == "2"
·decval2 := 20
if varstore[noparse][[/noparse]2] == "3"
·decval2 := 30
if varstore[noparse][[/noparse]2] == "4"
·decval2 := 40
if varstore[noparse][[/noparse]2] == "5"
·decval2 := 50
if varstore[noparse][[/noparse]2] == "6"
·decval2 := 60
if varstore[noparse][[/noparse]2] == "7"
·decval2 := 70
if varstore[noparse][[/noparse]2] == "8"
·decval2 := 80
if varstore[noparse][[/noparse]2] == "9"
·decval2 := 90
if varstore[noparse][[/noparse]1] == "0"
·decval3 := 0
if varstore[noparse][[/noparse]1] == "1"
·decval3 := 100
if varstore[noparse][[/noparse]1] == "2"
·decval3 := 200
if varstore[noparse][[/noparse]1] == "3"
·decval3 := 300
if varstore[noparse][[/noparse]1] == "4"
·decval3 := 400
if varstore[noparse][[/noparse]1] == "5"
·decval3 := 500
if varstore[noparse][[/noparse]1] == "6"
·decval3 := 600
if varstore[noparse][[/noparse]1] == "7"
·decval3 := 700
if varstore[noparse][[/noparse]1] == "8"
·decval3 := 800
if varstore[noparse][[/noparse]1] == "9"
·decval3 := 900
···
if varstore[noparse][[/noparse]0] == "0"
·decval4 := 0
if varstore[noparse][[/noparse]0] == "1"
·decval4 := 1000
if varstore[noparse][[/noparse]0] == "2"
·decval4 := 2000
if varstore[noparse][[/noparse]0] == "3"
·decval4 := 3000
if varstore[noparse][[/noparse]0] == "4"
·decval4 := 4000
if varstore[noparse][[/noparse]0] == "5"
·decval4 := 5000
if varstore[noparse][[/noparse]0] == "6"
·decval4 := 6000
if varstore[noparse][[/noparse]0] == "7"
·decval4 := 7000
if varstore[noparse][[/noparse]0] == "8"
·decval4 := 8000
if varstore[noparse][[/noparse]0] == "9"
·decval4 := 9000
finalval := decval + decval2 + decval3 + decval4
As you can see the acctual coding is quite simple but now i need something a little faster. If anybody has developed a faster routine for this please let me know. I have tried to think of·a way to speed it up but just couldn't put my finger on it. Perhaps this is the best i can do, but i just wanted to see if someone else was smarter than me....Thanks in advance>>>
P.S sorry about not using the attachment manager
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller + Picaxe = Romeo & Juliet
var
long· decval, decval2, decval3, decval4
long varstore[noparse][[/noparse]4]
pub convert(dec4, dec3, dec2, dec) : finalval
varstore[noparse][[/noparse]3] := dec
varstore[noparse][[/noparse]2] := dec2
varstore[noparse][[/noparse]1] := dec3
varstore[noparse][[/noparse]0] := dec4
if varstore[noparse][[/noparse]3] == "0"
·decval := 0
if varstore[noparse][[/noparse]3] == "1"
·decval := 1
if varstore[noparse][[/noparse]3] == "2"
·decval := 2
if varstore[noparse][[/noparse]3] == "3"
·decval := 3
if varstore[noparse][[/noparse]3] == "4"
·decval := 4
if varstore[noparse][[/noparse]3] == "5"
·decval := 5
if varstore[noparse][[/noparse]3] == "6"
·decval := 6
if varstore[noparse][[/noparse]3] == "7"
·decval := 7
if varstore[noparse][[/noparse]3] == "8"
·decval := 8
if varstore[noparse][[/noparse]3] == "9"
·decval := 9
if varstore[noparse][[/noparse]2] == "0"
·decval2 := 0
if varstore[noparse][[/noparse]2] == "1"
·decval2 := 10
if varstore[noparse][[/noparse]2] == "2"
·decval2 := 20
if varstore[noparse][[/noparse]2] == "3"
·decval2 := 30
if varstore[noparse][[/noparse]2] == "4"
·decval2 := 40
if varstore[noparse][[/noparse]2] == "5"
·decval2 := 50
if varstore[noparse][[/noparse]2] == "6"
·decval2 := 60
if varstore[noparse][[/noparse]2] == "7"
·decval2 := 70
if varstore[noparse][[/noparse]2] == "8"
·decval2 := 80
if varstore[noparse][[/noparse]2] == "9"
·decval2 := 90
if varstore[noparse][[/noparse]1] == "0"
·decval3 := 0
if varstore[noparse][[/noparse]1] == "1"
·decval3 := 100
if varstore[noparse][[/noparse]1] == "2"
·decval3 := 200
if varstore[noparse][[/noparse]1] == "3"
·decval3 := 300
if varstore[noparse][[/noparse]1] == "4"
·decval3 := 400
if varstore[noparse][[/noparse]1] == "5"
·decval3 := 500
if varstore[noparse][[/noparse]1] == "6"
·decval3 := 600
if varstore[noparse][[/noparse]1] == "7"
·decval3 := 700
if varstore[noparse][[/noparse]1] == "8"
·decval3 := 800
if varstore[noparse][[/noparse]1] == "9"
·decval3 := 900
···
if varstore[noparse][[/noparse]0] == "0"
·decval4 := 0
if varstore[noparse][[/noparse]0] == "1"
·decval4 := 1000
if varstore[noparse][[/noparse]0] == "2"
·decval4 := 2000
if varstore[noparse][[/noparse]0] == "3"
·decval4 := 3000
if varstore[noparse][[/noparse]0] == "4"
·decval4 := 4000
if varstore[noparse][[/noparse]0] == "5"
·decval4 := 5000
if varstore[noparse][[/noparse]0] == "6"
·decval4 := 6000
if varstore[noparse][[/noparse]0] == "7"
·decval4 := 7000
if varstore[noparse][[/noparse]0] == "8"
·decval4 := 8000
if varstore[noparse][[/noparse]0] == "9"
·decval4 := 9000
finalval := decval + decval2 + decval3 + decval4
As you can see the acctual coding is quite simple but now i need something a little faster. If anybody has developed a faster routine for this please let me know. I have tried to think of·a way to speed it up but just couldn't put my finger on it. Perhaps this is the best i can do, but i just wanted to see if someone else was smarter than me....Thanks in advance>>>
P.S sorry about not using the attachment manager
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller + Picaxe = Romeo & Juliet
Comments
I think this code should work.· You of course need to set up x and myString appropriately.
Duane
·Edit: added comments, local variables, DAT section
Post Edited (Duane Degn) : 7/31/2010 6:35:17 PM GMT
Hope this helps
Jay
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller + Picaxe = Romeo & Juliet
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller + Picaxe = Romeo & Juliet