comp.lang.ada
 help / color / mirror / Atom feed
* Re: Can I have an array of variant records?
  1999-04-20  0:00 Can I have an array of variant records? Josh Highley
@ 1999-04-20  0:00 ` bglbv
  1999-04-21  0:00   ` Robert Dewar
  1999-04-21  0:00 ` Robert Dewar
  1999-04-22  0:00 ` Maybe not exactly a variant record Josh Highley
  2 siblings, 1 reply; 17+ messages in thread
From: bglbv @ 1999-04-20  0:00 UTC (permalink / raw)


"Josh Highley" <joshhighley@hotmail.com> writes:

> I have the following type declaration and I would like to have an array of
> them.  However, I need "length" to have different values for each element of
> the array.
> 
> type field (length : positive) is limited private;

3.6(10) says that "the subtype defined by the subtype_indication of a
component_definition (the component subtype) shall be a definite subtype."

So you have to make up your mind as to the value of the discriminant
when you declare your array.

> --it's later defined to be a record with a string(1..length), among other
> information.
> 
> For instance, I would like field_array(1) to be a field with a length of 10,
> field_array(2) to be a field of length 50, and so on.  Can I declare an
> array of these fields, with each field of a different length?

Not that I can see, but you could make an array of access values instead.

Alternatively, you could get rid of the discriminant by using
something like a bounded string of a suitably chosen maximum length.
Or by making your record contain an access-to-String field instead
of a String: since the type is limited, you don't have to worry about
users of the package getting mixed up between shallow and deep copies.
(Otherwise you might have needed to make the type controlled.)

