1. How do you convert a List back to a sequence ?
- Posted by Arthur Mashiatshidi <arthurm at GOLDFIELDS.CO.ZA> Sep 27, 2000
- 501 views
My Problem is converting a List-string back to a sequence: (# comments) Consider the following: MyList = (blaa....blaa...) MyDate = {2000,03,15} # to put this into Mylist addItem(MyList, sprint(Mydate)) --# if you don't sprint Mydate, it will bomb out in certain conditions!!??? # now I want to call MyList to use it to reference to a date in the calendar MyNewDate = getItem(MyList, i) # i is the number in of the item in the list # but alas, this is no longer {2000,03,15} # what is it? - I don't know, I can't seem to figure it out. How do you convert (MyList, i) back to MyDate sequence, so I can use subscripting to access the elements? Arthur B. Mashiatshidi
2. Re: How do you convert a List back to a sequence ?
- Posted by Dan B Moyer <DANMOYER at PRODIGY.NET> Sep 27, 2000
- 471 views
Arthur, Here's a thought: Instead of trying to convert a list's contents back to a sequence, make a *parallel* sequence, "MyDates", which has the dates in exactly the same order as your list (ie, create it at the same time); then use the index from the list to refer to the related date in the sequence. In other words, instead of *getting* the sequence of the date *from* the list, use the index from the list to refer to an element in the pre-existing parallel sequence, which already has sub-elements of the year/month/day. Would that work for you? Dan Moyer ----- Original Message ----- From: "Arthur Mashiatshidi" <arthurm at GOLDFIELDS.CO.ZA> To: <EUPHORIA at LISTSERV.MUOHIO.EDU> Sent: Wednesday, September 27, 2000 12:11 AM Subject: How do you convert a List back to a sequence ? > My Problem is converting a List-string back to a sequence: (# comments) > Consider the following: > > MyList = (blaa....blaa...) > MyDate = {2000,03,15} > # to put this into Mylist > > addItem(MyList, sprint(Mydate)) --# if you don't sprint Mydate, it will > bomb out in certain conditions!!??? > # now I want to call MyList to use it to reference to a date in the calendar > > MyNewDate = getItem(MyList, i) # i is the number in of the item in the list > # but alas, this is no longer {2000,03,15} > # what is it? - I don't know, I can't seem to figure it out. > > How do you convert (MyList, i) back to MyDate sequence, so I can use > subscripting to access the elements? > > Arthur B. Mashiatshidi
3. Re: How do you convert a List back to a sequence ?
- Posted by Derek Parnell <dparnell at BIGPOND.NET.AU> Sep 28, 2000
- 468 views
----- Original Message ----- From: "Arthur Mashiatshidi" <arthurm at GOLDFIELDS.CO.ZA> To: <EUPHORIA at LISTSERV.MUOHIO.EDU> Sent: Wednesday, September 27, 2000 6:11 PM Subject: How do you convert a List back to a sequence ? > My Problem is converting a List-string back to a sequence: (# comments) > Consider the following: > > MyList =3D (blaa....blaa...) > MyDate =3D {2000,03,15} > # to put this into Mylist > > addItem(MyList, sprint(Mydate)) --# if you don't sprint Mydate, it wil= l > bomb out in certain conditions!!??? > # now I want to call MyList to use it to reference to a date in the calendar > > MyNewDate =3D getItem(MyList, i) # i is the number in of the item in t= he list > # but alas, this is no longer {2000,03,15} > # what is it? - I don't know, I can't seem to figure it out. > > How do you convert (MyList, i) back to MyDate sequence, so I can use > subscripting to access the elements? > Hi Arthur, the addItem() routine accepts a text sequence as the second parameter. Th= is means that every element in the sequence must be an atom, and each atom m= ust have a value from 0 - 255. In your example, the date's year is > 255 so i= t would not be stored correctly( I suspect it will be stored as character 2= 08 "=D0"). Also, the month and day values are non-printable characters so wo= uld also look weird when displayed. This means that any item inserted by addItem must be a displayable string. So in your case, you should format the date into a text string before usi= ng adItem(). For example... --------------- sequence lDate if userDateStyle =3D "MDY" then lDate =3D sprintf("%02d%s%02s%s%04d", {theMonth, userDateSep, theDa= y, userDateSep, theYear}) elsif userDateStyle =3D "DMY" then lDate =3D sprintf("%02d%s%02s%s%04d", {theDay, userDateSep, theMont= h, userDateSep, theYear}) else -- assume YMD format lDate =3D sprintf("%04d%s%02s%s%02d", {theYear, userDateSep, theMon= th, userDateSep, theDay}) end if addItem(myList, lDate) Then to get it back again, just convert the date portions (YMD) back into numbers. lDate =3D getItem(myList, i) if userDateStyle =3D "MDY" then lDay =3D lDate[4 .. 5] lMonth =3D lDate[1 .. 2] lYear =3D lDate[7 .. 10] elsif userDateStyle =3D "DMY" lDay =3D lDate[1 .. 2] lMonth =3D lDate[4 .. 5] lYear =3D lDate[7 .. 10] else -- assume YMD format lDay =3D lDate[9 .. 10] lMonth =3D lDate[6 .. 7] lYear =3D lDate[1 .. 4] end if lTemp =3D value(lDay) theDay =3D lTemp[2] -- you may want to add some error checking if us= ers can change the list items. lTemp =3D value(lMonth) theMonth =3D lTemp[2] lTemp =3D value(lYear) theYear =3D lTemp[2] ----- cheers, Derek.