I have this kind of sorting on anOrderedCollection
BlocNotes >>sortedNotes ^notes sorted:[:a :b | a date > b date]
This sort my notes on date but I want them sort by date AND inside a date by hours and I don't khow how to do this.
Some insights?
aNote = 'med com date temps' instancesVariables what I call hours = temps witch is a number like 2123 for 21h23
Some insights?
Hi Raymond,
Try:
^notes sorted:[:a :b | (a date > b date) | ((a date = b date) & (a date temps > b date temps))].
Lou
On Wed, 04 Feb 2015 10:34:48 -0500, Raymond Asselin jgr.asselin@me.com wrote:
I have this kind of sorting on anOrderedCollection
BlocNotes >>sortedNotes ^notes sorted:[:a :b | a date > b date]
This sort my notes on date but I want them sort by date AND inside a date by hours and I don't khow how to do this.
Some insights?
aNote = 'med com date temps' instancesVariables what I call hours = temps witch is a number like 2123 for 21h23
Some insights?
----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
Does using the | or & notation have any advantages over and: or or: or ifTrue:ifFalse ?
I always write expressions like the one you've written like:
a date = b date ifTrue:[a temps > b temps] ifFalse:[a date > b date]
Louis LaBrunda wrote
Hi Raymond,
Try:
^notes sorted:[:a :b | (a date > b date) | ((a date = b date) & (a date temps > b date temps))].
Lou
On Wed, 04 Feb 2015 10:34:48 -0500, Raymond Asselin <
jgr.asselin@
> wrote:
I have this kind of sorting on anOrderedCollection
BlocNotes >>sortedNotes ^notes sorted:[:a :b | a date > b date]
This sort my notes on date but I want them sort by date AND inside a date
by hours and I don't khow how to do this.
Some insights?
aNote = 'med com date temps' instancesVariables what I call hours = temps
witch is a number like 2123 for 21h23
Some insights?
Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:
Lou@
http://www.Keystone-Software.com
Beginners mailing list
Beginners@.squeakfoundation
http://lists.squeakfoundation.org/mailman/listinfo/beginners
-- View this message in context: http://forum.world.st/How-to-doubble-sort-a-collection-tp4803657p4803671.htm... Sent from the Squeak - Beginners mailing list archive at Nabble.com.
| and & make sure that each expression between them is executed - so it will do each of: a date > b date and a date = b date and a date > temps > b date temps
This matters if one of these is significantly slower than the others - it will run it even it it doesn't need too. Also if any side-effects are in one of these expressions, this will make that side effect happen (there aren't any in these, though).
and: and or: stop executing as soon as one of them is satisfied sufficiently - so if a date > b date then it will immediately return true without bothering with the rest of the expressions. ifTrue:ifFalse: is similar - except you will evaluate the condition expression AND one of the following expressions.
Often this doesn't matter one way or another - but when it does, it matters a lot.
-cbc
On Wed, Feb 4, 2015 at 9:00 AM, Paul DeBruicker pdebruic@gmail.com wrote:
Does using the | or & notation have any advantages over and: or or: or ifTrue:ifFalse ?
I always write expressions like the one you've written like:
a date = b date ifTrue:[a temps > b temps] ifFalse:[a date > b date]
Louis LaBrunda wrote
Hi Raymond,
Try:
^notes sorted:[:a :b | (a date > b date) | ((a date = b date) & (a date temps > b date temps))].
Lou
On Wed, 04 Feb 2015 10:34:48 -0500, Raymond Asselin <
jgr.asselin@
> wrote:
I have this kind of sorting on anOrderedCollection
BlocNotes >>sortedNotes ^notes sorted:[:a :b | a date > b date]
This sort my notes on date but I want them sort by date AND inside a date
by hours and I don't khow how to do this.
Some insights?
aNote = 'med com date temps' instancesVariables what I call hours = temps
witch is a number like 2123 for 21h23
Some insights?
Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:
Lou@
http://www.Keystone-Software.com
Beginners mailing list
Beginners@.squeakfoundation
http://lists.squeakfoundation.org/mailman/listinfo/beginners
-- View this message in context: http://forum.world.st/How-to-doubble-sort-a-collection-tp4803657p4803671.htm... Sent from the Squeak - Beginners mailing list archive at Nabble.com. _______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
On Wed, 4 Feb 2015 09:00:13 -0800 (PST), Paul DeBruicker pdebruic@gmail.com wrote:
Does using the | or & notation have any advantages over and: or or: or ifTrue:ifFalse ?
and: and or: are needed when you don't want to execute the code inside the block unless it is needed. They are also used to protect from executing code that shouldn't be run for example:
x notNil and: [x foo > y foo]
I always write expressions like the one you've written like:
a date = b date ifTrue:[a temps > b temps] ifFalse:[a date > b date]
I like this but it may be a little tricky for a beginner. But both or replay help one to learn.
I have also attached a file out (from VA Smalltalk) of a class that acts like a sort block but is much easier to use for complex sorts.
Lou
Louis LaBrunda wrote
Hi Raymond,
Try:
^notes sorted:[:a :b | (a date > b date) | ((a date = b date) & (a date temps > b date temps))].
Lou
On Wed, 04 Feb 2015 10:34:48 -0500, Raymond Asselin <
jgr.asselin@
> wrote:
I have this kind of sorting on anOrderedCollection
BlocNotes >>sortedNotes ^notes sorted:[:a :b | a date > b date]
This sort my notes on date but I want them sort by date AND inside a date
by hours and I don't khow how to do this.
Some insights?
aNote = 'med com date temps' instancesVariables what I call hours = temps
witch is a number like 2123 for 21h23
Some insights?
Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:
Lou@
http://www.Keystone-Software.com
Beginners mailing list
Beginners@.squeakfoundation
http://lists.squeakfoundation.org/mailman/listinfo/beginners
----------------------------------------------------------- Louis LaBrunda Keystone Software Corp. SkypeMe callto://PhotonDemon mailto:Lou@Keystone-Software.com http://www.Keystone-Software.com
begin 644 DynamicSortBlock.st M#0I/8FIE8W0@<W5B8VQA<W,Z("-$>6YA;6EC4V]R=$)L;V-K#0H@("`@8VQA M<W-);G-T86YC959A<FEA8FQE3F%M97,Z("<G#0H@("`@:6YS=&%N8V5687)I M86)L94YA;65S.B`G86-C97-S;W)S(&1I<F5C=&EO;G,@)PT*("`@(&-L87-S M5F%R:6%B;&5.86UE<SH@)R<-"B`@("!P;V]L1&EC=&EO;F%R:65S.B`G)R$- M"@T*(41Y;F%M:6-3;W)T0FQO8VL@8VQA<W,@<'5B;&EC365T:&]D<R`A#0H- M"F%C8V5S<V]R<SH@86Y/<F1E<F5D0V]L;&5C=&EO;@T*"2)#<F5A=&4@82!N M97<@:6YS=&%N8V4@86YD('-E="!A8V-E<W-O<G,N(@T*#0H)7BAS96QF(&YE M=RD@86-C97-S;W)S.B!A;D]R9&5R961#;VQL96-T:6]N.R!Y;W5R<V5L9BX- M"B$-"@T*86-C97-S;W)S.B!A;D]R9&5R961#;VQL96-T:6]N(&1I<F5C=&EO M;G,Z(&%N3W)D97)E9$-O;&QE8W1I;VXR#0H)(D-R96%T92!A(&YE=R!I;G-T M86YC92!A;F0@<V5T(&%C8V5S<V]R<R!A;F0@9&ER96-T:6]N<RXB#0H-"@E> M*'-E;&8@;F5W*2!A8V-E<W-O<G,Z(&%N3W)D97)E9$-O;&QE8W1I;VX@9&ER M96-T:6]N<SH@86Y/<F1E<F5D0V]L;&5C=&EO;C([('EO=7)S96QF+@T*(0T* M#0IS;W)T0W)I=&5R:6$Z(&%N3W)D97)E9$-O;&QE8W1I;VX-"@DB0W)E871E M(&$@;F5W(&EN<W1A;F-E(&%N9"!S970@86-C97-S;W)S(&%N9"!D:7)E8W1I M;VYS(&9R;VT@=&AE(&]R9&5R960@8V]L;&5C=&EO;B!O9B!A<W-O8VEA=&EO M;G,-"@D)=VAE<F4@=&AE(&ME>2!I<R!A;B!A8V-E<W-O<B!A;F0@=&AE('9A M;'5E(&ES(&$@8F]O;&5A;B!D:7)E8W1I;VXN(@T*#0H)7BAS96QF(&YE=RD@ M<V]R=$-R:71E<FEA.B!A;D]R9&5R961#;VQL96-T:6]N.R!Y;W5R<V5L9BX- M"B$@(0T*#0HA1'EN86UI8U-O<G1";&]C:R!P=6)L:6--971H;V1S("$-"@T* M86-C97-S;W)S#0H)(D%N<W=E<B!A8V-E<W-O<G,N("!!;B!O<F1E<F5D(&-O M;&QE8W1I;VX@;V8@;65T:&]D(&YA;65S("A3>6UB;VQS*2!U<V5D(&9O<B!S M;W)T:6YG(&-O;7!L97@@8VQA<W-E<RXB#0H)(E-E92`C=F%L=64Z=F%L=64Z M(@T*#0H)86-C97-S;W)S(&ES3FEL(&EF5')U93H@6V%C8V5S<V]R<R`Z/2!/ M<F1E<F5D0V]L;&5C=&EO;B!N97==+@T*"5YA8V-E<W-O<G,N#0HA#0H-"F%C M8V5S<V]R<SH@86Y/<F1E<F5D0V]L;&5C=&EO;@T*"2)3970@86-C97-S;W)S M+B`@06X@;W)D97)E9"!C;VQL96-T:6]N(&]F(&UE=&AO9"!N86UE<R`H4WEM M8F]L<RD@=7-E9"!F;W(@<V]R=&EN9R!C;VUP;&5X(&-L87-S97,N(@T*"2)3 M964@(W9A;'5E.G9A;'5E.B(-"@T*"6%C8V5S<V]R<R`Z/2!A;D]R9&5R961# M;VQL96-T:6]N(&%S3W)D97)E9$-O;&QE8W1I;VXN#0HA#0H-"F%C8V5S<V]R M<SH@86Y/<F1E<F5D0V]L;&5C=&EO;B!D:7)E8W1I;VYS.B!A;D]R9&5R961# M;VQL96-T:6]N,@T*"2)3970@86-C97-S;W)S+B`@06X@;W)D97)E9"!C;VQL M96-T:6]N(&]F(&UE=&AO9"!N86UE<R`H4WEM8F]L<RD@=7-E9"!F;W(@<V]R M=&EN9R!C;VUP;&5X(&-L87-S97,N(@T*"2)3970@9&ER96-T:6]N<RX@($%N M(&]R9&5R960@8V]L;&5C=&EO;B!O9B!B;V]L96%N<R!U<V5D(&9O<B!S;W)T M:6YG(&-O;7!L97@@8VQA<W-E<RXB#0H)(D]N92!F;W(@96%C:"!S>6UB;VP@ M:6X@86-C97-S;W)S+"!T<G5E(&UE86YS(&%S8V5N9&EN9RP@9F%L<V4@;65A M;G,@9&5S8V5N9&EN9RXB#0H)(E-E92`C=F%L=64Z=F%L=64Z(@T*#0H)<V5L M9B!A8V-E<W-O<G,Z(&%N3W)D97)E9$-O;&QE8W1I;VXN#0H)<V5L9B!D:7)E M8W1I;VYS.B!A;D]R9&5R961#;VQL96-T:6]N,BX-"B$-"@T*861D.B!A;D%S M<V]C:6%T:6]N3W)3>6UB;VP-"@DB268@86X@87-S;V-I871I;VXL(&%D9"!T M:&4@86-C97-S;W(@86YD(&1I<F5C=&EO;B!F<F]M('1H92!A<W-O8VEA=&EO M;BP-"@D)96QS92!A9&0@=&AE('-Y;6)O;"!A;F0@87-C96YD:6YG(&1I<F5C M=&EO;BXB#0H-"@EA;D%S<V]C:6%T:6]N3W)3>6UB;VP@:7-3>6UB;VP@:694 M<G5E.B!;#0H)"7-E;&8@86-C97-S;W)S(&%D9#H@86Y!<W-O8VEA=&EO;D]R M4WEM8F]L+@T*"0ES96QF(&1I<F5C=&EO;G,@861D.B!T<G5E+@T*"5T@:69& M86QS93H@6PT*"0ES96QF(&%C8V5S<V]R<R!A9&0Z(&%N07-S;V-I871I;VY/ M<E-Y;6)O;"!K97DN#0H)"7-E;&8@861D1&ER96-T:6]N.B!A;D%S<V]C:6%T M:6]N3W)3>6UB;VP@=F%L=64N#0H)72X-"B$-"@T*861D06-C97-S;W(Z(&%3 M>6UB;VP@86YD1&ER96-T:6]N.B!A0F]O;&5A;D]R4W1R:6YG#0H)(D%D9"!T M:&4@86-C97-S;W(@86YD(&ET<R!D:7)E8W1I;VXN(@T*#0H)<V5L9B!A8V-E M<W-O<G,@861D.B!A4WEM8F]L+@T*"7-E;&8@861D1&ER96-T:6]N.B!A0F]O M;&5A;D]R4W1R:6YG+@T*(0T*#0IA9&1!<V,Z(&%3>6UB;VP-"@DB061D('1H M92!A8V-E<W-O<B!A;F0@86X@87-C96YD:6YG(&1I<F5C=&EO;BXB#0H-"@ES M96QF(&%C8V5S<V]R<R!A9&0Z(&%3>6UB;VPN#0H)<V5L9B!D:7)E8W1I;VYS M(&%D9#H@=')U92X-"B$-"@T*861D1&5S8SH@85-Y;6)O;`T*"2)!9&0@=&AE M(&%C8V5S<V]R(&%N9"!A(&1E<V-E;F1I;F<@9&ER96-T:6]N+B(-"@T*"7-E M;&8@86-C97-S;W)S(&%D9#H@85-Y;6)O;"X-"@ES96QF(&1I<F5C=&EO;G,@ M861D.B!F86QS92X-"B$-"@T*861D1&ER96-T:6]N.B!B;V]L96%N3W)3=')I M;F<-"@DB061D(&$@9&ER96-T:6]N('1O('1H92!O<F1E<F5D(&-O;&QE8W1I M;VX@;V8@8F]O;&5A;G,@=7-E9"!F;W(@<V]R=&EN9R!C;VUP;&5X(&-L87-S M97,N(@T*"2)3964@(W9A;'5E.G9A;'5E.B(-"@T*"2)!;&QO=R!F;W(@=')U M92P@9F%L<V4L("-A<V-E;F1I;F<L("-D97-C96YD:6YG+"`G87-C96YD:6YG M)RP@)V1E<V-E;F1I;F<G(&]R("-G87)B86=E+@T*"41I<F5C=&EO;B!D969A M=6QT<R!T;R!A<V-E;F1I;F<L('-O(&EF(&)O;VQE86Y/<E-T<FEN9R!I<R!A M;GET:&EN9R!O=&AE<B!T:&%N('1R=64L(&9A;'-E(&]R(&$@<W1R:6YG#0H) M<W1A<G1I;F<@=VET:"!A("=D)R!O<B`G1"<L(&%S8V5N9&EN9R!I<R!A<W-U M;65D+B(-"@T*"7-E;&8@9&ER96-T:6]N<R!A9&0Z("@H8F]O;&5A;D]R4W1R M:6YG(#T](&9A;'-E*2!O<CH@6V)O;VQE86Y/<E-T<FEN9R!I<U-T<FEN9R!A M;F0Z(%LG9"HG(&UA=&-H.B!B;V]L96%N3W)3=')I;F==72D@;F]T+@T*(0T* M#0ID:7)E8W1I;VYS#0H)(D%N<W=E<B!D:7)E8W1I;VYS+B`@06X@;W)D97)E M9"!C;VQL96-T:6]N(&]F(&)O;VQE86YS('5S960@9F]R('-O<G1I;F<@8V]M M<&QE>"!C;&%S<V5S+B(-"@DB3VYE(&9O<B!E86-H('-Y;6)O;"!I;B!A8V-E M<W-O<G,L('1R=64@;65A;G,@87-C96YD:6YG+"!F86QS92!M96%N<R!D97-C M96YD:6YG+B(-"@DB4V5E("-V86QU93IV86QU93HB#0H-"@ED:7)E8W1I;VYS M(&ES3FEL(&EF5')U93H@6V1I<F5C=&EO;G,@.CT@3W)D97)E9$-O;&QE8W1I M;VX@;F5W72X-"@E>9&ER96-T:6]N<RX-"B$-"@T*9&ER96-T:6]N<SH@86Y/ M<F1E<F5D0V]L;&5C=&EO;@T*"2)3970@9&ER96-T:6]N<RX@($%N(&]R9&5R M960@8V]L;&5C=&EO;B!O9B!B;V]L96%N<R!U<V5D(&9O<B!S;W)T:6YG(&-O M;7!L97@@8VQA<W-E<RXB#0H)(D]N92!F;W(@96%C:"!S>6UB;VP@:6X@86-C M97-S;W)S+"!T<G5E(&UE86YS(&%S8V5N9&EN9RP@9F%L<V4@;65A;G,@9&5S M8V5N9&EN9RXB#0H)(E-E92`C=F%L=64Z=F%L=64Z(@T*#0H)(D%L;&]W(&9O M<B`C*'1R=64@9F%L<V4@(V%S8V5N9&EN9R`C9&5S8V5N9&EN9R`G87-C96YD M:6YG)R`G9&5S8V5N9&EN9R<@(V=A<F)A9V4I('1H870@=VEL;"!R97-U;'0@ M:6XZ#0H)86X@3W)D97)E9$-O;&QE8W1I;VXH=')U92!F86QS92!T<G5E(&9A M;'-E('1R=64@9F%L<V4@=')U92DN("!$:7)E8W1I;VX@9&5F875L=',@=&@ M87-C96YD:6YG+"!S;R!I9B!V86QU97,@87)E(&%N>71H:6YG#0H);W1H97(@ M=&AA;B!T<G5E+"!F86QS92!O<B!A('-T<FEN9R!S=&%R=&EN9R!W:71H(&$@ M)V0G(&]R("=$)RP@87-C96YD:6YG(&ES(&%S<W5M960N(@T*#0H)9&ER96-T M:6]N<R`Z/2!A;D]R9&5R961#;VQL96-T:6]N(&%S3W)D97)E9$-O;&QE8W1I M;VX@8V]L;&5C=#H@6SIB;V]L96%N3W)3=')I;F<@?`T*"0DH*&)O;VQE86Y/ M<E-T<FEN9R`]/2!F86QS92D@;W(Z(%MB;V]L96%N3W)3=')I;F<@:7-3=')I M;F<@86YD.B!;)V0J)R!M871C:#H@8F]O;&5A;D]R4W1R:6YG75TI(&YO=%TN M#0HA#0H-"G!A:7)E9$1I<F5C=&EO;G,-"@DB06YS=V5R(&1I<F5C=&EO;G,L M(&%N(&]R9&5R960@8V]L;&5C=&EO;B!O9B!B;V]L96%N<R!F:6QL960@=&@ M;6%T8V@@=&AE('-I>F4@;V8@86-C97-S;W)S+B(-"@DB4V5E("-D:7)E8W1I M;VYS(&%N9"`C=F%L=64Z=F%L=64Z(@T*"7P@<&%I<F5D1&ER96-T:6]N<R!A M9&1#;G0@?`T*#0H)<&%I<F5D1&ER96-T:6]N<R`Z/2!S96QF(&1I<F5C=&EO M;G,@8V]P>2X-"@EA9&1#;G0@.CT@<V5L9B!A8V-E<W-O<G,@<VEZ92`M('!A M:7)E9$1I<F5C=&EO;G,@<VEZ92X-"@EA9&1#;G0@=&EM97-297!E870Z(%MP M86ER961$:7)E8W1I;VYS(&%D9#H@=')U95TN#0H)7G!A:7)E9$1I<F5C=&EO M;G,N#0HA#0H-"G!R:6YT3VXZ(&%3=')E86T-"@DB4')I;G0@=&AE(&%C8V5S M<V]R<R!A;F0@9&ER96-T:6]N<R!O;B!T:&4@<W1R96%M+B(-"@T*"6%3=')E M86T@;F5X=%!U=$%L;#H@)T$@1'EN86UI8R!3;W)T($)L;V-K)SL@8W(N#0H) M<V5L9B!A8V-E<W-O<G,@=VET:#H@<V5L9B!P86ER961$:7)E8W1I;VYS(&1O M.B!;.F%C8V5S<V]R(#ID:7)E8W1I;VX@?"!(&1I<F5C=&EO;E-T<FEN9R!\ M#0H)"61I<F5C=&EO;E-T<FEN9R`Z/2!D:7)E8W1I;VX@:694<G5E.B!;)T%S M8V5N9&EN9R==(&EF1F%L<V4Z(%LG1&5S8V5N9&EN9R==+@T*"0EA4W1R96%M M('1A8CL@;F5X=%!U=#H@)",[(&YE>'10=71!;&PZ(&%C8V5S<V]R.R!N97AT M4'5T06QL.B`G("T@)SL@;F5X=%!U=$%L;#H@9&ER96-T:6]N4W1R:6YG.R!C M<ETN#0HA#0H-"G-O<G1#<FET97)I80T*"2)!;G-W97(@=&AE(&%C8V5S<V]R M<R!A;F0@9&ER96-T:6]N<R!I;B!T:&4@9F]R;2!O9B!A;B!O<F1E<F5D(&-O M;&QE8W1I;VX@;V8@87-S;V-I871I;VYS#0H)"7=H97)E('1H92!K97D@:7,@ M86X@86-C97-S;W(@86YD('1H92!V86QU92!I<R!A(&)O;VQE86X@9&ER96-T M:6]N+B(-"@E('-O<G1#<FET97)I82!#0H-"@ES;W)T0W)I=&5R:6$@.CT@ M3W)D97)E9$-O;&QE8W1I;VX@;F5W+@T*"7-E;&8@86-C97-S;W)S('=I=&@Z M('-E;&8@<&%I<F5D1&ER96-T:6]N<R!D;SH@6SIA8V-E<W-O<B`Z9&ER96-T M:6]N('P@<V]R=$-R:71E<FEA(&%D9#H@*$%S<V]C:6%T:6]N(&ME>3H@86-C M97-S;W(@=F%L=64Z(&1I<F5C=&EO;BE=+@T*"5YS;W)T0W)I=&5R:6$N#0HA M#0H-"G-O<G1#<FET97)I83H@86Y/<F1E<F5D0V]L;&5C=&EO;@T*"2)3970@ M86-C97-S;W)S(&%N9"!D:7)E8W1I;VX@9G)O;2!T:&4@;W)D97)E9"!C;VQL M96-T:6]N(&]F(&%S<V]C:6%T:6]N<R!W:&5R92!T:&4@:V5Y(&ES(&%N(&%C M8V5S<V]R#0H)"6%N9"!T:&4@=F%L=64@:7,@82!B;V]L96%N(&1I<F5C=&EO M;BXB#0H-"@EA;D]R9&5R961#;VQL96-T:6]N(&1O.B!;.G-O<G1#<FET97)I M82!('-E;&8@861D06-C97-S;W(Z('-O<G1#<FET97)I82!K97D@86YD1&ER M96-T:6]N.B!S;W)T0W)I=&5R:6$@=F%L=65=+@T*(0T*#0IV86QU93H@:71E M;4$@=F%L=64Z(&ET96U"#0H)(D-O;7!A<F4@=&AE('1W;R!I=&5M<R!B87-E M9"!U<&]N('1H92!A8V-E<W-O<G,@86YD(&1I<F5C=&EO;G,N(@T*"2)%<G)O M<G,@86-C97-S:6YG('9A;'5E<R!B>2!T:&4@86-C97-S;W)S(&%R92!T<F%P M<&5D(&%N9"!A;B!A='1E;7!T(&ES(&UA9&4@=&@9V5T(&$@=F%L=64@=FEA M("-A=#HN(@T*"2)4:&ES(&ES('1O(&%C8V]M;6]D871E('-O<G1I;F<@9&%T M86)A<V4@<F]W<R!A;F0@;W1H97(@<F5C;W)D<R!T:&%T(')E<W!O;F0@=&@ M(V%T.BXB#0H)(E-U8G-E<75E;G0@97)R;W)S(&%R92!N;W0@=')A<'!E9"XB M#0H)(DYO=&4Z(&YI;"!V86QU97,@87)E('1R96%T960@87,@;&5S<R!T:&%N M('1H96ER(&-O<G)E<W!O;F1I;F<@=F%L=64N(@T*"7P@<&%I<F5D1&ER96-T M:6]N<R!#0H-"@EP86ER961$:7)E8W1I;VYS(#H]('-E;&8@<&%I<F5D1&ER M96-T:6]N<RX-"@T*"7-E;&8@86-C97-S;W)S('=I=&@Z('!A:7)E9$1I<F5C M=&EO;G,@9&\Z(%LZ86-C97-S;W(@.F1I<F5C=&EO;B!('P@=F%L=65!('9A M;'5E0B!#0H)"79A;'5E02`Z/2!;:71E;4$@<&5R9F]R;3H@86-C97-S;W)= M('=H96XZ($5X17)R;W(@9&\Z(%LZ<VEG;F%L('P@<VEG;F%L(&5X:717:71H M.B`H:71E;4$@870Z(&%C8V5S<V]R*5TN#0H)"79A;'5E0B`Z/2!;:71E;4(@ M<&5R9F]R;3H@86-C97-S;W)=('=H96XZ($5X17)R;W(@9&\Z(%LZ<VEG;F%L M('P@<VEG;F%L(&5X:717:71H.B`H:71E;4(@870Z(&%C8V5S<V]R*5TN#0H) M"2AV86QU94$@/2!V86QU94(I(&EF1F%L<V4Z(%L-"@D)"79A;'5E02!I<TYI M;"!I9E1R=64Z(%M>9&ER96-T:6]N72X-"@D)"79A;'5E0B!I<TYI;"!I9E1R M=64Z(%M>9&ER96-T:6]N(&YO=%TN#0H)"0DH=F%L=65!(#P@=F%L=65"*2!I M9E1R=64Z(%M>9&ER96-T:6]N72X-"@D)"2AV86QU94$@/B!V86QU94(I(&EF M5')U93H@6UYD:7)E8W1I;VX@;F]T72X-"@D)72X-"@E=+@T*"5YT<G5E+@T* L(2`A#0H-"D1Y;F%M:6-3;W)T0FQO8VL@:6YI=&EA;&EZ94%F=&5R3&]A9"$* ` end
For now I implemented:
sortedNotes ^notes sort:[:a :b | (a date = b date) and:[a temps > b temps]] .
AND
notesSorted ^notes sort:[:a :b | a date = b date ifTrue:[a temps > b temps] ifFalse:[a date > b date]] .
does exactly the same result.
But there is still notes in a same date that do not sort correctly, the begining is good and after 5 or so objects I get some witch do not seem to be sorted.
BTW don't know the difference between sort: and sorted: it seems as if the last one produce a new collection and the first one produce same collection but sorted.
Note: I use 24 hours instead of a.m. / p.m. is this may cause problems?
Le 2015-02-04 à 12:00, Paul DeBruicker pdebruic@gmail.com a écrit :
a date = b date ifTrue:[a temps > b temps] ifFalse:[a date > b date]
On 04.02.2015, at 19:22, Raymond Asselin jgr.asselin@me.com wrote:
For now I implemented:
sortedNotes ^notes sort:[:a :b | (a date = b date) and:[a temps > b temps]] .
AND
notesSorted ^notes sort:[:a :b | a date = b date ifTrue:[a temps > b temps] ifFalse:[a date > b date]] .
does exactly the same result.
sounds strange. Probably you don't want to store date and time separated but as DateAndTime instances, then you just have to sort them by that. Look at that class. Also, you can see that Date is a subclass of Timespan, which implies a duration: a Date is a timespan of one day. You probably don't want that if you compare them like above.
But there is still notes in a same date that do not sort correctly, the begining is good and after 5 or so objects I get some witch do not seem to be sorted.
can you give an example?
BTW don't know the difference between sort: and sorted: it seems as if the last one produce a new collection and the first one produce same collection but sorted.
exactly. #sorted: is like saying “Give me this, but sorted” and this “give me” typically results in a new collection. #sort: is like saying “You! Sort yourself!” and implies mutation (a bit like set! in scheme or sort! in ruby)
Note: I use 24 hours instead of a.m. / p.m. is this may cause problems?
see above
BEst -Tobias
Proably because you're using #> and not #>=. If not that post the list of dates/times that don't sort properly.
also - #sort: & #sort sort in place. #sorted & sorted: make a new copy as you've seen. If your objects should always sort the same way just implement #<= in the instance side of your object and then you can use #sort or #sorted without having to add a sort block.
Raymond Asselin-4 wrote
For now I implemented:
sortedNotes ^notes sort:[:a :b | (a date = b date) and:[a temps > b temps]] .
AND
notesSorted ^notes sort:[:a :b | a date = b date ifTrue:[a temps > b temps] ifFalse:[a date > b date]] .
does exactly the same result.
But there is still notes in a same date that do not sort correctly, the begining is good and after 5 or so objects I get some witch do not seem to be sorted.
BTW don't know the difference between sort: and sorted: it seems as if the last one produce a new collection and the first one produce same collection but sorted.
Note: I use 24 hours instead of a.m. / p.m. is this may cause problems?
Le 2015-02-04 à 12:00, Paul DeBruicker <
pdebruic@
> a écrit :
a date = b date ifTrue:[a temps > b temps] ifFalse:[a date > b date]
Beginners mailing list
Beginners@.squeakfoundation
http://lists.squeakfoundation.org/mailman/listinfo/beginners
-- View this message in context: http://forum.world.st/How-to-doubble-sort-a-collection-tp4803657p4803711.htm... Sent from the Squeak - Beginners mailing list archive at Nabble.com.
Le 2015-02-04 à 13:33, Tobias Pape Das.Linux@gmx.de a écrit :
can you give an example?
You have a logic issue with the first one: sortedNotes ^notes sort:[:a :b | (a date = b date) and:[a temps > b temps]] . This is saying that the the two dates are different, then false. For this you probably want to be something like: sortedNotes ^notes sort:[:a :b | a date > b date or: [(a date = b date) and:[a temps > b temps]]] .
-cbc
On Wed, Feb 4, 2015 at 10:22 AM, Raymond Asselin jgr.asselin@me.com wrote:
For now I implemented:
sortedNotes ^notes sort:[:a :b | (a date = b date) and:[a temps > b temps]] .
AND
notesSorted ^notes sort:[:a :b | a date = b date ifTrue:[a temps > b temps] ifFalse:[a date > b date]] .
does exactly the same result.
But there is still notes in a same date that do not sort correctly, the begining is good and after 5 or so objects I get some witch do not seem to be sorted.
BTW don't know the difference between sort: and sorted: it seems as if the last one produce a new collection and the first one produce same collection but sorted.
Note: I use 24 hours instead of a.m. / p.m. is this may cause problems?
Le 2015-02-04 à 12:00, Paul DeBruicker pdebruic@gmail.com a écrit :
a date = b date ifTrue:[a temps > b temps] ifFalse:[a date > b date]
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
Are your temps stored as strings? Strings that are numbers aren't coerced to numbers before comparison.
e.g. in a workspace
'765' > '1230'
prints true and
765 > 1230
prints false.....
Raymond Asselin-4 wrote
Le 2015-02-04 à 13:33, Tobias Pape <
Das.Linux@
> a écrit :
can you give an example?
Beginners mailing list
Beginners@.squeakfoundation
http://lists.squeakfoundation.org/mailman/listinfo/beginners
SortedNotesExample.png (62K) <http://forum.world.st/attachment/4803715/0/SortedNotesExample.png%3E;
-- View this message in context: http://forum.world.st/How-to-doubble-sort-a-collection-tp4803657p4803794.htm... Sent from the Squeak - Beginners mailing list archive at Nabble.com.
I finaly found the problem witch was not in the code suggest but behind the keyboard.
In fact when the time is generated everything is good , when i entered it by hand = this is a String. So I had in the sorting code:
^notes sort:[:a :b | (a date = b date) and:[a temps asTime > b temps asTime ]] .
Le 2015-02-04 à 14:40, Chris Cunningham cunningham.cb@gmail.com a écrit :
You have a logic issue with the first one: sortedNotes ^notes sort:[:a :b | (a date = b date) and:[a temps > b temps]] . This is saying that the the two dates are different, then false. For this you probably want to be something like: sortedNotes ^notes sort:[:a :b | a date > b date or: [(a date = b date) and:[a temps > b temps]]] .
-cbc
On Wed, Feb 4, 2015 at 10:22 AM, Raymond Asselin <jgr.asselin@me.com mailto:jgr.asselin@me.com> wrote: For now I implemented:
sortedNotes ^notes sort:[:a :b | (a date = b date) and:[a temps > b temps]] .
AND
notesSorted ^notes sort:[:a :b | a date = b date ifTrue:[a temps > b temps] ifFalse:[a date > b date]] .
does exactly the same result.
But there is still notes in a same date that do not sort correctly, the begining is good and after 5 or so objects I get some witch do not seem to be sorted.
BTW don't know the difference between sort: and sorted: it seems as if the last one produce a new collection and the first one produce same collection but sorted.
Note: I use 24 hours instead of a.m. / p.m. is this may cause problems?
Le 2015-02-04 à 12:00, Paul DeBruicker <pdebruic@gmail.com mailto:pdebruic@gmail.com> a écrit :
a date = b date ifTrue:[a temps > b temps] ifFalse:[a date > b date]
Beginners mailing list Beginners@lists.squeakfoundation.org mailto:Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners http://lists.squeakfoundation.org/mailman/listinfo/beginners
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
Hi Raymond,
On Wed, Feb 4, 2015 at 12:42 PM, Raymond Asselin jgr.asselin@me.com wrote:
Whoa! That looks familiar! :)
With Maui, you normallly don't need to do methods like #sortedNotes. You can just have #notes in there like you do at the bottom (set its output resultView to #panel). Then if you simply implement these methods on your Note class:
mauiDefaultColumns ^ #(med date heures com)
and
mauiSortableColumns ^ #(med date heures comString)
and
comString ^ self com ifNil: [ String empty ]
Then, hover your mouse inside the yellowish area of the collection, press ESC to invoke the menu, then select "generate heading".
You will get proper headers for those columns with ascending / descending sort arrows for each column. All for free from Maui.
HTH.
I Got it. You talked about generate heading in the past but can't figure how to send it. Now it's clear "<<hover your mouse inside the yellowish area of the collection, press ESC to invoke the menu, then select "generate heading">>.
Envoyé de mon iPhone
Le 2015-02-16 à 16:36, Chris Muller asqueaker@gmail.com a écrit :
Hi Raymond,
On Wed, Feb 4, 2015 at 12:42 PM, Raymond Asselin jgr.asselin@me.com wrote: <SortedNotesExample.png>
Whoa! That looks familiar! :)
With Maui, you normallly don't need to do methods like #sortedNotes. You can just have #notes in there like you do at the bottom (set its output resultView to #panel). Then if you simply implement these methods on your Note class:
mauiDefaultColumns ^ #(med date heures com)
and
mauiSortableColumns ^ #(med date heures comString)
and
comString ^ self com ifNil: [ String empty ]
Then, hover your mouse inside the yellowish area of the collection, press ESC to invoke the menu, then select "generate heading".
You will get proper headers for those columns with ascending / descending sort arrows for each column. All for free from Maui.
HTH.
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
On Mon, Feb 16, 2015 at 5:21 PM, Raymond Asselin jgr.asselin@me.com wrote:
I Got it. You talked about generate heading in the past but can't figure how to send it. Now it's clear "<<hover your mouse inside the yellowish area of the collection, press ESC to invoke the menu, then select "generate heading">>.
Ah, sorry I did not make that more clear! Yes, that is the collection-object itself is represented on the screen, with its own context menu.
And, you can actually do a poor-mans multi-level sorting by selecting the ascending / descending arrows in \reverse\ order (inner-most sort level to outer-most).
Envoyé de mon iPhone
Le 2015-02-16 à 16:36, Chris Muller asqueaker@gmail.com a écrit :
Hi Raymond,
On Wed, Feb 4, 2015 at 12:42 PM, Raymond Asselin jgr.asselin@me.com wrote:
<SortedNotesExample.png>
Whoa! That looks familiar! :)
With Maui, you normallly don't need to do methods like #sortedNotes. You can just have #notes in there like you do at the bottom (set its output resultView to #panel). Then if you simply implement these methods on your Note class:
mauiDefaultColumns ^ #(med date heures com)
and
mauiSortableColumns ^ #(med date heures comString)
and
comString ^ self com ifNil: [ String empty ]
Then, hover your mouse inside the yellowish area of the collection, press ESC to invoke the menu, then select "generate heading".
You will get proper headers for those columns with ascending / descending sort arrows for each column. All for free from Maui.
HTH.
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
beginners@lists.squeakfoundation.org