I find Ada's rules reasonably intuitive if I adopt a model in which
all components of an array must have the same storage size. In the
case of a record with a component of type String(1..Length), the
storage size of the record will depend on the value of Length (unless
the implementation decides to make that component a hidden pointer,
which is something I wouldn't want it to be forced to). So if you
want to make an array of these things, you'd better somehow arrange
for all components of the array to have the same value of the Length
discriminant. Or else sweep the size variability under the rug by
adding a level of indirection through access values. And if I had
to choose, I'd rather do that under cover of the "limited private",
i.e. by resorting to

   type String_Access is access String;
   type Field is record                  -- Note: no discriminant 
      ...
      Label : String_Access;             -- (the length is stored here)
      ...
   end record;

rather than to

   type Field_Access is access Field;
   type Field_Array is array (Index_Type range <>) of Field_Access;

But either way will "work" in some sense.




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Can I have an array of variant records?
@ 1999-04-20  0:00 Josh Highley
  1999-04-20  0:00 ` bglbv
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Josh Highley @ 1999-04-20  0:00 UTC (permalink / raw)


I have the following type declaration and I would like to have an array of
them.  However, I need "length" to have different values for each element of
the array.

type field (length : positive) is limited private;
--it's later defined to be a record with a string(1..length), among other
information.

For instance, I would like field_array(1) to be a field with a length of 10,
field_array(2) to be a field of length 50, and so on.  Can I declare an
array of these fields, with each field of a different length?

I'm using GNAT 3.11, AdaGIDE 6.21, and Win95

Thanks,

Josh Highley
joshhighley@hotmail.com






^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Can I have an array of variant records?
  1999-04-21  0:00       ` David C. Hoos, Sr.
@ 1999-04-21  0:00         ` Robert Dewar
  0 siblings, 0 replies; 17+ messages in thread
From: Robert Dewar @ 1999-04-21  0:00 UTC (permalink / raw)


In article <7fkkob$t1p@hobbes.crc.com>,
  "David C. Hoos, Sr." <david.c.hoos.sr@ada95.com> wrote:
> The entire record must be assigned at once with an
> aggrgate expression --

(well not necessarily an aggregate, just some value of
the type ...)

But the thing to note here is that this rule is not some
kind of annoying arbitrary restriction, it is quite
fundamental. When you change the discriminant, you change
the contents of the record that are accessible, it is
therefore ESSENTIAL to assign the record contents at the
same time, otherwise you could get garbage values being
suddenly accessible.


-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Can I have an array of variant records?
  1999-04-21  0:00       ` dennison
@ 1999-04-21  0:00         ` Robert Dewar
  1999-04-22  0:00           ` Josh Highley
  1999-04-23  0:00           ` Pawel Kobylarz
  0 siblings, 2 replies; 17+ messages in thread
From: Robert Dewar @ 1999-04-21  0:00 UTC (permalink / raw)


In article <7fks8u$8k1$1@nnrp1.dejanews.com>,
  dennison@telepath.com wrote:

<<helpful message snipped>>

I don't know if those other two students are reading
this thread, probably not, but this thread is a good
example of how things are supposed to work. Likely this
is also an assignment, and if not, it certainly could be,
but the question was a well focussed one of "how do I
accomplish this" asked in a way that showed the person
asking the question had worked to find the answer, but,
not suprisingly (this default discriminant deal is a bit
puzzling) had got confused. The response was a thread
explaining not only HOW to do what the student wanted,
but also an explanation of WHY things are that way.

Doing assignments is about learning, and providing just
the right level of help to assist in the learning, rather
than short-circuiting it, is sometimes a delicate line :-)

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Can I have an array of variant records?
  1999-04-21  0:00   ` Robert Dewar
@ 1999-04-21  0:00     ` bglbv
  1999-04-22  0:00       ` dennison
  1999-04-21  0:00     ` Pawel Kobylarz
  1 sibling, 1 reply; 17+ messages in thread
From: bglbv @ 1999-04-21  0:00 UTC (permalink / raw)


Robert Dewar <robert_dewar@my-dejanews.com> writes:

> <<incorrect information snipped, in which he answers this
> question with a no, instead of a yes>>

Thank you for the correction. (As a perhaps feeble defense, I'll
point out that my answer was "not that I can see", which is a
rather tentative form of "no".)

> To expand on my previous short message. Just declare the
> type with a default discriminant. In this case you can
> freely alter the discriminant value later on, and such
> types compose freely (although some old compilers, notably
> the Alsys Ada 83 compiler had rather severe size
> limitations on the composition of such types).
> 
> Of course typical compilers will allocate the maximum space
> for each element, so if this is not acceptable, you will
> indeed need to use pointers.

Aha. So it isn't enough _in practice_ to give the discriminant a
default value: one also needs to pick its subtype carefully.
How big is Positive'Last on a typical implementation, I wonder?
(>= 32767, I know.) Still, this looks cleaner than my Bounded_String
suggestion.




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Can I have an array of variant records?
  1999-04-20  0:00 Can I have an array of variant records? Josh Highley
  1999-04-20  0:00 ` bglbv
@ 1999-04-21  0:00 ` Robert Dewar
  1999-04-22  0:00 ` Maybe not exactly a variant record Josh Highley
  2 siblings, 0 replies; 17+ messages in thread
From: Robert Dewar @ 1999-04-21  0:00 UTC (permalink / raw)


In article <371c84fb.0@silver.truman.edu>,
  "Josh Highley" <joshhighley@hotmail.com> wrote:
> I have the following type declaration and I would like to
have an array of
> them.  However, I need "length" to have different values
for each element of
> the array.

Use a default value for the discriminant ...

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Can I have an array of variant records?
  1999-04-20  0:00 ` bglbv
@ 1999-04-21  0:00   ` Robert Dewar
  1999-04-21  0:00     ` bglbv
  1999-04-21  0:00     ` Pawel Kobylarz
  0 siblings, 2 replies; 17+ messages in thread
From: Robert Dewar @ 1999-04-21  0:00 UTC (permalink / raw)


In article <87aew3j899.fsf@bglbv.my-dejanews.com>,
  bglbv@my-dejanews.com wrote:
> "Josh Highley" <joshhighley@hotmail.com> writes:

<<incorrect information snipped, in which he answers this
question with a no, instead of a yes>>

To expand on my previous short message. Just declare the
type with a default discriminant. In this case you can
freely alter the discriminant value later on, and such
types compose freely (although some old compilers, notably
the Alsys Ada 83 compiler had rather severe size
limitations on the composition of such types).

Of course typical compilers will allocate the maximum space
for each element, so if this is not acceptable, you will
indeed need to use pointers.

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Can I have an array of variant records?
  1999-04-21  0:00   ` Robert Dewar
  1999-04-21  0:00     ` bglbv
@ 1999-04-21  0:00     ` Pawel Kobylarz
  1999-04-21  0:00       ` David C. Hoos, Sr.
                         ` (2 more replies)
  1 sibling, 3 replies; 17+ messages in thread
From: Pawel Kobylarz @ 1999-04-21  0:00 UTC (permalink / raw)


Robert Dewar wrote:

> To expand on my previous short message. Just declare the
> type with a default discriminant. In this case you can
> freely alter the discriminant value later on, and such
> types compose freely (although some old compilers, notably
> the Alsys Ada 83 compiler had rather severe size
> limitations on the composition of such types).
>

How to alter the discriminant? I searched in several different sources of
documentation
and I have not found that.

I declared variant record:

type Tool_Operation(action : Action_Type := Wait) is
  record
    case action is
      when Wait => howlong : time;
      when Move => where : position; min_time : time;
    end case;
  end record;


Let's define variable:

   top : Tool_Operation;


Such a statement compiles and work:

  case top.action is
    when Move =>
        ...
    when Wait =>
        ...
    when others =>
        ...
  end case;


But such statement does not compile:

        top.action := Move;


The compiler returns error: "left hand side of assignment must be a
variable"

How to alter the discriminant?






^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Can I have an array of variant records?
  1999-04-21  0:00     ` Pawel Kobylarz
@ 1999-04-21  0:00       ` David C. Hoos, Sr.
  1999-04-21  0:00         ` Robert Dewar
  1999-04-21  0:00       ` dennison
  1999-04-21  0:00       ` czgrr
  2 siblings, 1 reply; 17+ messages in thread
From: David C. Hoos, Sr. @ 1999-04-21  0:00 UTC (permalink / raw)



Pawel Kobylarz wrote in message
<371DC9BE.585254A6@wbkst21.mach.uni-karlsruhe.de>...
>Robert Dewar wrote:
>
<snip>
>How to alter the discriminant? I searched in several different sources of
>documentation
>and I have not found that.
>
The entire record must be assigned at once with an aggrgate expression --
e.g.;

top := (Action => Move,
           Where=> (X => 0.0, Y => 0.0, Z => 0.0),
           Time => Ada.Calendar.Clock + 0.15);


<snip>







^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Can I have an array of variant records?
  1999-04-21  0:00     ` Pawel Kobylarz
  1999-04-21  0:00       ` David C. Hoos, Sr.
  1999-04-21  0:00       ` dennison
@ 1999-04-21  0:00       ` czgrr
  2 siblings, 0 replies; 17+ messages in thread
From: czgrr @ 1999-04-21  0:00 UTC (permalink / raw)


In article <371DC9BE.585254A6@wbkst21.mach.uni-karlsruhe.de>,
  kobylarz@wbkst21.mach.uni-karlsruhe.de wrote:
> How to alter the discriminant? I searched in several different sources of
> documentation
> and I have not found that.
>
> I declared variant record:
>
> type Tool_Operation(action : Action_Type := Wait) is
>   record
>     case action is
>       when Wait => howlong : time;
>       when Move => where : position; min_time : time;
>     end case;
>   end record;
>
> Let's define variable:
>
>    top : Tool_Operation;
>
> But such statement does not compile:
>
>         top.action := Move;
>
> The compiler returns error: "left hand side of assignment must be a
> variable"
>
> How to alter the discriminant?

The discriminant can not be assigned directly, like the other fields in the
record. In order to assign it, you must also assign every other field in that
variant at the same time, otherwise they would be undefined. Hence, you have
to do something like this...

top :=
  ( action   => Move,
    where    => ...,     -- these are part of
    min_time => ... ) ;  -- the "Move" variant

Changing the discriminant back to "Wait" is a similar process. BTW, that means
that you lose the previous value of "howlong".

czgrr

--
My opinions, suggestions, etc, are not necessarily those of my employer.
They might not even be right. Use at your own risk.

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Can I have an array of variant records?
  1999-04-21  0:00     ` Pawel Kobylarz
  1999-04-21  0:00       ` David C. Hoos, Sr.
@ 1999-04-21  0:00       ` dennison
  1999-04-21  0:00         ` Robert Dewar
  1999-04-21  0:00       ` czgrr
  2 siblings, 1 reply; 17+ messages in thread
From: dennison @ 1999-04-21  0:00 UTC (permalink / raw)


In article <371DC9BE.585254A6@wbkst21.mach.uni-karlsruhe.de>,
  kobylarz@wbkst21.mach.uni-karlsruhe.de wrote:
> Robert Dewar wrote:
>
> How to alter the discriminant? I searched in several different sources of
> documentation
> and I have not found that.
>
> I declared variant record:
>
> type Tool_Operation(action : Action_Type := Wait) is
>   record
>     case action is
>       when Wait => howlong : time;
>       when Move => where : position; min_time : time;
>     end case;
>   end record;
>
> Let's define variable:
>
>    top : Tool_Operation;

> But such statement does not compile:
>
>         top.action := Move;
>
> The compiler returns error: "left hand side of assignment must be a
> variable"
>
> How to alter the discriminant?

Whenever you change the discriminant of a variant record, you also have to
change *all* the other fields (in the same assignment). That prevents you
from getting "new" fields in your record with garbage values in them.

This also prevents you from hosing the type of one of the fields by changing
the variant so that its type changes out from under it.

--
T.E.D.

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Maybe not exactly a variant record.
  1999-04-22  0:00 ` Maybe not exactly a variant record Josh Highley
@ 1999-04-22  0:00   ` dennison
  1999-04-23  0:00     ` Nick Roberts
  0 siblings, 1 reply; 17+ messages in thread
From: dennison @ 1999-04-22  0:00 UTC (permalink / raw)


In article <371f1e6d.0@silver.truman.edu>,
  "Josh Highley" <joshhighley@hotmail.com> wrote:
>
> I guess I should clarify.  I'm not exactly sure the record is variant, at
> least not in the sense as some people have thought.  So, here's the private
> declaration of "type field(length : positive);"
>
> private
>     type field (length : positive ) is record
...
>          text            : string(1..length) := (others => ' ');
>          text_length  : natural := 0;

...
>     end record;
>
> So, the value of "length" doesn't change the record fields that are
> accessible, just the number of characters in a string.  Now that I've better
> described the situation, does this change the responses to declaring an
> array of type field with different lengths??

No it changes neither the responses, nor their rationale.

Assme you make an object of this type called "foo". If foo.length changes
from 4 to 5, suddenly foo.text(5) is available for you to access. If you don't
also assign a vaule to foo.text(5) when you assign a 5 to foo.length, then
there's uninitialized garbage sitting in foo.text(5).

What's worse, you could in theory try to hose the type of the .text_length
field by doing a foo.length := foo.length - 4. Depending on how your compiler
arranges the fields and implements the variant change, that could end up
putting the previous last 4 characters in foo.text into .text_length as an
integer!

Except of course this won't happen, because Ada won't allow you to change
foo.length w/o changing all of foo at the same time. :-)

