RE: VARIABLE-1 = '' Inconsistent behaviour
For what it's worth, the Arev knowledgebase has a great article on optimising BASIC code (for speed!), which mentions that the -1 concept is the slowest structure. Admittedly we have processors that thrash these things out in milliseconds today, but for the purist... The A = A : newvalue : @fm process is (to quote Andrew McCauley) 20-30 times faster dennis -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: 04 February 2004 03:06 To: [EMAIL PROTECTED] Subject: RE: VARIABLE-1 = '' Inconsistent behaviour -- u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users
RE: VARIABLE-1 = '' Inconsistent behaviour
One easy way I sometimes use is to just concatenate a field mark along with the new value and then remove the first field mark at the end... eg. A = LOOP INPUT B A := @FM:B UNTIL condition REPEAT A = A[2,LEN(A)-1] AdrianW -Original Message- From: Marco Manyevere [mailto:[EMAIL PROTECTED] Sent: Tuesday, 3 February 2004 15:00 To: U2 Users Discussion List Subject: Re: VARIABLE-1 = '' Inconsistent behaviour OK the documentation for REPLACE says something about inserting empty strings. For information flavour it does say the @FM will be added for empty strings without making a distinction between adding to an empty or non empty array. If this is a feature then it implies major code revisions for me whereever I use the -1 construct. What would be the shortest/smartest way of adding strings including non significant nulls? I hate to do: A = '' INPUT B; * May be empty IF LEN(B) THEN A-1 = B END ELSE IF LEN(A) THEN A-1 = B END ELSE A = @FM END END I have also tested A1 = '' A2 = '' A3 = 3 A4 = '' A5 = 5 and it inserts the @FM as expected but this involves maintaining a counter for the dynamic array. Louis Windsor [EMAIL PROTECTED] wrote: I think this is a feature. Universe does NOT insert non-significant nulls. In other words your first two (A-1 = '') do not do anything! It is consistent in its' behaviour as you can count on it to do the above. It has done this as long as I remember. I found this out through bitter experience. Louis - Original Message - From: Marco mailto:[EMAIL PROTECTED] Manyevere To: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] Sent: Tuesday, February 03, 2004 12:55 PM Subject: VARIABLE-1 = '' Inconsistent behaviour Hi All, Consider the program: A = '' A-1 = '' A-1 = '' A-1 = 3 A-1 = '' A-1 = 4 PRINT A3 I expect it output '3' but it outputs '4'. Whats the explanation? I'm on UV 9.6 [NT] running information flavour. Regards, Marco _ BT Yahoo! Broadband - Free modem offer, sign http://uk.rd.yahoo.com/evt=21064/*http://btyahoo.yahoo.co.uk up online today and save £80 _ ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users _ http://uk.rd.yahoo.com/mail/tagline_messenger/*http://uk.messenger.yahoo.co m Yahoo! Messenger - Communicate instantly...Ping your friends today! http://uk.rd.yahoo.com/mail/tagline_messenger/*http://uk.messenger.yahoo.co m/download/index.html Download Messenger Now Disclaimer. This e-mail is private and confidential. If you are not the intended recipient, please advise us by return e-mail immediately, and delete the e-mail and any attachments without using or disclosing the contents in any way. The views expressed in this e-mail are those of the author, and do not represent those of this company unless this is clearly indicated. You should scan this e-mail and any attachments for viruses. This company accepts no liability for any direct or indirect damage or loss resulting from the use of any attachments to this e-mail. ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users
RE: VARIABLE-1 = '' Inconsistent behaviour
It was this way on PI as well. Bear in mind that the-1 syntax was an "accident" - as originally implemented the search mechanism simply decremented to zero or the end of the string, and some bright spark realised that if you started with a negative number then it would always hit the end of the string rather than zero. So the counter-intuitive result that appending null to null gives null isn't so strange. This behaviour isprobably copied from "original Pick". We get round it by initialising the variable to "*", and then doing a DEL 1 when we've finished. Cheers, Wol From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Louis WindsorSent: 03 February 2004 06:17To: U2 Users Discussion ListSubject: Re: VARIABLE-1 = '' Inconsistent behaviour I think this is a "feature". Universe does NOT insert non-significant nulls. In other words your first two (A-1 = '') do not do anything! It is consistent in its' behaviour as you can count on it to do the above. It has done this as long as I remember. I found this out through bitter experience. Louis - Original Message - From: Marco Manyevere To: [EMAIL PROTECTED] Sent: Tuesday, February 03, 2004 12:55 PM Subject: VARIABLE-1 = '' Inconsistent behaviour Hi All, Consider the program: A = '' A-1 = '' A-1 = '' A-1 = 3 A-1 = '' A-1 = 4 PRINT A3 I expect it output '3' but it outputs '4'. Whats the explanation? I'm on UV 9.6 [NT] running information flavour. Regards, Marco BT Yahoo! Broadband - Free modem offer, sign up online today and save £80 ___u2-users mailing list[EMAIL PROTECTED]http://www.oliver.com/mailman/listinfo/u2-users *** This transmission is intended for the named recipient only. It may contain private and confidential information. If this has come to you in error you must not act on anything disclosed in it, nor must you copy it, modify it, disseminate it in any way, or show it to anyone. Please e-mail the sender to inform us of the transmission error or telephone ECA International immediately and delete the e-mail from your information system. Telephone numbers for ECA International offices are: Sydney +61 (0)2 9911 7799, Hong Kong + 852 2121 2388, London +44 (0)20 7351 5000 and New York +1 212 582 2333. *** ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users
Re: VARIABLE-1 = '' Inconsistent behaviour
At least with maintaining a variable you are in control. - Original Message - From: Marco Manyevere To: U2 Users Discussion List Sent: Tuesday, February 03, 2004 2:00 AM Subject: Re: VARIABLE-1 = '' Inconsistent behaviour OK the documentation for REPLACEsays something about inserting empty strings. For information flavour it does say the @FM will be added for empty strings without making a distinction between adding to an empty or non empty array. If this is a feature then it implies major code revisions for me whereever I use the -1 construct. What would be the shortest/smartest way of adding strings including non significant nulls? I hate to do: A = '' INPUT B; *Maybe empty IF LEN(B) THEN A-1 = B END ELSE IF LEN(A) THEN A-1 = B END ELSE A = @FM END END I have also tested A1 = '' A2 = '' A3 = 3 A4 = '' A5 = 5 and it inserts the @FM as expected but thisinvolves maintaining a counter forthe dynamic array. Louis Windsor [EMAIL PROTECTED] wrote: I think this is a "feature". Universe does NOT insert non-significant nulls. In other words your first two (A-1 = '') do not do anything! It is consistent in its' behaviour as you can count on it to do the above. It has done this as long as I remember. I found this out through bitter experience. Louis - Original Message - From: Marco Manyevere To: [EMAIL PROTECTED] Sent: Tuesday, February 03, 2004 12:55 PM Subject: VARIABLE-1 = '' Inconsistent behaviour Hi All, Consider the program: A = '' A-1 = '' A-1 = '' A-1 = 3 A-1 = '' A-1 = 4 PRINT A3 I expect it output '3' but it outputs '4'. Whats the explanation? I'm on UV 9.6 [NT] running information flavour. Regards, Marco BT Yahoo! Broadband - Free modem offer, sign up online today and save £80 ___u2-users mailing list[EMAIL PROTECTED]http://www.oliver.com/mailman/listinfo/u2-users___u2-users mailing list[EMAIL PROTECTED]http://www.oliver.com/mailman/listinfo/u2-users Yahoo! Messenger - Communicate instantly..."Ping" your friends today! Download Messenger Now ___u2-users mailing list[EMAIL PROTECTED]http://www.oliver.com/mailman/listinfo/u2-users ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users
Re: VARIABLE-1 = '' Inconsistent behaviour
I worked on an application that had: A=INSERT(A,1,-1;NEWVAL:@VM) and it was tricky. You should develop your own best approach to this concept of managing manual delimiters. BTW, is the -1 necessary with A=A[2,LEN(A)-1]. For that matter, could you use A=A[2,1000]. My question is if the second value in [] exceeds the length of A are there any surprising trailing characters? I've used A=A[2,10] (or some knowingly high number) with no consequences over the years. my 1 cent. - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, February 03, 2004 2:09 AM Subject: RE: VARIABLE-1 = '' Inconsistent behaviour One easy way I sometimes use is to just concatenate a field mark along with the new value and then remove the first field mark at the end... eg. A = LOOP INPUT B A := @FM:B UNTIL condition REPEAT A = A[2,LEN(A)-1] AdrianW -Original Message- From: Marco Manyevere [mailto:[EMAIL PROTECTED] Sent: Tuesday, 3 February 2004 15:00 To: U2 Users Discussion List Subject: Re: VARIABLE-1 = '' Inconsistent behaviour OK the documentation for REPLACE says something about inserting empty strings. For information flavour it does say the @FM will be added for empty strings without making a distinction between adding to an empty or non empty array. If this is a feature then it implies major code revisions for me whereever I use the -1 construct. What would be the shortest/smartest way of adding strings including non significant nulls? I hate to do: A = '' INPUT B; * May be empty IF LEN(B) THEN A-1 = B END ELSE IF LEN(A) THEN A-1 = B END ELSE A = @FM END END I have also tested A1 = '' A2 = '' A3 = 3 A4 = '' A5 = 5 and it inserts the @FM as expected but this involves maintaining a counter for the dynamic array. Louis Windsor [EMAIL PROTECTED] wrote: I think this is a feature. Universe does NOT insert non-significant nulls. In other words your first two (A-1 = '') do not do anything! It is consistent in its' behaviour as you can count on it to do the above. It has done this as long as I remember. I found this out through bitter experience. Louis - Original Message - From: Marco mailto:[EMAIL PROTECTED] Manyevere To: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] Sent: Tuesday, February 03, 2004 12:55 PM Subject: VARIABLE-1 = '' Inconsistent behaviour Hi All, Consider the program: A = '' A-1 = '' A-1 = '' A-1 = 3 A-1 = '' A-1 = 4 PRINT A3 I expect it output '3' but it outputs '4'. Whats the explanation? I'm on UV 9.6 [NT] running information flavour. Regards, Marco _ BT Yahoo! Broadband - Free modem offer, sign http://uk.rd.yahoo.com/evt=21064/*http://btyahoo.yahoo.co.uk up online today and save £80 _ ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users _ http://uk.rd.yahoo.com/mail/tagline_messenger/*http://uk.messenger.yahoo.co m Yahoo! Messenger - Communicate instantly...Ping your friends today! http://uk.rd.yahoo.com/mail/tagline_messenger/*http://uk.messenger.yahoo.co m/download/index.html Download Messenger Now Disclaimer. This e-mail is private and confidential. If you are not the intended recipient, please advise us by return e-mail immediately, and delete the e-mail and any attachments without using or disclosing the contents in any way. The views expressed in this e-mail are those of the author, and do not represent those of this company unless this is clearly indicated. You should scan this e-mail and any attachments for viruses. This company accepts no liability for any direct or indirect damage or loss resulting from the use of any attachments to this e-mail. ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users
Re: VARIABLE-1 = '' Inconsistent behaviour
we use the A[x,] as well as A[*,x,] constructs a lot - no trailing characters/fields - Original Message - From: Mark Johnson [EMAIL PROTECTED] To: U2 Users Discussion List [EMAIL PROTECTED] Sent: Tuesday, February 03, 2004 8:14 AM Subject: Re: VARIABLE-1 = '' Inconsistent behaviour I worked on an application that had: A=INSERT(A,1,-1;NEWVAL:@VM) and it was tricky. You should develop your own best approach to this concept of managing manual delimiters. BTW, is the -1 necessary with A=A[2,LEN(A)-1]. For that matter, could you use A=A[2,1000]. My question is if the second value in [] exceeds the length of A are there any surprising trailing characters? I've used A=A[2,10] (or some knowingly high number) with no consequences over the years. my 1 cent. - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, February 03, 2004 2:09 AM Subject: RE: VARIABLE-1 = '' Inconsistent behaviour One easy way I sometimes use is to just concatenate a field mark along with the new value and then remove the first field mark at the end... eg. A = LOOP INPUT B A := @FM:B UNTIL condition REPEAT A = A[2,LEN(A)-1] AdrianW -Original Message- From: Marco Manyevere [mailto:[EMAIL PROTECTED] Sent: Tuesday, 3 February 2004 15:00 To: U2 Users Discussion List Subject: Re: VARIABLE-1 = '' Inconsistent behaviour OK the documentation for REPLACE says something about inserting empty strings. For information flavour it does say the @FM will be added for empty strings without making a distinction between adding to an empty or non empty array. If this is a feature then it implies major code revisions for me whereever I use the -1 construct. What would be the shortest/smartest way of adding strings including non significant nulls? I hate to do: A = '' INPUT B; * May be empty IF LEN(B) THEN A-1 = B END ELSE IF LEN(A) THEN A-1 = B END ELSE A = @FM END END I have also tested A1 = '' A2 = '' A3 = 3 A4 = '' A5 = 5 and it inserts the @FM as expected but this involves maintaining a counter for the dynamic array. Louis Windsor [EMAIL PROTECTED] wrote: I think this is a feature. Universe does NOT insert non-significant nulls. In other words your first two (A-1 = '') do not do anything! It is consistent in its' behaviour as you can count on it to do the above. It has done this as long as I remember. I found this out through bitter experience. Louis - Original Message - From: Marco mailto:[EMAIL PROTECTED] Manyevere To: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] Sent: Tuesday, February 03, 2004 12:55 PM Subject: VARIABLE-1 = '' Inconsistent behaviour Hi All, Consider the program: A = '' A-1 = '' A-1 = '' A-1 = 3 A-1 = '' A-1 = 4 PRINT A3 I expect it output '3' but it outputs '4'. Whats the explanation? I'm on UV 9.6 [NT] running information flavour. Regards, Marco _ BT Yahoo! Broadband - Free modem offer, sign http://uk.rd.yahoo.com/evt=21064/*http://btyahoo.yahoo.co.uk up online today and save £80 _ ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users _ http://uk.rd.yahoo.com/mail/tagline_messenger/*http://uk.messenger.yahoo.co m Yahoo! Messenger - Communicate instantly...Ping your friends today! http://uk.rd.yahoo.com/mail/tagline_messenger/*http://uk.messenger.yahoo.co m/download/index.html Download Messenger Now Disclaimer. This e-mail is private and confidential. If you are not the intended recipient, please advise us by return e-mail immediately, and delete the e-mail and any attachments without using or disclosing the contents in any way. The views expressed in this e-mail are those of the author, and do not represent those of this company unless this is clearly indicated. You should scan this e-mail and any attachments for viruses. This company accepts no liability for any direct or indirect damage or loss resulting from the use of any attachments to this e-mail. ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users
RE: VARIABLE-1 = '' Inconsistent behaviour
In universe, the -1 is specifically tested for appending, not an accident as indicated (in scd.c) Maybe that is how it worked in Pick, but not in PI or UV. At 04:21 AM 02/03/2004, you wrote: Content-class: urn:content-classes:message Content-Type: multipart/alternative; boundary=_=_NextPart_001_01C3EA37.1386B4A2 It was this way on PI as well. Bear in mind that the -1 syntax was an accident - as originally implemented the search mechanism simply decremented to zero or the end of the string, and some bright spark realised that if you started with a negative number then it would always hit the end of the string rather than zero. So the counter-intuitive result that appending null to null gives null isn't so strange. This behaviour is probably copied from original Pick. We get round it by initialising the variable to *, and then doing a DEL 1 when we've finished. Cheers, Wol -- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Louis Windsor Sent: 03 February 2004 06:17 To: U2 Users Discussion List Subject: Re: VARIABLE-1 = '' Inconsistent behaviour I think this is a feature. Universe does NOT insert non-significant nulls. In other words your first two (A-1 = '') do not do anything! It is consistent in its' behaviour as you can count on it to do the above. It has done this as long as I remember. I found this out through bitter experience. Louis - Original Message - From: mailto:[EMAIL PROTECTED]Marco Manyevere To: mailto:[EMAIL PROTECTED][EMAIL PROTECTED] Sent: Tuesday, February 03, 2004 12:55 PM Subject: VARIABLE-1 = '' Inconsistent behaviour Hi All, Consider the program: A = '' A-1 = '' A-1 = '' A-1 = 3 A-1 = '' A-1 = 4 PRINT A3 I expect it output '3' but it outputs '4'. Whats the explanation? I'm on UV 9.6 [NT] running information flavour. Regards, Marco BT Yahoo! Broadband - Free modem offer, http://uk.rd.yahoo.com/evt=21064/*http://btyahoo.yahoo.co.uksign up online today and save £80 -- ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users *** This transmission is intended for the named recipient only. It may contain private and confidential information. If this has come to you in error you must not act on anything disclosed in it, nor must you copy it, modify it, disseminate it in any way, or show it to anyone. Please e-mail the sender to inform us of the transmission error or telephone ECA International immediately and delete the e-mail from your information system. Telephone numbers for ECA International offices are: Sydney +61 (0)2 9911 7799, Hong Kong + 852 2121 2388, London +44 (0)20 7351 5000 and New York +1 212 582 2333. *** ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users
RE: VARIABLE-1 = '' Inconsistent behaviour
I must admit that I usually use A[x,9] BUT a couple of times over the years it has come back and bitten me. One case was a dynamic array of item descriptions - each description was a variable length string (average of less than 100 characters) and each array would have (on average) say 10 or 20 items. So using ITEM.LIST[2,] worked fine. But then you get the user who creates a list of well over 100 longer than average descriptions and the program starts losing the last few when filing. AdrianW -Original Message- From: gerry simpson [mailto:[EMAIL PROTECTED] Sent: Tuesday, 3 February 2004 21:48 To: U2 Users Discussion List Subject: Re: VARIABLE-1 = '' Inconsistent behaviour we use the A[x,] as well as A[*,x,] constructs a lot - no trailing characters/fields - Original Message - From: Mark Johnson [EMAIL PROTECTED] To: U2 Users Discussion List [EMAIL PROTECTED] Sent: Tuesday, February 03, 2004 8:14 AM Subject: Re: VARIABLE-1 = '' Inconsistent behaviour I worked on an application that had: A=INSERT(A,1,-1;NEWVAL:@VM) and it was tricky. You should develop your own best approach to this concept of managing manual delimiters. BTW, is the -1 necessary with A=A[2,LEN(A)-1]. For that matter, could you use A=A[2,1000]. My question is if the second value in [] exceeds the length of A are there any surprising trailing characters? I've used A=A[2,10] (or some knowingly high number) with no consequences over the years. my 1 cent. - Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, February 03, 2004 2:09 AM Subject: RE: VARIABLE-1 = '' Inconsistent behaviour One easy way I sometimes use is to just concatenate a field mark along with the new value and then remove the first field mark at the end... eg. A = LOOP INPUT B A := @FM:B UNTIL condition REPEAT A = A[2,LEN(A)-1] AdrianW -Original Message- From: Marco Manyevere [mailto:[EMAIL PROTECTED] Sent: Tuesday, 3 February 2004 15:00 To: U2 Users Discussion List Subject: Re: VARIABLE-1 = '' Inconsistent behaviour OK the documentation for REPLACE says something about inserting empty strings. For information flavour it does say the @FM will be added for empty strings without making a distinction between adding to an empty or non empty array. If this is a feature then it implies major code revisions for me whereever I use the -1 construct. What would be the shortest/smartest way of adding strings including non significant nulls? I hate to do: A = '' INPUT B; * May be empty IF LEN(B) THEN A-1 = B END ELSE IF LEN(A) THEN A-1 = B END ELSE A = @FM END END I have also tested A1 = '' A2 = '' A3 = 3 A4 = '' A5 = 5 and it inserts the @FM as expected but this involves maintaining a counter for the dynamic array. Louis Windsor [EMAIL PROTECTED] wrote: I think this is a feature. Universe does NOT insert non-significant nulls. In other words your first two (A-1 = '') do not do anything! It is consistent in its' behaviour as you can count on it to do the above. It has done this as long as I remember. I found this out through bitter experience. Louis - Original Message - From: Marco mailto:[EMAIL PROTECTED] Manyevere To: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] Sent: Tuesday, February 03, 2004 12:55 PM Subject: VARIABLE-1 = '' Inconsistent behaviour Hi All, Consider the program: A = '' A-1 = '' A-1 = '' A-1 = 3 A-1 = '' A-1 = 4 PRINT A3 I expect it output '3' but it outputs '4'. Whats the explanation? I'm on UV 9.6 [NT] running information flavour. Regards, Marco _ BT Yahoo! Broadband - Free modem offer, sign http://uk.rd.yahoo.com/evt=21064/*http://btyahoo.yahoo.co.uk up online today and save £80 _ ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users ___ u2-users mailing list [EMAIL PROTECTED] http://www.oliver.com/mailman/listinfo/u2-users _ http://uk.rd.yahoo.com/mail/tagline_messenger/*http://uk.messenger.yahoo.co m Yahoo! Messenger - Communicate instantly...Ping your friends today! http://uk.rd.yahoo.com/mail/tagline_messenger/*http://uk.messenger.yahoo.co m/download/index.html Download Messenger Now Disclaimer. This e-mail is private and confidential. If you are not the intended recipient, please advise us by return e-mail immediately, and delete the e-mail and any attachments without using or disclosing the contents in any way. The views expressed in this e-mail are those of the author, and do not represent those of this company unless this is clearly indicated. You should scan this e-mail and any attachments for viruses. This company accepts no liability for any direct or indirect damage or loss resulting from the use of any