From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "Alejandro R. Mosteo" Newsgroups: comp.lang.ada Subject: Re: Ada 2005 problem using Iterate Date: Thu, 6 Oct 2016 09:24:50 +0200 Organization: A noiseless patient Spider Message-ID: References: <2cb77d60-b499-4476-88ae-66f9ab6f33ef@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Thu, 6 Oct 2016 07:24:36 -0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="055f371ba06ec1457c5180d3e1dbf0ef"; logging-data="1799"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+UX2+QSNu+YGSauCuoOb5H" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 In-Reply-To: <2cb77d60-b499-4476-88ae-66f9ab6f33ef@googlegroups.com> Cancel-Lock: sha1:zjFGJaBCoUWrNlC3PXgbHBl7tgo= Xref: news.eternal-september.org comp.lang.ada:32009 Date: 2016-10-06T09:24:50+02:00 List-Id: On 06/10/16 01:27, Roger wrote: > Thanks Alex, > As expected, a simple reason! Tunnel vision happens ;) Can't you use Element directly on the cursor? Alex. > > Code that works: > > with Ada.Text_IO; use Ada.Text_IO; > > package body Numbers is > Numbers_List : tNumbers_Vector; > function New_Record(n1 : Integer; n2 : Integer) return tnumbers is > theRecord : tnumbers := (n1, n2); > begin > return theRecord; > end New_Record; > > -- ---------------------------------------------------------------------------------------------------- > > procedure Print_Numbers_Data (Numbers_Vector : tNumbers_Vector) is > > procedure Show_Two_Numbers(Number_Cursor : pNumbers_Vector.Cursor) is > aNumber_Record : tnumbers; > begin > aNumber_Record := Numbers_Vector.Element(pNumbers_Vector.To_Index(Number_Cursor)); > Put("Number 1: " & Integer'image(aNumber_Record.n1)); > Put_Line(" Number 2: " & Integer'image(aNumber_Record.n2)); > end Show_Two_Numbers; > > begin > Numbers_Vector.Iterate(Show_Two_Numbers'Access); > end Print_Numbers_Data; > > -- ---------------------------------------------------------------------------------------------------- > > procedure Load_Numbers(Numbers_Vector : in out tNumbers_Vector) is > begin > for index in Natural range 0..3 loop > Numbers_Vector.Append(New_Record(index + 2, 2* index + 1)); > end loop; > end Load_Numbers; > > end Numbers; >