//
// DIR-EXT-W2k.VDM 19.05.2002
//
// Sort a listing created by "DIR /S" in Win2000 by filename
//
// Attention: For german Windows !!!
//
// Delete several unneeded lines
R("|<|*Datentr„ger in|*|N", BEGIN+ALL+NOERR)
if(EM){
return
}
R("|<|*Datentr„gernummer|*|N", BEGIN+ALL+NOERR)
R("|<|*
|*|N", "", BEGIN+ALL+NOERR)
R("|<|*Datei(en)|*|N", "", BEGIN+ALL+NOERR)
R("|<|*Verzeichnis(se)|*|N", BEGIN+ALL+NOERR)
R("|<|*Anzahl der |*|N", "", BEGIN+ALL+NOERR)
R("|<|X", "", BEGIN+ALL+NOERR)
// resort every line to have the filename leading
BoF
While(! At_EOF){
S("Verzeichnis von ", ADVANCE+NOERR)
RCB(11, CP, EOL_POS) // path
BoL Del_Line(1)
Set_Marker(6, CP)
While(Match("Verzeichnis von ")!=0){
if(At_EoF) { break }
BoL
RCB(12, CP, CP+39) // size etc.
RCB(13, CP+39, EOL_Pos) // name
BoL Del_Line(1)
RI(13)
IT(" | ")
RI(11)
IT(" | ")
RI(12)
IN(1)
}
}
// beautify (line up) the path
BoF
#103=0
while(! At_EoF){
S("||", NOERR+ERRBREAK)
if(Cur_Col > #103){
#103 = Cur_Col
}
Line(1, NOERR)
}
BoF
while(! At_EoF){
S("||", NOERR+ERRBREAK)
Ins_Indent(#103)
Line(1, NOERR)
}
// beautify (line up) the date and size
BoF
#103=0
while(! At_EoF){
S("||", NOERR+ERRBREAK+COUNT, 2)
if(Cur_Col > #103){
#103 = Cur_Col
}
Line(1, NOERR)
}
BoF
while(! At_EoF){
S("||", NOERR+ERRBREAK+COUNT, 2)
Ins_Indent(#103)
Line(1, NOERR)
}
// sort the file by filename and path
BoF
Num_Str(#103, 103, LEFT+NOCR)
Reg_Set(103, "1:", INSERT)
// BUG: doesn't work! "NOT ENOUGH MEMORY ...:" fixed since 15.06.2002
Sort_Merge(@(103), 0, File_Size)
//Sort(0, File_Size)