Re: Boolean Tests with dereferenced arrays are broken in

This WebDNA talk-list message is from

2003


It keeps the original formatting.
numero = 53166
interpreted = N
texte = Okay, just had to refresh my memory for how we intended this to work. This is not a bug with the ArrayGet context. Here's why: The ArrayGet context was provided as a means to retrieve several array index values at once. ArrayGet expects the inner content to be a series of (x,y,z...) index tokens. You can have any WebDNA inside the ArrayGet context, but it will be pre-parsed, and is expected to parse to (x,y,z...) type tokens. For example, given the following code: [ArraySet name=array1&dim=3](1)=a&(2)=b&(3)=[/ArraySet] [ArrayGet] [loop start=1&end=3] ([index]) [/loop] [/ArrayGet] The ArrayGet context is going to pre-parse the inner content first. So this would parse to: (1) (2) (3) Then the ArrayGet context will search for and interpret any (x,y,z...) type tokens it finds, ignoring anything else that exists. So the final result is: a b c The Array tutorial demonstrates this fairly clearly, but perhaps the documentation could be improved. -----Original Message----- From: Bob Minor [mailto:bob@cybermill.com] Sent: Saturday, September 27, 2003 11:51 AM To: WebDNA Talk Subject: Boolean Tests with dereferenced arrays are broken in WebDNA 5.1d Developers are reporting the dereferenced arrays are broken. Here is the test results: [if "[test_var]" = "[none]"] The boolean engine works. Item 1 is [none]. [if "[none]" = "[none]"] The boolean engine is broken with respect to dereferenced array values. temp_var is [none]. [if "[temp_var]" = "[none]"] The boolean engine is broken with respect to dereferenced array values even if the value is deposited in a temporary variable. [if "[none]" = [interpret]"[none]"[/interpret]] The boolean engine is broken with respect to dereferenced array values even if the compared value is dereferenced by an [interpret] context. [if "[none]" = "none"] The boolean engine is broken with respect to dereferenced array values even if the compared value is a simple string. Here is the test: WebDNA version: [version]

[text]test_var=[none][/text] [raw][if "[test_var]" = "[none]"][/raw]
[if "[test_var]" = "[none]"] [then] The boolean engine works.
[/then] [else] The boolean engine is broken.
[/else] [/if] [arrayset name=test_array&dim=1](1)=[none][/arrayset] [arrayget name=test_array]
Item 1 is (1).

[raw][if "(1)" = "[none]"][/raw]
[if "(1)" = "[none]"] [then] The boolean engine works with respect to dereferenced array values. [/then] [else] The boolean engine is broken with respect to dereferenced array values.
[/else] [/if] [text]temp_var=(1)[/text]
temp_var is [temp_var].
[raw][if "[temp_var]" = "[none]"][/raw]
[if "[temp_var]" = "[none]"] [then] The boolean engine works with respect to dereferenced array values only if the value is deposited in a temporary variable.
[/then] [else] The boolean engine is broken with respect to dereferenced array values even if the value is deposited in a temporary variable.
[/else] [/if]
[raw][if "(1)" = [interpret]"[none]"[/interpret]][/raw]
[if "(1)" = [interpret]"[none]"[/interpret]] [then] The boolean engine works with respect to dereferenced array values only if the compared value is dereferenced by an [raw][interpret][/raw] context.
[/then] [else] The boolean engine is broken with respect to dereferenced array values even if the compared value is dereferenced by an [raw][interpret][/raw] context.
[/else] [/if]
[raw][if "(1)" = "none"][/raw]
[if "(1)" = "none"] [then] The boolean engine works with respect to dereferenced array values only if the compared value is a simple string.
[/then] [else] The boolean engine is broken with respect to dereferenced array values even if the compared value is a simple string.
[/else] [/if] [/arrayget] ------------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list . To unsubscribe, E-mail to: To switch to the DIGEST mode, E-mail to Web Archive of this list is at: http://webdna.smithmicro.com/ ------------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list . To unsubscribe, E-mail to: To switch to the DIGEST mode, E-mail to Web Archive of this list is at: http://webdna.smithmicro.com/ Associated Messages, from the most recent to the oldest:

    
  1. Re: Boolean Tests with dereferenced arrays are broken in ( "Scott Anderson" 2003)
  2. Re: Boolean Tests with dereferenced arrays are broken in ( "Scott Anderson" 2003)
  3. Boolean Tests with dereferenced arrays are broken in WebDNA ( Bob Minor 2003)
