multiply(10*12*14)

Discussion in 'ASP .Net' started by vips, May 12, 2005.

  1. vips

    vips Guest

    I have a string
    str="10*12*14"
    now I want the total of this value
    i.e. 10 multiply 12 multiply 14
    how do i get it ?

    is there any function in vb.net to do that ??
    if i put it as query to database I get the result, but I want to do it in
    the code.

    vips
     
    vips, May 12, 2005
    #1
    1. Advertising

  2. vips

    vips Guest

    thanks Eliyahu ,
    I was wondering can i do this in sql query ?
    I wrote it previously that it can be done using query, but It was my
    mistake.
    I mean is there any function in sql server ??


    "Eliyahu Goldin" <> wrote in message
    news:...
    > Parse the string with String.Split() method, convert every substring to
    > integer with System.Convert.ToInt32() method (or Int32.Parse()) and

    multiply
    > the integers.
    >
    > Eliyahu
    >
    > "vips" <> wrote in message
    > news:%...
    > > I have a string
    > > str="10*12*14"
    > > now I want the total of this value
    > > i.e. 10 multiply 12 multiply 14
    > > how do i get it ?
    > >
    > > is there any function in vb.net to do that ??
    > > if i put it as query to database I get the result, but I want to do it

    in
    > > the code.
    > >
    > > vips
    > >
    > >
    > >
    > >
    > >
    > >
    > >

    >
    >
     
    vips, May 12, 2005
    #2
    1. Advertising

  3. > is there any function in vb.net to do that ??

    No. However, you CAN use VB.Net to do that. All you have to do is write the
    code.

    Of course, first you have to analyze the problem. Programming is a
    problem-solving process. Remember when you took Algebra in high school, and
    they gave you word problems that you had to convert to math problems? Think
    of it that way. Analysis is the process of converting a word problem to a
    math (programming) problem.

    >I have a string
    > str="10*12*14"
    > now I want the total of this value
    > i.e. 10 multiply 12 multiply 14
    > how do i get it ?


    Okay, first we start with a string. A string has no numbers in it. We want
    to parse the string, as it contains text symbols that represent both data
    (numbers) and process (math operators). Now, not all text is symbolic of
    numbers and math operators, such as the comma for example. So, we first need
    to identify what symbols of text we will use as numbers (the easy part -
    0,1,2,3,4,5,6,7,8,9), and what symbols of text we will use as operators. I
    cannot assume that you are only talking about multiplying numbers here. In
    fact, I would guess that you may want to be able to perform all types of
    arithmetical computations, IOW adding, subtracting, multiplying, and
    dividing. So, for the purpose of this explanation, I'll say that our
    operators are +, -, *, and /. Possibly % and \ as well.

    Okay, now for the hard part. Your example is good because it contains no
    spaces. We can't necessarily assume that there are spaces in the string (you
    could, but I can't, since I don't know where your string will come from).
    So, we need a means to parse a string into an unknown number of known single
    characters, and an unknown number of combinations of 1 or more digit
    characters. What is the best programmatic mechanism for doing such complex
    string parsing? Offhand, I would say a Regular Expression. So, we have
    solved the first part of the problem, which is how to parse the string into
    a set of separate strings.

    Once we have these separate strings, we must convert the numeric string
    expressions to numbers, and the operators to operators, and build a purely
    mathematical expression from them. Converting strings to numbers is easy,
    and I don't need to explain that. Converting the operators cannot be done
    directly, so we need to use selection to identify the operators, in order to
    perform math on the numbers. This can be done with a Select Case Statement.

    Now we need to know the rules of math, and for arithmentic they are fairly
    simple. In this case, the simplicity comes in handy. We know, for example,
    that (10*2*4) is equivalent to (10*2) * 4, and is equivalent to 10 * (2*4),
    etc. If all we are doing is multiplying, the order of operation is not
    important. But, what if we parse 10*2+4? 10*2 = 20. Add 4 and you get 24.
    But 10 * (2+4) = 60. So, we're looking for a rule, and we introduce another
    possible set of characters that we may need to parse, which is parentheses.
    We need to identify whether we will allow the use of parentheses to change
    the default rules regarding order of operation, and if so, we need to parse
    parentheses, and use them in our math, not directly, but in order to perform
    the operations in the correct order. Again, we're talking about selection
    here. If there are no parentheses, the default order of operations applies.
    If there ARE parentheses, we have to modify the order of operations, as a
    program can only perform one operation at a time.

    Now that we have analyzed the problem, it's a relatively straightforward
    exercise to write the code. And I'll leave that to you!

    --
    HTH,

    Kevin Spencer
    Microsoft MVP
    ..Net Developer
    What You Seek Is What You Get.


    "vips" <> wrote in message
    news:%...
    >I have a string
    > str="10*12*14"
    > now I want the total of this value
    > i.e. 10 multiply 12 multiply 14
    > how do i get it ?
    >
    > is there any function in vb.net to do that ??
    > if i put it as query to database I get the result, but I want to do it in
    > the code.
    >
    > vips
    >
    >
    >
    >
    >
    >
    >
     
    Kevin Spencer, May 12, 2005
    #3
  4. Thinking it over, as I often do, I have one correction, and one additional
    note.

    Correction: I should have said 10*12*4, rather than 10*2*4. Same rules, but
    sloppy on my part.

    Additional note: You MAY need to identify if a string is unparsable, and
    handle the exception. MOST strings can NOT be parsed into mathematical
    expressions. If, for example, you write a SQL query that is supposed to
    perform a mathematical operation, and it can not be parsed, the database
    will throw an exception. So, depending upon how you're getting your string
    expression, you may need to handle the eventuality that an unparsable string
    is entered.

    --
    HTH,

    Kevin Spencer
    Microsoft MVP
    ..Net Developer
    What You Seek Is What You Get.

    "vips" <> wrote in message
    news:%...
    >I have a string
    > str="10*12*14"
    > now I want the total of this value
    > i.e. 10 multiply 12 multiply 14
    > how do i get it ?
    >
    > is there any function in vb.net to do that ??
    > if i put it as query to database I get the result, but I want to do it in
    > the code.
    >
    > vips
    >
    >
    >
    >
    >
    >
    >
     
    Kevin Spencer, May 12, 2005
    #4
  5. Parse the string with String.Split() method, convert every substring to
    integer with System.Convert.ToInt32() method (or Int32.Parse()) and multiply
    the integers.

    Eliyahu

    "vips" <> wrote in message
    news:%...
    > I have a string
    > str="10*12*14"
    > now I want the total of this value
    > i.e. 10 multiply 12 multiply 14
    > how do i get it ?
    >
    > is there any function in vb.net to do that ??
    > if i put it as query to database I get the result, but I want to do it in
    > the code.
    >
    > vips
    >
    >
    >
    >
    >
    >
    >
     
    Eliyahu Goldin, May 12, 2005
    #5
  6. > I mean is there any function in sql server ??

    SELECT 10*12*4

    --
    HTH,

    Kevin Spencer
    Microsoft MVP
    ..Net Developer
    What You Seek Is What You Get.

    "vips" <> wrote in message
    news:eT4V%...
    > thanks Eliyahu ,
    > I was wondering can i do this in sql query ?
    > I wrote it previously that it can be done using query, but It was my
    > mistake.
    > I mean is there any function in sql server ??
    >
    >
    > "Eliyahu Goldin" <> wrote in message
    > news:...
    >> Parse the string with String.Split() method, convert every substring to
    >> integer with System.Convert.ToInt32() method (or Int32.Parse()) and

    > multiply
    >> the integers.
    >>
    >> Eliyahu
    >>
    >> "vips" <> wrote in message
    >> news:%...
    >> > I have a string
    >> > str="10*12*14"
    >> > now I want the total of this value
    >> > i.e. 10 multiply 12 multiply 14
    >> > how do i get it ?
    >> >
    >> > is there any function in vb.net to do that ??
    >> > if i put it as query to database I get the result, but I want to do it

    > in
    >> > the code.
    >> >
    >> > vips
    >> >
    >> >
    >> >
    >> >
    >> >
    >> >
    >> >

    >>
    >>

    >
    >
     
    Kevin Spencer, May 12, 2005
    #6
  7. yes, sure

    select 10*12*14

    Eliyahu

    "vips" <> wrote in message
    news:eT4V%...
    > thanks Eliyahu ,
    > I was wondering can i do this in sql query ?
    > I wrote it previously that it can be done using query, but It was my
    > mistake.
    > I mean is there any function in sql server ??
    >
    >
    > "Eliyahu Goldin" <> wrote in message
    > news:...
    > > Parse the string with String.Split() method, convert every substring to
    > > integer with System.Convert.ToInt32() method (or Int32.Parse()) and

    > multiply
    > > the integers.
    > >
    > > Eliyahu
    > >
    > > "vips" <> wrote in message
    > > news:%...
    > > > I have a string
    > > > str="10*12*14"
    > > > now I want the total of this value
    > > > i.e. 10 multiply 12 multiply 14
    > > > how do i get it ?
    > > >
    > > > is there any function in vb.net to do that ??
    > > > if i put it as query to database I get the result, but I want to do it

    > in
    > > > the code.
    > > >
    > > > vips
    > > >
    > > >
    > > >
    > > >
    > > >
    > > >
    > > >

    > >
    > >

    >
    >
     
    Eliyahu Goldin, May 12, 2005
    #7
  8. vips

    vips Guest

    I actually meant if I am having this string in database in one column
    how can I process it ?

    "Eliyahu Goldin" <> wrote in message
    news:...
    > yes, sure
    >
    > select 10*12*14
    >
    > Eliyahu
    >
    > "vips" <> wrote in message
    > news:eT4V%...
    > > thanks Eliyahu ,
    > > I was wondering can i do this in sql query ?
    > > I wrote it previously that it can be done using query, but It was my
    > > mistake.
    > > I mean is there any function in sql server ??
    > >
    > >
    > > "Eliyahu Goldin" <> wrote in message
    > > news:...
    > > > Parse the string with String.Split() method, convert every substring

    to
    > > > integer with System.Convert.ToInt32() method (or Int32.Parse()) and

    > > multiply
    > > > the integers.
    > > >
    > > > Eliyahu
    > > >
    > > > "vips" <> wrote in message
    > > > news:%...
    > > > > I have a string
    > > > > str="10*12*14"
    > > > > now I want the total of this value
    > > > > i.e. 10 multiply 12 multiply 14
    > > > > how do i get it ?
    > > > >
    > > > > is there any function in vb.net to do that ??
    > > > > if i put it as query to database I get the result, but I want to do

    it
    > > in
    > > > > the code.
    > > > >
    > > > > vips
    > > > >
    > > > >
    > > > >
    > > > >
    > > > >
    > > > >
    > > > >
    > > >
    > > >

    > >
    > >

    >
    >
     
    vips, May 12, 2005
    #8
  9. Well, in that case, refer to my first (long) answer. You would have to parse
    the string as I described, and use the logic that I described.

    --
    HTH,

    Kevin Spencer
    Microsoft MVP
    ..Net Developer
    What You Seek Is What You Get.

    "vips" <> wrote in message
    news:eK%...
    >I actually meant if I am having this string in database in one column
    > how can I process it ?
    >
    > "Eliyahu Goldin" <> wrote in message
    > news:...
    >> yes, sure
    >>
    >> select 10*12*14
    >>
    >> Eliyahu
    >>
    >> "vips" <> wrote in message
    >> news:eT4V%...
    >> > thanks Eliyahu ,
    >> > I was wondering can i do this in sql query ?
    >> > I wrote it previously that it can be done using query, but It was my
    >> > mistake.
    >> > I mean is there any function in sql server ??
    >> >
    >> >
    >> > "Eliyahu Goldin" <> wrote in message
    >> > news:...
    >> > > Parse the string with String.Split() method, convert every substring

    > to
    >> > > integer with System.Convert.ToInt32() method (or Int32.Parse()) and
    >> > multiply
    >> > > the integers.
    >> > >
    >> > > Eliyahu
    >> > >
    >> > > "vips" <> wrote in message
    >> > > news:%...
    >> > > > I have a string
    >> > > > str="10*12*14"
    >> > > > now I want the total of this value
    >> > > > i.e. 10 multiply 12 multiply 14
    >> > > > how do i get it ?
    >> > > >
    >> > > > is there any function in vb.net to do that ??
    >> > > > if i put it as query to database I get the result, but I want to do

    > it
    >> > in
    >> > > > the code.
    >> > > >
    >> > > > vips
    >> > > >
    >> > > >
    >> > > >
    >> > > >
    >> > > >
    >> > > >
    >> > > >
    >> > >
    >> > >
    >> >
    >> >

    >>
    >>

    >
    >
     
    Kevin Spencer, May 12, 2005
    #9
  10. I think, you can use “EXEC†command to run a query string in SQL 2000.
    Something likes that:

    CREATE PROCEDURE MySoredProcedure
    AS
    DECLARE @lv_SQL VARCHAR(1000)
    SET @lv_SQL = 'SELECT’ + ’10*12*4’
    EXEC(@lv_SQL)
    GO

    Shaw


    "Kevin Spencer" wrote:

    > Thinking it over, as I often do, I have one correction, and one additional
    > note.
    >
    > Correction: I should have said 10*12*4, rather than 10*2*4. Same rules, but
    > sloppy on my part.
    >
    > Additional note: You MAY need to identify if a string is unparsable, and
    > handle the exception. MOST strings can NOT be parsed into mathematical
    > expressions. If, for example, you write a SQL query that is supposed to
    > perform a mathematical operation, and it can not be parsed, the database
    > will throw an exception. So, depending upon how you're getting your string
    > expression, you may need to handle the eventuality that an unparsable string
    > is entered.
    >
    > --
    > HTH,
    >
    > Kevin Spencer
    > Microsoft MVP
    > ..Net Developer
    > What You Seek Is What You Get.
    >
    > "vips" <> wrote in message
    > news:%...
    > >I have a string
    > > str="10*12*14"
    > > now I want the total of this value
    > > i.e. 10 multiply 12 multiply 14
    > > how do i get it ?
    > >
    > > is there any function in vb.net to do that ??
    > > if i put it as query to database I get the result, but I want to do it in
    > > the code.
    > >
    > > vips
    > >
    > >
    > >
    > >
    > >
    > >
    > >

    >
    >
    >
     
    =?Utf-8?B?U2hhdw==?=, May 13, 2005
    #10
  11. vips

    gabe garza Guest

    Shaw has the right idea.
    Here's what I'd do if you're going to keep using this same stored procedure
    to compute values based on a column that has your equation to compute.

    -- start of stored procedure
    CREATE PROCEDURE ProcessTotals
    @computevalue varchar(100)
    as
    declare @s varchar(100)
    set nocount on
    select 0 as Ttl into #t
    delete #t
    set @s = 'insert into #t (Ttl) values (' + @computevalue + ')'
    exec (@s)
    select Ttl from #t
    drop table #t
    -- end of stored procedure

    So you'd call your ProcessTotals stored procedure as follows:

    exec ProcessTotals '10*12*14'

    or

    declare @s varchar(100)

    set @s = '10*12*14'
    exec ProcessTotals @s

    or call it from VB or C# or ?? code.

    I think you get the idea
    This does work, I made sure to test it.
    One thing to note, if @computevalue is not a valid equation this will fail.
    If you're calling this stored procedure from code be sure to check for any
    errors.

    The only thing with Shaw's approach in a real world application, users or
    code are not allowed to create stored procedures on the fly. To allow that
    is to allow possible security risks.



    "Shaw" <> wrote in message
    news:D...
    >I think, you can use "EXEC" command to run a query string in SQL 2000.
    > Something likes that:
    >
    > CREATE PROCEDURE MySoredProcedure
    > AS
    > DECLARE @lv_SQL VARCHAR(1000)
    > SET @lv_SQL = 'SELECT' + '10*12*4'
    > EXEC(@lv_SQL)
    > GO
    >
    > Shaw
    >
    >
    > "Kevin Spencer" wrote:
    >
    >> Thinking it over, as I often do, I have one correction, and one
    >> additional
    >> note.
    >>
    >> Correction: I should have said 10*12*4, rather than 10*2*4. Same rules,
    >> but
    >> sloppy on my part.
    >>
    >> Additional note: You MAY need to identify if a string is unparsable, and
    >> handle the exception. MOST strings can NOT be parsed into mathematical
    >> expressions. If, for example, you write a SQL query that is supposed to
    >> perform a mathematical operation, and it can not be parsed, the database
    >> will throw an exception. So, depending upon how you're getting your
    >> string
    >> expression, you may need to handle the eventuality that an unparsable
    >> string
    >> is entered.
    >>
    >> --
    >> HTH,
    >>
    >> Kevin Spencer
    >> Microsoft MVP
    >> ..Net Developer
    >> What You Seek Is What You Get.
    >>
    >> "vips" <> wrote in message
    >> news:%...
    >> >I have a string
    >> > str="10*12*14"
    >> > now I want the total of this value
    >> > i.e. 10 multiply 12 multiply 14
    >> > how do i get it ?
    >> >
    >> > is there any function in vb.net to do that ??
    >> > if i put it as query to database I get the result, but I want to do it
    >> > in
    >> > the code.
    >> >
    >> > vips
    >> >
    >> >
    >> >
    >> >
    >> >
    >> >
    >> >

    >>
    >>
    >>
     
    gabe garza, May 13, 2005
    #11
  12. Darn, Shaw, I think you finally understood the question! How could I have
    missed it?

    --

    Kevin Spencer
    Microsoft MVP
    ..Net Developer
    What You Seek Is What You Get.

    "Shaw" <> wrote in message
    news:D...
    >I think, you can use "EXEC" command to run a query string in SQL 2000.
    > Something likes that:
    >
    > CREATE PROCEDURE MySoredProcedure
    > AS
    > DECLARE @lv_SQL VARCHAR(1000)
    > SET @lv_SQL = 'SELECT' + '10*12*4'
    > EXEC(@lv_SQL)
    > GO
    >
    > Shaw
    >
    >
    > "Kevin Spencer" wrote:
    >
    >> Thinking it over, as I often do, I have one correction, and one
    >> additional
    >> note.
    >>
    >> Correction: I should have said 10*12*4, rather than 10*2*4. Same rules,
    >> but
    >> sloppy on my part.
    >>
    >> Additional note: You MAY need to identify if a string is unparsable, and
    >> handle the exception. MOST strings can NOT be parsed into mathematical
    >> expressions. If, for example, you write a SQL query that is supposed to
    >> perform a mathematical operation, and it can not be parsed, the database
    >> will throw an exception. So, depending upon how you're getting your
    >> string
    >> expression, you may need to handle the eventuality that an unparsable
    >> string
    >> is entered.
    >>
    >> --
    >> HTH,
    >>
    >> Kevin Spencer
    >> Microsoft MVP
    >> ..Net Developer
    >> What You Seek Is What You Get.
    >>
    >> "vips" <> wrote in message
    >> news:%...
    >> >I have a string
    >> > str="10*12*14"
    >> > now I want the total of this value
    >> > i.e. 10 multiply 12 multiply 14
    >> > how do i get it ?
    >> >
    >> > is there any function in vb.net to do that ??
    >> > if i put it as query to database I get the result, but I want to do it
    >> > in
    >> > the code.
    >> >
    >> > vips
    >> >
    >> >
    >> >
    >> >
    >> >
    >> >
    >> >

    >>
    >>
    >>
     
    Kevin Spencer, May 13, 2005
    #12
  13. vips

    MarkSatterfield

    Joined:
    Jan 26, 2008
    Messages:
    10
    Location:
    Central Florida
    MarkSatterfield, Mar 19, 2008
    #13
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Jam
    Replies:
    3
    Views:
    2,832
    Martin Thompson
    Sep 15, 2004
  2. Jam
    Replies:
    2
    Views:
    773
  3. Pascal Peyremorte

    logic_std and multiply and array index

    Pascal Peyremorte, Aug 19, 2005, in forum: VHDL
    Replies:
    6
    Views:
    2,083
    Pascal Peyremorte
    Aug 29, 2005
  4. Replies:
    2
    Views:
    2,993
    Hubble
    Sep 13, 2005
  5. Replies:
    2
    Views:
    19,373
    Thomas Stanka
    Dec 15, 2005
Loading...

Share This Page