Re: 2 Dimensional Array Sorting

2017-08-27 Thread Vino.B via Digitalmars-d-learn

On Sunday, 27 August 2017 at 11:53:29 UTC, Vino.B wrote:

On Saturday, 26 August 2017 at 10:53:03 UTC, Vino.B wrote:

[...]


Hi,

  After analyzing a bit further was able to find that the  out 
data before sorting is like below(4 - 2 dimensional array) 
hence the sorting is not working, so may i know how do i make 
this as a single 2 dimensional array like below


[...]


Hi,

  Thank you very much, was able to resolve the issue.

From,
Vino.B


Re: 2 Dimensional Array Sorting

2017-08-27 Thread Vino.B via Digitalmars-d-learn

On Saturday, 26 August 2017 at 10:53:03 UTC, Vino.B wrote:

On Saturday, 26 August 2017 at 10:45:13 UTC, Vino.B wrote:

On Saturday, 26 August 2017 at 10:07:53 UTC, user1234 wrote:

[...]


Hi,

 Now there is no duplicate , but the sequence is still not 
correct


[...]


Hi,

  If I execute the script several time's i still get the 
duplicate entries.


From,
Vino.B


Hi,

  After analyzing a bit further was able to find that the  out 
data before sorting is like below(4 - 2 dimensional array) hence 
the sorting is not working, so may i know how do i make this as a 
single 2 dimensional array like below


Required:
[["C:\\Temp\\TEAM2\\TEAM\\DIR1", "40"], 
["C:\\Temp\\TEAM2\\TEAM\\DIR2", "2228"], 
["C:\\Temp\\TEAM3\\EXPORT\\dir2", "61"], 
["C:\\Temp\\TEAM2\\PROD_TEAM\\dir1", "35772"], 
["C:\\Temp\\TEAM2\\BACKUP\\dir1", "35732"], 
["C:\\Temp\\TEAM3\\BACKUP\\dir1", "71465"], 
["C:\\Temp\\TEAM2\\EXPORT\\dir2", "30"]]


Output:
[["C:\\Temp\\TEAM2\\TEAM\\DIR1", "40"], 
["C:\\Temp\\TEAM2\\TEAM\\DIR2", "2228"], 
["C:\\Temp\\TEAM3\\EXPORT\\dir2", "61"]] - 2darray 1


[["C:\\Temp\\TEAM2\\PROD_TEAM\\dir1", "35772"]] - 2darray 2

[["C:\\Temp\\TEAM2\\BACKUP\\dir1", "35732"], 
["C:\\Temp\\TEAM3\\BACKUP\\dir1", "71465"]]  - 2darray 3


[["C:\\Temp\\TEAM2\\EXPORT\\dir2", "30"]]  - 2darray 4

From,
Vino.B



Re: 2 Dimensional Array Sorting

2017-08-26 Thread Vino.B via Digitalmars-d-learn

On Saturday, 26 August 2017 at 10:45:13 UTC, Vino.B wrote:

On Saturday, 26 August 2017 at 10:07:53 UTC, user1234 wrote:

[...]


Hi,

 Now there is no duplicate , but the sequence is still not 
correct


[...]


Hi,

  If I execute the script several time's i still get the 
duplicate entries.


From,
Vino.B


Re: 2 Dimensional Array Sorting

2017-08-26 Thread Vino.B via Digitalmars-d-learn

On Saturday, 26 August 2017 at 10:07:53 UTC, user1234 wrote:

On Saturday, 26 August 2017 at 09:53:44 UTC, Vino.B wrote:

On Saturday, 26 August 2017 at 06:12:57 UTC, user1234 wrote:

[...]


Hi,
  I tired you logic, but doesn't seem to be working, as every 
time i execute the order of the file list is different as in 
the below program i have used the sort based on the file name.


[...]


Try with (a,b) => a[1].to!int < b[1].to!int as predicate. T


Hi,

 Now there is no duplicate , but the sequence is still not correct

Output: the File C:\Temp\TEAM2\PROD_TEAM\dir1 is after 
C:\Temp\TEAM3\EXPORT\dir2

C:\Users\admin\Desktop\Script\D>rdmd Ftest.d
C:\Temp\TEAM2\BACKUP\dir1 
35732

