Solved

stringlist

Posted on 2001-07-18
8
330 Views
Last Modified: 2012-05-04
I am trying to ensure that a list of string i am dealing with are unique.  I decided to use a stringlist as i know it is supposed to handle duplicates but can't get my idea to work.

Does anyone know how i can use the stringlist so that if the text i am about to add is already in the stringlist it will not add it and will notify me that the string is a duplicate without causing any errors through windows, etc?

0
Comment
Question by:mantra246
8 Comments
 
LVL 13

Accepted Solution

by:
Epsylon earned 150 total points
ID: 6293207
Try something like this:

If sl.IndexOf(thestring) = -1 then
  sl.Add(thestring)
else
  ShowMessage(thestring + ' is already in the list');
0
 
LVL 4

Expert Comment

by:jsweby
ID: 6293213
That is exactly it; if the method property returns a value of more than -1 then the item already exists in the stringlist.

J.
0
 
LVL 27

Expert Comment

by:kretzschmar
ID: 6293251
there is another method also,
but didn't have it in mind correctly

you can set the sorted property to true,
and set the duplcate bahaviour to this what you need like
dupIgnore, dupAccept, dupAbort,..

just set this before you add the items

sorry, have not the correct property-names in mind

meikl ;-)
0
 
LVL 9

Expert Comment

by:ITugay
ID: 6293296
meikl :-)

yes, it doesn't work if list is not sorted.
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 27

Expert Comment

by:kretzschmar
ID: 6293315
hi, igor,

its really hard to give
advice just from head :-(

meikl ;-)
0
 
LVL 17

Expert Comment

by:geobul
ID: 6293407
Hi,
From Delphi help:

TStringList.Duplicates

Specifies whether duplicate strings can be added to sorted lists.

type TDuplicates = (dupIgnore, dupAccept, dupError);
property Duplicates: TDuplicates;

Description

Set Duplicates to specify what should happen when an attempt is made to add a duplicate string to a sorted list. The value of Duplicates should be one of the following.

Value     Meaning

dupIgnore     Ignore attempts to add duplicate strings to the sorted list.
dupError     Raise an EStringListError exception when an attempt is made to add duplicate strings to the sorted list.
dupAccept     Permit duplicate strings in the sorted list.

Set Duplicates before adding any strings to the list. Setting Duplicates to dupIgnore or dupError does nothing about duplicate strings that are already in the list.

Note:     Duplicates does nothing if the list is not sorted.

Regards, Geo
0
 
LVL 1

Expert Comment

by:Oli2
ID: 6293759
procedure AddToStrings(s: String var sl: TStringList);
begin
  if not sl.Sorted then
     sl.Sorted := True;
  if not sl.Duplicates = duError then
     sl.Duplicates := dupError;
  try
    sl.Append(s);
  except
    ShowMessage('This string is already in the list');
  end;
end;
//---------------------------------------------------------
Hope this helps.
I typed it here, so no checking, but it should work and give you an idea.

Cheers,
Oli
0
 

Author Comment

by:mantra246
ID: 6296121
epsylon:  ouch!  when i saw the code you gave it really hurt because it was so simple and i never thought of it till i saw it.

everyone:  Thanks so much for your input it was really appreciated - as is the time and effort you guys put in.
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now