From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.5-pre1 Path: eternal-september.org!reader02.eternal-september.org!aioe.org!5WHqCw2XxjHb2npjM9GYbw.user.gioia.aioe.org.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: From_string(Arg : String) return Big_Integer Date: Sun, 10 Jan 2021 17:02:59 +0100 Organization: Aioe.org NNTP Server Message-ID: References: <5126648c-215e-4d9e-bdd9-82fa5b510896n@googlegroups.com> <5ffa2a7b$0$19459$426a74cc@news.free.fr> <5ffb21c8$0$21590$426a74cc@news.free.fr> NNTP-Posting-Host: 5WHqCw2XxjHb2npjM9GYbw.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 X-Notice: Filtered by postfilter v. 0.9.2 Content-Language: en-US Xref: reader02.eternal-september.org comp.lang.ada:61089 List-Id: On 2021-01-10 16:48, DrPi wrote: > So either : > >       for C of Str loop >          Num := (Num * 10) + Character'Pos (C) - Character'Pos ('0'); >       end loop; > > or : > >       for Idx in Str'Range loop >          Num := (Num * 10) + Character'Pos (Str(Idx)) - Character'Pos > ('0'); >       end loop; Just for fun: subtype Digit is Character range '0'..'9'; Encode : constant array (Digit) of Integer := (0,1,2,3,4,5,6,7,8,9); for ... loop Num := Num * 10 + Encode (C); >> - It does not handle overflow; > It handles overflow. Only if Constraint_Error must be the result. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de