C:\Temp\TEAM2\TEAM\DIR1   40
C:\Temp\TEAM2\TEAM\DIR2   2228
C:\Temp\TEAM2\EXPORT\dir2 30
C:\Temp\TEAM3\BACKUP\dir1 
71465

C:\Temp\TEAM3\EXPORT\dir2 61
C:\Temp\TEAM2\PROD_TEAM\dir1  
35772


Required output
C:\Temp\TEAM2\BACKUP\dir1 
35732

C:\Temp\TEAM2\TEAM\DIR1   40
C:\Temp\TEAM2\TEAM\DIR2   2228
C:\Temp\TEAM2\EXPORT\dir2 30
C:\Temp\TEAM2\PROD_TEAM\dir1  
35772
C:\Temp\TEAM3\BACKUP\dir1 
71465

C:\Temp\TEAM3\EXPORT\dir2 61

From,
Vino.B


Re: 2 Dimensional Array Sorting

2017-08-26 Thread user1234 via Digitalmars-d-learn

On Saturday, 26 August 2017 at 09:53:44 UTC, Vino.B wrote:

On Saturday, 26 August 2017 at 06:12:57 UTC, user1234 wrote:

[...]


Hi,
  I tired you logic, but doesn't seem to be working, as every 
time i execute the order of the file list is different as in 
the below program i have used the sort based on the file name.


[...]


Try with (a,b) => a[1].to!int < b[1].to!int as predicate. T


Re: 2 Dimensional Array Sorting

2017-08-26 Thread Vino.B via Digitalmars-d-learn

On Saturday, 26 August 2017 at 06:12:57 UTC, user1234 wrote:

On Saturday, 26 August 2017 at 06:11:37 UTC, user1234 wrote:

On Saturday, 26 August 2017 at 06:01:15 UTC, Vino.B wrote:

Hi,

 Can someone provide me a example of sorting 2 Dimensional 
Array containing Filename and Size, and should be sorted by 
Size.


From,
Vino.B


void main(string[] args)
{
import std.stdio;
import std.algorithm.sorting;

string[2][] nameAndSize = [["b", "2"], ["a", "1"]];
auto s = nameAndSize.sort!((a,b) => a[0] < b[0] && a[1] < 
b[1]);

writeln(s);
}


I missed the "by Size" directive. So it's just:

void main(string[] args)
{
import std.stdio;
import std.algorithm.sorting;

string[2][] nameAndSize = [["b", "2"], ["a", "1"]];
auto s = nameAndSize.sort!((a,b) => a[1] < b[1]);
writeln(s);
}


Hi,
  I tired you logic, but doesn't seem to be working, as every 
time i execute the order of the file list is different as in the 
below program i have used the sort based on the file name.


Program:
import std.file: dirEntries, isFile, SpanMode;
import std.stdio: writeln, writefln;
import std.algorithm: filter, map, sort;
import std.path: globMatch, baseName;
import std.array: array, replace;
import std.typecons: tuple;
import std.parallelism;
import std.conv;
int SizeDir = 10;
string[][] Subdata;

auto Dirlst = [ "C:\\Temp\\TEAM2\\TEAM", 
"C:\\Temp\\TEAM2\\PROD_TEAM", "C:\\Temp\\TEAM3\\BACKUP", 
"C:\\Temp\\TEAM3\\EXPORT"];

string[][] SizeDirList (string Fs)
{
ulong subdirTotal = 0;
auto unc = "?\\"~Fs;
auto dFiles = dirEntries(unc, SpanMode.shallow).filter!(a => 
a.isDir && !globMatch(a.baseName, "*DND*")).map!(a => 
tuple(a.name, a.size)).array;

  foreach (d; dFiles)
{
auto SdFiles = dirEntries(d[0], SpanMode.depth).map!(a => 
tuple(a.size)).array;

foreach (f; parallel(SdFiles,1))
{ subdirTotal += f[0]; }
   ulong subdirTotalGB = (subdirTotal/1024);
   if (subdirTotalGB > SizeDir)
		{ Subdata ~= [d[0].replace("?\\", ""), 
to!string(subdirTotalGB)]; }

subdirTotal = 0;
}
return Subdata;
}
void main ()
{
 foreach (string Fs; parallel(Dirlst[0 .. $],1))
{
auto SizeDirListTask = task(, Fs);
SizeDirListTask.executeInNewThread();
auto SizeDirListTaskData = SizeDirListTask.yieldForce;
		auto sortedresult = SizeDirListTaskData.sort!((a,b) => a[0] < 
b[0]);

foreach(i; sortedresult[0 .. $])
writefln("%-(%-63s %)", i);
}

}

