Tuple Array Sorting

Vino vino.bheeman at hotmail.com
Mon Dec 11 14:52:35 UTC 2017


On Monday, 11 December 2017 at 14:25:16 UTC, Vino wrote:
> On Monday, 11 December 2017 at 13:58:49 UTC, Vino wrote:
>> Hi All,
>>
>>   Request your help in tuple array sorting, I have a function 
>> which returns tuple values as below so how do i sort this type 
>> of array based on the time stamp(Acceding order) .
>>
>> Eg:
>> C:\Temp\EXPORT\dir2   2017-Sep-06 16:06:58
>> C:\Temp\BACKUP\dir2   2017-Sep-09 22:44:11
>> C:\Temp\TEAM\dir1     2017-Sep-10 16:06:42
>> C:\Temp\USER\dir3     2017-Sep-05 16:06:57
>>
>> Required Output:
>> C:\Temp\USER\dir3     2017-Sep-05 16:06:57
>> C:\Temp\EXPORT\dir2   2017-Sep-06 16:06:58
>> C:\Temp\BACKUP\dir2   2017-Sep-09 22:44:11
>> C:\Temp\TEAM\dir1     2017-Sep-10 16:06:42
>>
>> From,
>> Vino.B
>
> A small additional Information
>
> C:\Temp\EXPORT\dir2   2017-Sep-06 16:06:58 - 
> Array!(Tuple!(string, string)) (Array 1)
> C:\Temp\BACKUP\dir2   2017-Sep-09 22:44:11 - 
> Array!(Tuple!(string, string)) (Array 2)
> C:\Temp\TEAM\dir1     2017-Sep-10 16:06:42 - 
> Array!(Tuple!(string, string)) (Array 3)
> C:\Temp\USER\dir3     2017-Sep-05 16:06:57 - 
> Array!(Tuple!(string, string)) (Array 4)
>
>  Required Output:
> C:\Temp\USER\dir3     2017-Sep-05 16:06:57 - 
> Array!(Tuple!(string, string)) (Array 4)
> C:\Temp\EXPORT\dir2   2017-Sep-06 16:06:58 - 
> Array!(Tuple!(string, string)) (Array 1)
> C:\Temp\BACKUP\dir2   2017-Sep-09 22:44:11 - 
> Array!(Tuple!(string, string)) (Array 2)
> C:\Temp\TEAM\dir1     2017-Sep-10 16:06:42 - 
> Array!(Tuple!(string, string)) (Array 3)
>
> From,
> Vino.B

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]));
}
}

Output

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

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


From,
Vino.B


More information about the Digitalmars-d-learn mailing list