Okay, just had to refresh my memory for how we intended this to work. This is not a bug with the ArrayGet context. Here's why: The ArrayGet context was provided as a means to retrieve several array index values at once. ArrayGet expects the inner content to be a series of (x,y,z...) index tokens. You can have any WebDNA inside the ArrayGet context, but it will be pre-parsed, and is expected to parse to (x,y,z...) type tokens. For example, given the following code: [ArraySet name=array1&dim=3](1)=a&(2)=b&(3)=[/ArraySet] [ArrayGet] [loop start=1&end=3] ([index]) [/loop] [/ArrayGet] The ArrayGet context is going to pre-parse the inner content first. So this would parse to: (1) (2) (3) Then the ArrayGet context will search for and interpret any (x,y,z...) type tokens it finds, ignoring anything else that exists. So the final result is: a b c The Array tutorial demonstrates this fairly clearly, but perhaps the documentation could be improved. -----Original Message----- From: Bob Minor [mailto:bob@cybermill.com] Sent: Saturday, September 27, 2003 11:51 AM To: WebDNA Talk Subject: Boolean Tests with dereferenced arrays are broken in WebDNA 5.1d Developers are reporting the dereferenced arrays are broken. Here is the test results: [if "[test_var]" = "[none]"] The boolean engine works. Item 1 is [none]. [if "[none]" = "[none]"] The boolean engine is broken with respect to dereferenced array values. temp_var is [none]. [if "[temp_var]" = "[none]"] The boolean engine is broken with respect to dereferenced array values even if the value is deposited in a temporary variable. [if "[none]" = [interpret]"[none]"[/interpret]] The boolean engine is broken with respect to dereferenced array values even if the compared value is dereferenced by an [interpret] context. [if "[none]" = "none"] The boolean engine is broken with respect to dereferenced array values even if the compared value is a simple string. Here is the test: WebDNA version: [version]

[text]test_var=[none][/text] [raw][if "[test_var]" = "[none]"][/raw]
[if "[test_var]" = "[none]"] [then] The boolean engine works.
[/then] [else] The boolean engine is broken.
[/else] [/if] [arrayset name=test_array&dim=1](1)=[none][/arrayset] [arrayget name=test_array]
Item 1 is (1).

[raw][if "(1)" = "[none]"][/raw]
[if "(1)" = "[none]"] [then] The boolean engine works with respect to dereferenced array values. [/then] [else] The boolean engine is broken with respect to dereferenced array values.
[/else] [/if] [text]temp_var=(1)[/text]
temp_var is [temp_var].
[raw][if "[temp_var]" = "[none]"][/raw]
[if "[temp_var]" = "[none]"] [then] The boolean engine works with respect to dereferenced array values only if the value is deposited in a temporary variable.
[/then] [else] The boolean engine is broken with respect to dereferenced array values even if the value is deposited in a temporary variable.
[/else] [/if]
[raw][if "(1)" = [interpret]"[none]"[/interpret]][/raw]
[if "(1)" = [interpret]"[none]"[/interpret]] [then] The boolean engine works with respect to dereferenced array values only if the compared value is dereferenced by an [raw][interpret][/raw] context.
[/then] [else] The boolean engine is broken with respect to dereferenced array values even if the compared value is dereferenced by an [raw][interpret][/raw] context.
[/else] [/if]
[raw][if "(1)" = "none"][/raw]
[if "(1)" = "none"] [then] The boolean engine works with respect to dereferenced array values only if the compared value is a simple string.
[/then] [else] The boolean engine is broken with respect to dereferenced array values even if the compared value is a simple string.
[/else] [/if] [/arrayget] ------------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list . To unsubscribe, E-mail to: To switch to the DIGEST mode, E-mail to Web Archive of this list is at: http://webdna.smithmicro.com/ ------------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list . To unsubscribe, E-mail to: To switch to the DIGEST mode, E-mail to Web Archive of this list is at: http://webdna.smithmicro.com/ "Scott Anderson"

DOWNLOAD WEBDNA NOW!

Top Articles:

Talk List

The WebDNA community talk-list is the best place to get some help: several hundred extremely proficient programmers with an excellent knowledge of WebDNA and an excellent spirit will deliver all the tips and tricks you can imagine...

Related Readings:

Nav. 4 probs with cart - Serious problem (1997) best way to test for the existence of a parameter in a url (2003) quit command on NT (1997) SKU lookup (1997) createfolder not behaving as expected (1999) An easy one (1999) Locking up with WebCatalog... (1997) Server Load (2000) Ghostly cached webpage (2000) WebCatalog Use Question (1997) Search/sort in URL Was: GuestBook example (1997) includes and cart numbers (1997) Colors (2000) Newbie Tax Question (1997) Finalizing Orders (2000) Re:Email Problem (1997) [WebDNA] [OT] hello (2012) PSC recommends what date format yr 2000??? (1997) process SSI (1998) (2000)