> P.S.  For my future reference, is the record that I've declared above
> considered a variant record, or is it called something else since the
> available record fields don't actually change with the value of "length"?

Yes, it is called a variant record, with "length" as the variant. Also the
available record fields *do* change, after a fashion. Incrementing foo.length
gives you an extra value in foo.text

--
T.E.D.

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Can I have an array of variant records?
  1999-04-21  0:00     ` bglbv
@ 1999-04-22  0:00       ` dennison
  0 siblings, 0 replies; 17+ messages in thread
From: dennison @ 1999-04-22  0:00 UTC (permalink / raw)


In article <87k8v5oazn.fsf@bglbv.my-dejanews.com>,
  bglbv@my-dejanews.com wrote:
> Robert Dewar <robert_dewar@my-dejanews.com> writes:
>
> > Of course typical compilers will allocate the maximum space
> > for each element, so if this is not acceptable, you will
> > indeed need to use pointers.
>
> Aha. So it isn't enough _in practice_ to give the discriminant a
> default value: one also needs to pick its subtype carefully.
> How big is Positive'Last on a typical implementation, I wonder?
> (>= 32767, I know.) Still, this looks cleaner than my Bounded_String
> suggestion.


Very perceptive of you. Yes, I have seen people get STORAGE_ERROR at runtime
(in Ada 83) for that exact reason. Some compilers are even smart enough to
point this out to you.

