Tuple Array Sorting

Vino vino.bheeman at hotmail.com
Mon Dec 11 15:33:08 UTC 2017


On Monday, 11 December 2017 at 15:15:47 UTC, Biotronic wrote:
> On Monday, 11 December 2017 at 14:52:35 UTC, Vino wrote:
>> Example Program and Output
>>
>> import std.algorithm: filter, map, sort;
>> import std.container.array;
>> import std.file: SpanMode, dirEntries, isDir ;
>> import std.range: chain;
>> import std.stdio: writefln;
>> import std.typecons: Tuple, tuple;
>>
>> void main () {
>> auto FFs =  Array!(string)("C:\\Temp\\BACKUP", 
>> "C:\\Temp\\EXPORT", "C:\\Temp\\PROD_TEAM");
>> int AgeSize = 2;
>> foreach(d; FFs[]) {
>> auto dFiles = Array!(Tuple!(string, string))(dirEntries(d, 
>> SpanMode.shallow).filter!(a => a.isDir).map!(a => 
>> tuple(a.name, a.timeCreated.toSimpleString[0 .. 20])));
>> writefln("%(%-(%-63s %s %)\n%)", chain(dFiles[]).sort!((a,b) 
>> => a[0] > b[0]));
>> }
>> }
>
> You're somewhat close. You're sorting based on the 0th element 
> of your tuples, while you should sort on the 1st. Something 
> like this:
>
> import std.algorithm: filter, map, sort;
> import std.array : array;
> import std.file: SpanMode, dirEntries, isDir ;
> import std.range: join;
> import std.stdio: writefln;
> import std.typecons: tuple;
>
> void main () {
>     auto folders =  ["D:\\Dev"];
>
>     auto sorted = folders
>         .map!(a => dirEntries(a, SpanMode.shallow))
>         .join
>         .filter!(a => a.isDir)
>         .map!(a => tuple(a.name, a.timeCreated.toSimpleString[0 
> .. 20]))
>         .array
>         .sort!((a,b) => a[1] > b[1]);
>
>     writefln("%( %( %-63s %s %) \n%)", sorted);
> }
>
> --
>   Biotronic

Hi,

  I tired that but no luck, below is the output, in your code you 
have one folder "auto folders =  ["D:\\Dev"];" if you have 
multiple folder then output is not sorted.

C:\Temp\BACKUP\dir2                                     
2017-Sep-09 22:44:11
C:\Temp\BACKUP\dir1                                     
2017-Sep-06 16:06:42
C:\Temp\BACKUP\DND3                                     
2017-Sep-05 14:31:00
C:\Temp\BACKUP\t1                                       
2017-Dec-11 04:10:02
C:\Temp\BACKUP\dir3                                     
2017-Dec-10 06:56:07
C:\Temp\EXPORT\DND6                                     
2017-Sep-05 14:31:00
C:\Temp\PROD_TEAM\DND1                                  
2017-Sep-05 14:31:01

From,
Vino.B



More information about the Digitalmars-d-learn mailing list