Tuple Array Sorting

Vino vino.bheeman at hotmail.com
Mon Dec 11 19:46:04 UTC 2017


On Monday, 11 December 2017 at 19:23:40 UTC, Seb wrote:
> On Monday, 11 December 2017 at 16:15:14 UTC, Vino wrote:
>> On Monday, 11 December 2017 at 15:54:11 UTC, Biotronic wrote:
>>>   [...]
>>
>> Hi Biotronic,
>>
>>  I tried your code with multiple folder's , but no luck the 
>> output is not sorted.
>>
>> Program:
>> import std.algorithm: filter, map, sort;
>> import std.array;
>> import std.file: SpanMode, dirEntries, isDir ;
>> import std.stdio: writefln, writeln;
>> import std.typecons: Tuple, tuple;
>>
>> void main () {
>> auto FFs =  ["C:\\Temp\\sapnas2\\BACKUP", 
>> "C:\\Temp\\sapnas2\\EXPORT", "C:\\Temp\\sapnas2\\PROD_TEAM"];
>> auto sorted = FFs
>> .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);
>> }
>>
>> From,
>> Vino.B
>
> Your program still contains toSimpleString in the sort lambda. 
> Have you, as suggested, removed it?
> As Biotronic explained, sorting on the string representation of 
> dates can't work.

Hi,

  Yes, I have changed the code as below, and removed the 
toSimpleString, even then no luck.

Code:
import std.algorithm;
import std.container.array;
import std.file: SpanMode, dirEntries, isDir ;
import std.stdio: writefln, writeln;
import std.typecons: Tuple, tuple;
import std.range: chain;

void main () {
auto FFs =  ["C:\\Temp\\BACKUP", "C:\\Temp\\EXPORT", 
"C:\\Temp\\PROD_TEAM"];
foreach(d; FFs[]) {
auto dFiles = Array!(Tuple!(string, SysTime))(dirEntries(d, 
SpanMode.shallow).filter!(a => a.isDir).map!(a => tuple(a.name, 
a.timeCreated)));
writefln("%(%-(%-63s %s %)\n%)", chain(dFiles[]).sort!((a, b) => 
a[1] < b[1]));
}
}

Output
C:\Temp\BACKUP\DND3                                     
2017-Sep-05 14:31:00.7037169
C:\Temp\BACKUP\dir1                                     
2017-Sep-06 16:06:42.7223837
C:\Temp\BACKUP\dir2                                     
2017-Sep-09 22:44:11.7604069
C:\Temp\BACKUP\dir3                                     
2017-Dec-10 06:56:07.5122231
C:\Temp\BACKUP\t1                                       
2017-Dec-11 04:10:02.6413853

C:\Temp\EXPORT\DND6                                     
2017-Sep-05 14:31:00.8909172
C:\Temp\PROD_TEAM\DND1                                  
2017-Sep-05 14:31:01.8269189

Required Output:
C:\Temp\BACKUP\DND3                                     
2017-Sep-05 14:31:00.7037169
C:\Temp\EXPORT\DND6                                     
2017-Sep-05 14:31:00.8909172
C:\Temp\PROD_TEAM\DND1                                  
2017-Sep-05 14:31:01.8269189
C:\Temp\BACKUP\dir1                                     
2017-Sep-06 16:06:42.7223837
C:\Temp\BACKUP\dir2                                     
2017-Sep-09 22:44:11.7604069
C:\Temp\BACKUP\dir3                                     
2017-Dec-10 06:56:07.5122231
C:\Temp\BACKUP\t1                                       
2017-Dec-11 04:10:02.6413853

From,
Vino.B



More information about the Digitalmars-d-learn mailing list