--
T.E.D.

-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own    




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Can I have an array of variant records?
  1999-04-21  0:00         ` Robert Dewar
@ 1999-04-22  0:00           ` Josh Highley
  1999-04-23  0:00           ` Pawel Kobylarz
  1 sibling, 0 replies; 17+ messages in thread
From: Josh Highley @ 1999-04-22  0:00 UTC (permalink / raw)



Robert Dewar <robert_dewar@my-dejanews.com> wrote in message
news:7flgte$t8a$1@nnrp1.dejanews.com...
> In article <7fks8u$8k1$1@nnrp1.dejanews.com>,
>   dennison@telepath.com wrote:
>
> <<helpful message snipped>>
>
> I don't know if those other two students are reading
> this thread, probably not, but this thread is a good
> example of how things are supposed to work. Likely this
> is also an assignment, and if not, it certainly could be,
> but the question was a well focussed one of "how do I
> accomplish this" asked in a way that showed the person
> asking the question had worked to find the answer, but,
> not suprisingly (this default discriminant deal is a bit
> puzzling) had got confused. The response was a thread
> explaining not only HOW to do what the student wanted,
> but also an explanation of WHY things are that way.
>
> Doing assignments is about learning, and providing just
> the right level of help to assist in the learning, rather
> than short-circuiting it, is sometimes a delicate line :-)


Yes, I am a university student, however, this is not part of an assignment.
It's part of a program I'm doing just for the heck of it.  Yes -- for fun; I
guess this makes CS the right major for me.  My finals are only a week away,
but I've always assumed that it's a lot easier to finish the programs as
they're assigned instead of rushing at the end.

-- Josh Highley
joshhighley@hotmail.com






^ permalink raw reply	[flat|nested] 17+ messages in thread

* Maybe not exactly a variant record.
  1999-04-20  0:00 Can I have an array of variant records? Josh Highley
  1999-04-20  0:00 ` bglbv
  1999-04-21  0:00 ` Robert Dewar
@ 1999-04-22  0:00 ` Josh Highley
  1999-04-22  0:00   ` dennison
  2 siblings, 1 reply; 17+ messages in thread
From: Josh Highley @ 1999-04-22  0:00 UTC (permalink / raw)



Josh Highley <joshhighley@hotmail.com> wrote in message
news:371c84fb.0@silver.truman.edu...
> I have the following type declaration and I would like to have an array of
> them.  However, I need "length" to have different values for each element
of
> the array.
>
> type field (length : positive) is limited private;
> --it's later defined to be a record with a string(1..length), among other
> information.
>
> For instance, I would like field_array(1) to be a field with a length of
10,
> field_array(2) to be a field of length 50, and so on.  Can I declare an
> array of these fields, with each field of a different length?
>
> I'm using GNAT 3.11, AdaGIDE 6.21, and Win95

I guess I should clarify.  I'm not exactly sure the record is variant, at
least not in the sense as some people have thought.  So, here's the private
declaration of "type field(length : positive);"

private
    type field (length : positive ) is record
         row            : y_pos := 0;
         column       : x_pos := 0;
         fld_length   : positive := length;
         text            : string(1..length) := (others => ' ');
         text_length  : natural := 0;
         label           : string(1..x_pos'last) := (others => ' ');
         label_length : natural := 0;
         align           : alignment := left;
         char           : character := ' ';
         position      : natural := 0;
    end record;

I know there's a lot of room for optimization, but it gets the job done : )

So, the value of "length" doesn't change the record fields that are
accessible, just the number of characters in a string.  Now that I've better
described the situation, does this change the responses to declaring an
array of type field with different lengths??

P.S.  For my future reference, is the record that I've declared above
considered a variant record, or is it called something else since the
available record fields don't actually change with the value of "length"?

Thanks again,

Josh Highley
joshhighley@hotmail.com






^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Maybe not exactly a variant record.
  1999-04-22  0:00   ` dennison
