Find Duplicates

Fairly simple.  

Just laziness though.  I have a list and I would like to have another list derived from this that would list only the duplicate items....

Anything is fine.  @Functions / LotusScript I dont care.



SourceList : one , two, three, four, one, one, two, five ,  six , seven

ResultList : one, one, two
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Dim alreadyFound List as Integer
Set onlyDups = doc.replaceItemValue "onlyDups" , "Ignore first element - just a header"
Forall element in doc.FieldWithDups
   If IsElement(alreadyFound(element)) Then
     onlyDups.appendToTextList element
     alreadyFound(element) = True
   End If
End Forall
ArunkumarAuthor Commented:
That was good.... Qwaletee. Now add 50 pts to the question and answer this one....

Dim stTimeRange As NotesDateTime
      Dim edTimeRange As NotesDateTime
      Dim sysTime As NotesDateTime
      Set stTimeRange = New NotesDateTime("11/06/2003 07:00:00")
      Set edTimeRange = New NotesDateTime("11/06/2003 18:00:00")
      Set sysTime = New NotesDateTime("11/06/2003 10:00:00")
      Print "Start Time " & stTimeRange.TimeOnly
      Print "End Time " & edTimeRange.TimeOnly
      Print "CurrentTime " & sysTime.TimeOnly
      If (systime.TimeOnly > stTimeRange.TimeOnly) And (systime.TimeOnly < edTimeRange.TimeOnly) Then
            Print "The currentTime is falling in work hours."
            Print "The Time is beyond work hours"
      End If

Why does this always say not in range ?  Can you fix this one for me..??
ArunkumarAuthor Commented:
I just gave you a bunch of pts on an old question.  Lets keep the point saga going....
Build an E-Commerce Site with Angular 5

Learn how to build an E-Commerce site with Angular 5, a JavaScript framework used by developers to build web, desktop, and mobile applications.

Sjef BosmanGroupware ConsultantCommented:
1) You're comparing strings
2) Could be a timezone-problem, you didn't include your timezone in the NotesDateTime-calls
ArunkumarAuthor Commented:
Well, i just got around with it by adding Hour before all the time variants....and i am about to test it now.
Yeah, TimeOnly is one of the stupider bits of the object model.  WHy string?  You can easily convert to string when needed, usually implicitly.

When trying to compare times, I sometimes use the LotusScript time handling facilities.  The datetime is represented as a real (floating point) number, with the whole number portion representation a date serial number, and the fraction representing a portion of a day.  So, the difference between today 3:00 PM and tomorrow 6:00 PM is 1.125 (one full day plus 1/8 day -- 6:00-3:00=3 hours, 3/25=1/8, .125=1/8).  If you know all the datetime values are for the same date, you can simply compare the two numbers -- the later time will always be a larger number.

If the dates can be different, but you just want to compare the time portion, you can eliminate the whole number portion.  x-clong(x) gives the fractional part of x.  So, you could use (systime.lsLocalTime-clong(systime.lsLocalTime)) > ...

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Sjef BosmanGroupware ConsultantCommented:
Sorry if I barge in a bit, but your original question was bugging me. Could it be done in @Formula language? Well, I haven't found the real solution yet, since @Replace is too thorough for my needs, but I did find a "solution". If someone else can find a neater solution to this puzzle, I'd really like to hear it!

v:= "one":"two":"three":"four":"one":"one":"two":"five":"six":"seven";
n:= "1":"2":"3":"4":"5":"6":"7":"8":"9":"10";
vs:= @Sort(v);
vsu:= @Unique(vs);
vsn:= @Replace(vsu; vsu; n);
r:= @Replace(vs; vsu; vsn);
x:= @TextToNumber(r);
x1:= @Subset(@text((x:0)-(0:x)); @Elements(v));
x2:= vs+x1;
@Explode(@Trim(@Implode(@Left(x2; "0"); " ")); " ");

And how it works? That's for you to find out!

;-) Sjef
@Sort was introduced with R6, in which case you may as well use the looping mechanism.
Sjef BosmanGroupware ConsultantCommented:
Sure, I know, and n cannot be generated automatically. Nevertheless, the thing works, and without explicit looping instructions, for that's what's so charming about lists in Notes. You could even write it as a one-liner, making it unreadable, almost like APL but then the other way around.
Wow!  APL!  that would easily generate N: ~i 10
ArunkumarAuthor Commented:
Hey guys here is a continuation question. i will increase the pts accordingly while grading...

I have a customer running 5.08 and are experiencing a intermittent problem within one group of the organization.  The problem is that on random, so they say, messages, that if the user forwards the message or if they reply to all with history the message is blank except for the new text that has been written.

I looked on ldd and saw quite a bit of this, but it all related to messages
within the iNotes environment.

Any thoughts ?
Any possibility someone likes to use "hide when copying" or "prevent copying."

And of course, you are trying to confuse everyone by having two completely different questions here!
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Lotus IBM

From novice to tech pro — start learning today.