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 indexvalues at once. ArrayGet expects the inner content to be a series of(x,y,z...) index tokens. You can have any WebDNA inside the ArrayGetcontext, 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 thiswould parse to:(1)(2)(3)Then the ArrayGet context will search for and interpret any (x,y,z...) typetokens it finds, ignoring anything else that exists. So the final resultis:abcThe Array tutorial demonstrates this fairly clearly, but perhaps thedocumentation could be improved.-----Original Message-----From: Bob Minor [mailto:bob@cybermill.com]Sent: Saturday, September 27, 2003 11:51 AMTo: WebDNA TalkSubject: Boolean Tests with dereferenced arrays are broken in WebDNA5.1dDevelopers 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 valueseven if the value is deposited in a temporary variable.[if "[none]" = [interpret]"[none]"[/interpret]]The boolean engine is broken with respect to dereferenced array valueseven if the compared value is dereferenced by an [interpret] context.[if "[none]" = "none"]The boolean engine is broken with respect to dereferenced array valueseven 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 arrayvalues.
[/then] [else]
The boolean engine is broken with respect to dereferencedarrayvalues.
[/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 valuesonlyif the value is deposited in a temporary variable.
[/then] [else]
The boolean engine is broken with respect to dereferencedarrayvalues 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 valuesonlyif the compared value is dereferenced by an [raw][interpret][/raw]context.
[/then] [else]
The boolean engine is broken with respect to dereferencedarrayvalues 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 valuesonlyif the compared value is a simple string.
[/then] [else]
The boolean engine is broken with respect to dereferencedarrayvalues 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 toWeb 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:
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 indexvalues at once. ArrayGet expects the inner content to be a series of(x,y,z...) index tokens. You can have any WebDNA inside the ArrayGetcontext, 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 thiswould parse to:(1)(2)(3)Then the ArrayGet context will search for and interpret any (x,y,z...) typetokens it finds, ignoring anything else that exists. So the final resultis:abcThe Array tutorial demonstrates this fairly clearly, but perhaps thedocumentation could be improved.-----Original Message-----From: Bob Minor [mailto:bob@cybermill.com]Sent: Saturday, September 27, 2003 11:51 AMTo: WebDNA TalkSubject: Boolean Tests with dereferenced arrays are broken in WebDNA5.1dDevelopers 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 valueseven if the value is deposited in a temporary variable.[if "[none]" = [interpret]"[none]"[/interpret]]The boolean engine is broken with respect to dereferenced array valueseven if the compared value is dereferenced by an [interpret] context.[if "[none]" = "none"]The boolean engine is broken with respect to dereferenced array valueseven 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 arrayvalues.
[/then] [else] The boolean engine is broken with respect to dereferencedarrayvalues.
[/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 valuesonlyif the value is deposited in a temporary variable.
[/then] [else] The boolean engine is broken with respect to dereferencedarrayvalues 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 valuesonlyif the compared value is dereferenced by an [raw][interpret][/raw]context.
[/then] [else] The boolean engine is broken with respect to dereferencedarrayvalues 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 valuesonlyif the compared value is a simple string.
[/then] [else] The boolean engine is broken with respect to dereferencedarrayvalues 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 toWeb 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)