@ 1999-04-23  0:00     ` Nick Roberts
  0 siblings, 0 replies; 17+ messages in thread
From: Nick Roberts @ 1999-04-23  0:00 UTC (permalink / raw)


dennison@telepath.com wrote in message <7fo4ga$8pf$1@nnrp1.dejanews.com>...
[...]
|Yes, it is called a variant record, with "length" as the variant. Also the
|available record fields *do* change, after a fashion. Incrementing
foo.length
|gives you an extra value in foo.text


No, it's not a variant record; it's a 'discriminated' record, with 'length'
as the discriminant.  A variant record is one with a 'case ...' construct
within it.








^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Can I have an array of variant records?
  1999-04-21  0:00         ` Robert Dewar
  1999-04-22  0:00           ` Josh Highley
@ 1999-04-23  0:00           ` Pawel Kobylarz
  1 sibling, 0 replies; 17+ messages in thread
From: Pawel Kobylarz @ 1999-04-23  0:00 UTC (permalink / raw)


Robert Dewar wrote:

> In article <7fks8u$8k1$1@nnrp1.dejanews.com>,
>   dennison@telepath.com wrote:
>
> <<helpful message snipped>>
>
> I don't know if those other two students are reading
> this thread, probably not, but this thread is a good
> example of how things are supposed to work. Likely this
> is also an assignment, and if not, it certainly could be,
> but the question was a well focussed one of "how do I
> accomplish this" asked in a way that showed the person
> asking the question had worked to find the answer, but,
> not suprisingly (this default discriminant deal is a bit
> puzzling) had got confused. The response was a thread
> explaining not only HOW to do what the student wanted,
> but also an explanation of WHY things are that way.
>
> Doing assignments is about learning, and providing just
> the right level of help to assist in the learning, rather
> than short-circuiting it, is sometimes a delicate line :-)
>
> -----------== Posted via Deja News, The Discussion Network ==----------
> http://www.dejanews.com/       Search, Read, Discuss, or Start Your Own


