Re: [BLACKBOX] SYSTEM.VAL, WITH, IS, and type casting

From: Douglas G. Danforth <"Douglas>
Date: Tue, 23 Aug 2011 02:08:09 -0700

----boundary-LibPST-iamunique-483314942_-_- Content-type: text/plain On 8/23/2011 12:25 AM, Treutwein Bernhard wrote: Hi Doug, although I am a bit uncertain, I still fear that you have to resort to low level stuff at this stage (and we are back at the problem outlined by Hanspeter M. about storing and retrieving objects) since you normally don't know what kind of extension you're reading and you can't decide which one it is. If you write your MyObject (which I asume to be an extension of Stores.Store) as a Stores.Store you loose all information of the extended object. When retrieving it you have a Stores.Store with all additional information lost. If you have an object of static type Store, you can test for its dynamic type when writing, but you cannot when reading ... I think here the asymmetry stems from. hope this helps ... I believe when one writes wr.WriteStore(x) the dynamic type of x is written to the file so that when it is read as rd.ReadStore(store) the dynamic type is recovered otherwise doing a type cast x := store(MyObject) would not make sense. Again, I am simply still musing over the consequences of using SYSTEM.VAL. In fact I have adopted the method when I use my AbstractLists.List which has a Reader of the list just like a file has a reader or a stores has a reader. My three reader functions are rd.ConnectTo(list) rd.First; WHILE rd.Next(SYSTEM.VAL(AbstractLists.Object, myObject)) DO ... END; and I need only one variable "myObject" rather than two where myObject is an extension of AbstractLists.Object. -Doug ---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy ----boundary-LibPST-iamunique-483314942_-_- Content-type: application/rtf Content-transfer-encoding: base64 Content-Disposition: attachment; filename="rtf-body.rtf" e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbWh0bWwxIFxkZWZmMHtcZm9udHRibA0Ke1xmMFxm c3dpc3NcZmNoYXJzZXQwIEFyaWFsO30NCntcZjFcZm1vZGVybiBDb3VyaWVyIE5ldzt9DQp7XGYy XGZuaWxcZmNoYXJzZXQyIFN5bWJvbDt9DQp7XGYzXGZtb2Rlcm5cZmNoYXJzZXQwIENvdXJpZXIg TmV3O319DQp7XGNvbG9ydGJsXHJlZDBcZ3JlZW4wXGJsdWUwO1xyZWQwXGdyZWVuMFxibHVlMjU1 O30NClx1YzFccGFyZFxwbGFpblxkZWZ0YWIzNjAgXGYwXGZzMjQgDQp7XCpcaHRtbHRhZzE5IDxo dG1sPn0NCntcKlxodG1sdGFnMiBccGFyIH0NCntcKlxodG1sdGFnMjQyICAgfQ0Ke1wqXGh0bWx0 YWczNCA8aGVhZD59DQp7XCpcaHRtbHRhZzEgXHBhciB9DQp7XCpcaHRtbHRhZzI0MSAgICAgfQ0K e1wqXGh0bWx0YWcxIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDEgICB9DQp7XCpcaHRtbHRhZzQxIDwv aGVhZD59DQp7XCpcaHRtbHRhZzIgXHBhciB9DQp7XCpcaHRtbHRhZzI0MiAgIH0NCntcKlxodG1s dGFnNTAgPGJvZHkgYmdjb2xvcj0iI0ZGRkZGRiIgdGV4dD0iIzAwMDAwMCI+fVxodG1scnRmIFx2 aWV3a2luZDUNCntcKlxiYWNrZ3JvdW5kIHtcc2hwe1wqXHNocGluc3R7XHNwe1xzbiBmaWxsQ29s b3J9e1xzdiAxNjc3NzIxNX19e1xzcHtcc24gZkZpbGxlZH17XHN2IDF9fX19fVxodG1scnRmMCAN CntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgICB9e1wqXGh0bWx0YWc2NH1c aHRtbHJ0ZiB7XGh0bWxydGYwIE9uIDgvMjMvMjAxMSAxMjoyNSBBTSwgVHJldXR3ZWluIEJlcm5o YXJkIHdyb3RlOg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzg0ICAgICB9e1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntc KlxodG1sdGFnOTYgPGJsb2NrcXVvdGVccGFyIGNpdGU9Im1pZDoyMzlDRUJERUU4M0VCOTQ5QTQ4 QjZEQjgxMkFBMTlGNjAzQzczOEFFQGV4Mi56dXYudW5pLW11ZW5jaGVuLmRlIlxwYXIgICAgICAg dHlwZT0iY2l0ZSI+fVxodG1scnRmIFxwYXINCntcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBh ciB9DQp7XCpcaHRtbHRhZzI0MCAgICAgICB9DQp7XCpcaHRtbHRhZzEyOCA8cHJlIHdyYXA9IiI+ fVxodG1scnRmIHtccGFyZFxwbGFpblxmMVxmczIwIFxodG1scnRmMCBcaHRtbHJ0ZiB7XGh0bWxy dGYwIFxsaTM2MCBIaSBEb3VnLFxsaW5lDQphbHRob3VnaCBJIGFtIGEgYml0IHVuY2VydGFpbiwg SSBzdGlsbCBmZWFyIHRoYXQgeW91IGhhdmUgdG8gcmVzb3J0IFxsaW5lDQp0byBsb3cgbGV2ZWwg c3R1ZmYgYXQgdGhpcyBzdGFnZSAoYW5kIHdlIGFyZSBiYWNrIGF0IHRoZSBwcm9ibGVtIFxsaW5l DQpvdXRsaW5lZCBieSBIYW5zcGV0ZXIgTS4gYWJvdXQgc3RvcmluZyBhbmQgcmV0cmlldmluZyBv YmplY3RzKSBzaW5jZSBcbGluZQ0KeW91IG5vcm1hbGx5IGRvbid0IGtub3cgd2hhdCBraW5kIG9m IGV4dGVuc2lvbiB5b3UncmUgcmVhZGluZyBhbmRcbGluZQ0KeW91IGNhbid0IGRlY2lkZSB3aGlj aCBvbmUgaXQgaXMuIElmIHlvdSB3cml0ZSB5b3VyIE15T2JqZWN0ICh3aGljaFxsaW5lDQpJIGFz dW1lIHRvIGJlIGFuIGV4dGVuc2lvbiBvZiBTdG9yZXMuU3RvcmUpIGFzIGEgU3RvcmVzLlN0b3Jl IHlvdSBcbGluZQ0KbG9vc2UgYWxsIGluZm9ybWF0aW9uIG9mIHRoZSBleHRlbmRlZCBvYmplY3Qu IFdoZW4gcmV0cmlldmluZyBpdFxsaW5lDQp5b3UgaGF2ZSBhIFN0b3Jlcy5TdG9yZSB3aXRoIGFs bCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGxvc3QuXGxpbmUNClxsaW5lDQpJZiB5b3UgaGF2ZSBh biBvYmplY3Qgb2Ygc3RhdGljIHR5cGUgU3RvcmUsIHlvdSBjYW4gdGVzdCBmb3IgaXRzXGxpbmUN CmR5bmFtaWMgdHlwZSB3aGVuIHdyaXRpbmcsIGJ1dCB5b3UgY2Fubm90IHdoZW4gcmVhZGluZyAu Li5cbGluZQ0KSSB0aGluayBoZXJlIHRoZSBhc3ltbWV0cnkgc3RlbXMgZnJvbS5cbGluZQ0KXGxp bmUNCmhvcGUgdGhpcyBoZWxwcyAuLi5ccGFyXGh0bWxydGZ9XGh0bWxydGYwDQoNCntcKlxodG1s dGFnMTM2IDwvcHJlPn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0K e1wqXGh0bWx0YWcyNDAgICAgIH0NCntcKlxodG1sdGFnMTA0IDwvYmxvY2txdW90ZT59XGh0bWxy dGYgfVxwYXINClxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQw ICAgICB9DQp7XCpcaHRtbHRhZzExMiA8YnI+fVxodG1scnRmIFxwYXINClxodG1scnRmMCANCntc KlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgICB9e1wqXGh0bWx0YWc2NH1caHRt bHJ0ZiB7XGh0bWxydGYwIEkgYmVsaWV2ZSB3aGVuIG9uZSB3cml0ZXMgd3IuV3JpdGVTdG9yZSh4 KSB0aGUgZHluYW1pYyB0eXBlIG9mIHggaXMNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAg XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfXdyaXR0ZW4gdG8gdGhlIGZpbGUNCntcKlxo dG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBc cGFyIH0NCntcKlxodG1sdGFnODQgICAgIH1zbyB0aGF0IHdoZW4gaXQgaXMgcmVhZCBhcyByZC5S ZWFkU3RvcmUoc3RvcmUpIHRoZSBkeW5hbWljIHR5cGUgaXMNCntcKlxodG1sdGFnNCBccGFyIH1c aHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfXJlY292ZXJlZCBvdGhlcndp c2UNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo dG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH1kb2luZyBhIHR5cGUgY2FzdA0Ke1wq XGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgeCA6PSBzdG9yZShNeU9i amVjdCkgd291bGQgbm90IG1ha2Ugc2Vuc2UuDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRm IFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAg ICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9QWdhaW4sIEkgYW0gc2ltcGx5IHN0 aWxsIG11c2luZyBvdmVyIHRoZSBjb25zZXF1ZW5jZXMgb2YgdXNpbmcNCntcKlxodG1sdGFnNCBc cGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfVNZU1RFTS5WQUwu DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRt bHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxo dG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRh Zzg0ICAgICB9SW4gZmFjdCBJIGhhdmUgYWRvcHRlZCB0aGUgbWV0aG9kIHdoZW4gSSB1c2UgbXkg QWJzdHJhY3RMaXN0cy5MaXN0DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRm MCANCntcKlxodG1sdGFnODQgICAgIH13aGljaCBoYXMNCntcKlxodG1sdGFnMTE2IDxicj59XGh0 bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFn ODQgICAgIH1hIFJlYWRlciBvZiB0aGUgbGlzdCBqdXN0IGxpa2UgYSBmaWxlIGhhcyBhIHJlYWRl ciBvciBhIHN0b3JlcyBoYXMgYQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9cmVhZGVyLg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRt bHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4 NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0K e1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfU15IHRocmVlIHJlYWRlciBm dW5jdGlvbnMgYXJlDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9cmQuQ29ubmVjdFRv KGxpc3QpDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9cmQuRmlyc3Q7DQp7XCpcaHRt bHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBh ciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9V0hJTEUgcmQuTmV4dChTWVNURU0uVkFMKEFic3RyYWN0 TGlzdHMuT2JqZWN0LCBteU9iamVjdCkpIERPIC4uLg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1s cnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9RU5EOw0Ke1wqXGh0bWx0YWcxMTYg PGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wq XGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfWFuZCBJIG5l ZWQgb25seSBvbmUgdmFyaWFibGUgIm15T2JqZWN0IiByYXRoZXIgdGhhbiB0d28gd2hlcmUNCntc KlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAg fW15T2JqZWN0IGlzIGFuDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRt bHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9ZXh0ZW5zaW9u IG9mIEFic3RyYWN0TGlzdHMuT2JqZWN0Lg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBc bGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAg fQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfS1Eb3VnDQp7XCpcaHRtbHRhZzExNiA8 YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpc aHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRt bHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgfXtcKlxodG1sdGFn NzJ9XGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzU4IDwvYm9keT59DQp7XCpc aHRtbHRhZzIgXHBhciB9DQp7XCpcaHRtbHRhZzI3IDwvaHRtbD59DQp7XCpcaHRtbHRhZzMgXHBh ciB9DQp7XCpcaHRtbHRhZzY0IDxwPn1caHRtbHJ0ZiBccGFyDQpcaHRtbHJ0ZjAgXGh0bWxydGYg e1xodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0tLS0tDQp7XCpcaHRtbHRhZzQgXHBhciB9 XGh0bWxydGYgIFxodG1scnRmMCBUbyB1bnN1YnNjcmliZSwgc2VuZCBhIG1lc3NhZ2Ugd2l0aCBi b2R5ICJTSUdOT0ZGIEJMQUNLQk9YIiB0byBMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0gNCntcKlxo dG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIFxodG1scnRmfX0ANWNjR0Z5RFFwY2NH Rnk= ----boundary-LibPST-iamunique-483314942_-_--- Received on Tue Aug 23 2011 - 11:08:09 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:30:11 UTC