Output :The sequence is not correct and there are duplicates.

C:\Users\admin\Desktop\Script\D>rdmd Ftest.d
C:\Temp\TEAM2\TEAM\DIR1   40
C:\Temp\TEAM2\TEAM\DIR2   2228
C:\Temp\TEAM2\TEAM\DIR2   2228
C:\Temp\TEAM2\PROD_TEAM\dir1  
35772

C:\Temp\TEAM2\TEAM\DIR2   2228
C:\Temp\TEAM2\PROD_TEAM\dir1  
35772
C:\Temp\TEAM3\BACKUP\dir1 
71465

C:\Temp\TEAM3\EXPORT\dir2 61

C:\Users\admin\Desktop\Script\D>rdmd Ftest.d
C:\Temp\TEAM2\TEAM\DIR1   40
C:\Temp\TEAM2\TEAM\DIR2   2228
C:\Temp\TEAM2\PROD_TEAM\dir1  
35772
C:\Temp\TEAM3\BACKUP\dir1 
71465

C:\Temp\TEAM3\EXPORT\dir2 61

C:\Users\admin\Desktop\Script\D>rdmd Ftest.d
C:\Temp\TEAM2\TEAM\DIR1   40
C:\Temp\TEAM2\TEAM\DIR2   2228
C:\Temp\TEAM3\BACKUP\dir1 
71465

C:\Temp\TEAM3\EXPORT\dir2 61
C:\Temp\TEAM2\PROD_TEAM\dir1  
35772


Required Output :C:\Temp\TEAM2\..., C:\Temp\TEAM3...

C:\Temp\TEAM2\TEAM\DIR1   40
C:\Temp\TEAM2\TEAM\DIR2   2228
C:\Temp\TEAM2\PROD_TEAM\dir1  
35772
C:\Temp\TEAM3\BACKUP\dir1 
71465

C:\Temp\TEAM3\EXPORT\dir2 61

From,
Vino.B



Re: 2 Dimensional Array Sorting

2017-08-26 Thread user1234 via Digitalmars-d-learn

On Saturday, 26 August 2017 at 06:11:37 UTC, user1234 wrote:

On Saturday, 26 August 2017 at 06:01:15 UTC, Vino.B wrote:

Hi,

 Can someone provide me a example of sorting 2 Dimensional 
Array containing Filename and Size, and should be sorted by 
Size.


From,
Vino.B


void main(string[] args)
{
import std.stdio;
import std.algorithm.sorting;

string[2][] nameAndSize = [["b", "2"], ["a", "1"]];
auto s = nameAndSize.sort!((a,b) => a[0] < b[0] && a[1] < 
b[1]);

writeln(s);
}


I missed the "by Size" directive. So it's just:

void main(string[] args)
{
import std.stdio;
import std.algorithm.sorting;

string[2][] nameAndSize = [["b", "2"], ["a", "1"]];
auto s = nameAndSize.sort!((a,b) => a[1] < b[1]);
writeln(s);
}


Re: 2 Dimensional Array Sorting

2017-08-26 Thread user1234 via Digitalmars-d-learn

On Saturday, 26 August 2017 at 06:01:15 UTC, Vino.B wrote:

Hi,

 Can someone provide me a example of sorting 2 Dimensional 
Array containing Filename and Size, and should be sorted by 
Size.


From,
Vino.B


void main(string[] args)
{
import std.stdio;
import std.algorithm.sorting;

string[2][] nameAndSize = [["b", "2"], ["a", "1"]];
auto s = nameAndSize.sort!((a,b) => a[0] < b[0] && a[1] < 
b[1]);

writeln(s);
}


2 Dimensional Array Sorting

2017-08-26 Thread Vino.B via Digitalmars-d-learn

Hi,

 Can someone provide me a example of sorting 2 Dimensional Array 
containing Filename and Size, and should be sorted by Size.


From,
Vino.B