I have just read the answer of Josh Highley to the letter above.
For me this is also not an assignment. I am a skilled programmer,
I completed the MSc courses and am about to get my diploma,
but I am a beginner on ADA field.
I do not have contact with other ADA programmers and often
it takes me hours to overpass simple problem.

I am happy with the help obtained, but I am a little ambarassed
to be concerned as a next lazy student hurrying to do
something at the end of semester :-)

Well, generally for students it is easier to ask other fellows than
to send questions to the discussion list, and IMHO most of the
people writing to this list just don't have anyone around to
ask.
So, maybe you are too suspicious.

Anyway, you are right - a little comment on WHY is also
helpful. Thanks.

Pawel Kobylarz






^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~1999-04-23  0:00 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-04-20  0:00 Can I have an array of variant records? Josh Highley
1999-04-20  0:00 ` bglbv
1999-04-21  0:00   ` Robert Dewar
1999-04-21  0:00     ` bglbv
1999-04-22  0:00       ` dennison
1999-04-21  0:00     ` Pawel Kobylarz
1999-04-21  0:00       ` David C. Hoos, Sr.
1999-04-21  0:00         ` Robert Dewar
1999-04-21  0:00       ` dennison
1999-04-21  0:00         ` Robert Dewar
1999-04-22  0:00           ` Josh Highley
1999-04-23  0:00           ` Pawel Kobylarz
1999-04-21  0:00       ` czgrr
1999-04-21  0:00 ` Robert Dewar
1999-04-22  0:00 ` Maybe not exactly a variant record Josh Highley
1999-04-22  0:00   ` dennison
1999-04-23  0:00     ` Nick Roberts

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox