Sắp xếp mảng theo Windows Explorer

Liên hệ QC

ThaiDieuAnh

Thành viên hoạt động
Tham gia
8/8/16
Bài viết
139
Được thích
24
Nghề nghiệp
Xây dựng
Xin chào các anh chị, em muốn sắp sếp mảng danh sách theo kiểu của Windows Explorer ạ, ví dụ:
Kiểu sắp xếp thông thường:
Mã:
C:\inetpub\wwwroot\rootpath\1
C:\inetpub\wwwroot\rootpath\10
C:\inetpub\wwwroot\rootpath\100
C:\inetpub\wwwroot\rootpath\1004
C:\inetpub\wwwroot\rootpath\101
C:\inetpub\wwwroot\rootpath\11
C:\inetpub\wwwroot\rootpath\12
C:\inetpub\wwwroot\rootpath\2
C:\inetpub\wwwroot\rootpath\3
C:\inetpub\wwwroot\rootpath\4
C:\inetpub\wwwroot\rootpath\5
C:\inetpub\wwwroot\rootpath\6
C:\inetpub\wwwroot\rootpath\7
C:\inetpub\wwwroot\rootpath\8
C:\inetpub\wwwroot\rootpath\87skjnd
C:\inetpub\wwwroot\rootpath\89sdf93kmw3
C:\inetpub\wwwroot\rootpath\9
C:\inetpub\wwwroot\rootpath\ad
C:\inetpub\wwwroot\rootpath\bin
C:\inetpub\wwwroot\rootpath\dark
C:\inetpub\wwwroot\rootpath\erk
C:\inetpub\wwwroot\rootpath\jkh23978yoaslkd3
C:\inetpub\wwwroot\rootpath\lk2309as
C:\inetpub\wwwroot\rootpath\work
C:\inetpub\wwwroot\rootpath\zone
Kiểu sắp xếp mong muốn:
Mã:
C:\inetpub\wwwroot\rootpath\1
C:\inetpub\wwwroot\rootpath\2
C:\inetpub\wwwroot\rootpath\3
C:\inetpub\wwwroot\rootpath\4
C:\inetpub\wwwroot\rootpath\5
C:\inetpub\wwwroot\rootpath\6
C:\inetpub\wwwroot\rootpath\7
C:\inetpub\wwwroot\rootpath\8
C:\inetpub\wwwroot\rootpath\9
C:\inetpub\wwwroot\rootpath\10
C:\inetpub\wwwroot\rootpath\11
C:\inetpub\wwwroot\rootpath\12
C:\inetpub\wwwroot\rootpath\87skjnd
C:\inetpub\wwwroot\rootpath\89sdf93kmw3
C:\inetpub\wwwroot\rootpath\100
C:\inetpub\wwwroot\rootpath\101
C:\inetpub\wwwroot\rootpath\1004
C:\inetpub\wwwroot\rootpath\ad
C:\inetpub\wwwroot\rootpath\bin
C:\inetpub\wwwroot\rootpath\dark
C:\inetpub\wwwroot\rootpath\erk
C:\inetpub\wwwroot\rootpath\jkh23978yoaslkd3
C:\inetpub\wwwroot\rootpath\lk2309as
C:\inetpub\wwwroot\rootpath\work
C:\inetpub\wwwroot\rootpath\zone
Em mong các anh chị giúp em, em xin cảm ơn!
P/s: Ví dụ em copy trên mạng
 
Xin chào các anh chị, em muốn sắp sếp mảng danh sách theo kiểu của Windows Explorer ạ, ví dụ:
Kiểu sắp xếp thông thường:
Mã:
C:\inetpub\wwwroot\rootpath\1
C:\inetpub\wwwroot\rootpath\10
C:\inetpub\wwwroot\rootpath\100
C:\inetpub\wwwroot\rootpath\1004
C:\inetpub\wwwroot\rootpath\101
C:\inetpub\wwwroot\rootpath\11
C:\inetpub\wwwroot\rootpath\12
C:\inetpub\wwwroot\rootpath\2
C:\inetpub\wwwroot\rootpath\3
C:\inetpub\wwwroot\rootpath\4
C:\inetpub\wwwroot\rootpath\5
C:\inetpub\wwwroot\rootpath\6
C:\inetpub\wwwroot\rootpath\7
C:\inetpub\wwwroot\rootpath\8
C:\inetpub\wwwroot\rootpath\87skjnd
C:\inetpub\wwwroot\rootpath\89sdf93kmw3
C:\inetpub\wwwroot\rootpath\9
C:\inetpub\wwwroot\rootpath\ad
C:\inetpub\wwwroot\rootpath\bin
C:\inetpub\wwwroot\rootpath\dark
C:\inetpub\wwwroot\rootpath\erk
C:\inetpub\wwwroot\rootpath\jkh23978yoaslkd3
C:\inetpub\wwwroot\rootpath\lk2309as
C:\inetpub\wwwroot\rootpath\work
C:\inetpub\wwwroot\rootpath\zone
Kiểu sắp xếp mong muốn:
Mã:
C:\inetpub\wwwroot\rootpath\1
C:\inetpub\wwwroot\rootpath\2
C:\inetpub\wwwroot\rootpath\3
C:\inetpub\wwwroot\rootpath\4
C:\inetpub\wwwroot\rootpath\5
C:\inetpub\wwwroot\rootpath\6
C:\inetpub\wwwroot\rootpath\7
C:\inetpub\wwwroot\rootpath\8
C:\inetpub\wwwroot\rootpath\9
C:\inetpub\wwwroot\rootpath\10
C:\inetpub\wwwroot\rootpath\11
C:\inetpub\wwwroot\rootpath\12
C:\inetpub\wwwroot\rootpath\87skjnd
C:\inetpub\wwwroot\rootpath\89sdf93kmw3
C:\inetpub\wwwroot\rootpath\100
C:\inetpub\wwwroot\rootpath\101
C:\inetpub\wwwroot\rootpath\1004
C:\inetpub\wwwroot\rootpath\ad
C:\inetpub\wwwroot\rootpath\bin
C:\inetpub\wwwroot\rootpath\dark
C:\inetpub\wwwroot\rootpath\erk
C:\inetpub\wwwroot\rootpath\jkh23978yoaslkd3
C:\inetpub\wwwroot\rootpath\lk2309as
C:\inetpub\wwwroot\rootpath\work
C:\inetpub\wwwroot\rootpath\zone
Em mong các anh chị giúp em, em xin cảm ơn!
P/s: Ví dụ em copy trên mạng
Ví dụ copy trên mạng thế bài toán của bạn đâu.
 
Upvote 0
Ví dụ copy trên mạng thế bài toán của bạn đâu.
Dạ, bài toán đó luôn anh, em tìm mọi cách sort, ví dụ copy cái mảng đó vào excel rồi sort sau đó đổ vào mảng nhưng nó vẫn không được như mong muốn theo kiểu sort File Name như trong Windows Explorer ạ
 
Upvote 0
Dùng Text-to-columns, delimiters là "/".
Những đoạn số sẽ trở thành số.
Sort.
Xoá những cột đã split ra.

Muốn code thì record macro. Khá đơn giản.
 
Upvote 0
Dùng Text-to-columns, delimiters là "/".
Những đoạn số sẽ trở thành số.
Sort.
Xoá những cột đã split ra.

Muốn code thì record macro. Khá đơn giản.
Cái này không phải số đâu bác mà là vừa số vừa chữ. Nếu sort kiểu số thì 11 sẽ đứng trước 100 nhưng kiểu chữ thì ngược lại. Nói chung rất nhiều khả năng mà có lẽ tác giả cũng chưa lường hết hoặc chưa ví dụ hết, chẳng hạn so sánh 1a và 01a.
 
Upvote 0
Dạ, bài toán đó luôn anh, em tìm mọi cách sort, ví dụ copy cái mảng đó vào excel rồi sort sau đó đổ vào mảng nhưng nó vẫn không được như mong muốn theo kiểu sort File Name như trong Windows Explorer ạ
Bạn cho file lên và ví dụ cụ thể nhé.Sắp xếp như thế nào.
 
Upvote 0
Bạn cho file lên và ví dụ cụ thể nhé.Sắp xếp như thế nào.
Em nghĩ ví dụ đầu bài là cụ thể rồi anh ạ. Em muốn sắp xếp giống như kiểu sắp xếp thứ tự các file của Windows chứ không phải kiểu thông thường trong Excel.
Cái này không phải số đâu bác mà là vừa số vừa chữ. Nếu sort kiểu số thì 11 sẽ đứng trước 100 nhưng kiểu chữ thì ngược lại. Nói chung rất nhiều khả năng mà có lẽ tác giả cũng chưa lường hết hoặc chưa ví dụ hết, chẳng hạn so sánh 1a và 01a.
Vâng anh, nếu chỉ là dạng số thì mình có thể định dạng 11 thành 011 để nó đứng trước 100. Nhưng cả số và chữ thì nó lại luôn thì em muốn 1< 1a < 2
 
Upvote 0
Bạn đọc qua bài này xem có thể giúp được gì bạn không

Có lựa chọn MatchCase = True/False
 
Lần chỉnh sửa cuối:
Upvote 0
Em nghĩ ví dụ đầu bài là cụ thể rồi anh ạ. Em muốn sắp xếp giống như kiểu sắp xếp thứ tự các file của Windows chứ không phải kiểu thông thường trong Excel.

Vâng anh, nếu chỉ là dạng số thì mình có thể định dạng 11 thành 011 để nó đứng trước 100. Nhưng cả số và chữ thì nó lại luôn thì em muốn 1< 1a < 2
Dùng code hay dùng Excel công thức thì cũng cần
- Đưa các cái tên cần sắp xếp về cùng độ dài chuỗii, với số 1 thì thành 0001 chẳng hạn, 2 -->0002,...vvv
Rồi sắp xếp thì cột giả lập này là được như ý
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom