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