[Gambas-user] Safety for collections

Bruce Steers bsteers4 at gmail.com
Tue Aug 22 13:41:34 CEST 2023

On Tue, 22 Aug 2023 at 12:19, BB <adamnt42 at gmail.com> wrote:

> On 22/8/23 8:38 pm, BB wrote:
> There is probably a simple way to do this, damned if I can see how.
> I have a collection of things (datObjects) that have a property
> (ObjectName::string) that in UML terms are Unique and ID. What I am trying
> to do is prevent the *replacement* of an object in the collection if the
> ObjectName is already there. Better still, I'd like to warn the user when
> they enter the ObjectName that it already exists.
> The input form has a TextBox for the ObjectName and a "save" button. The
> latter updates the collection, whose key is the ObjectName, either adding
> or amending the item in the collection. So I kind of need to do this:
> 1) Are they really trying to add a new item or update an existing one?
> If adding then prevent them from overwriting one with the same ObjectName,
> otherwise if amending then only allow changes to the other data and not the
> ObjectName.
> 2) Then update the collection accordingly.
> Is that clear? It isn't to me. Any input would really be appreciated.
> b
> p.s. I am trying to avoid having separate Add and Update buttons for
> reasons.
> I may have oversimplified. The basic gen is that there is a form with a
> list of some type on the left and an "editor" panel on the right. The user
> clicks on an item in the list and the data for that item is loaded in the
> editor. Now the quick way for them to add a new item is to click on a
> similar one, give it a new name and change some of the other data as
> required, then click the save button. BUT the new name they use may already
> exist. ... ...

I may not be getting the jist as i only have simple code to suggest..

If datObjects.Exist(sName) Then

  Dim c As Integer = 2
  While dat.Objects.Exist(sName & Str(c))
    Inc c
  sName = sName & Str(c)

That'll try Name2, Name3 etc till a free name is found.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20230822/da2a01c0/attachment-0001.htm>

More information about the User mailing list