Tạo mã cho Học sinh (8 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Theo mình chủ bài đăng nên chọn bộ mã như sau:
HMNTH0
Ở đây H là năm học hay năm sinh của bé; H là 2018, năm sau sẽ là 'I'
M là lớp mần; lớp lá sẽ là 'L'
NTH0 là 3 kí tự tiêu biểu cho họ & tên & thêm 1 số để loại trùng tên của bé theo luật sau:
PHP:
'
Mã NTH0       Họ & Tên
NTH0      Nguyễn Thanh Hải
NTH1      Ngô Thị Thành Hoa
NJF0      Nguyễn Đức
CNM0      Công tằng Tôn Nữ Nguyệt Minh
HJA0      Hà Ẩu
ADF0      Âu Dương Đông
. . . .          . . . . .
 
Sửa lại pattern cho các trường hợp này: "\s*(\S)\S*\s?" hoặc "(\S)\S*\s?" thêm hàm Trim
Sau một đống \s thì đương nhiên là \S rồi. Vì vậy chỉ cần bắt ký tự ấy bằng dấu chấm là được

Chú: nếu muốn dùng \s thì mẫu như vầy cũng được. Tuy nhiên tôi cũng không rõ giảm được cái phần \s? ở sau thì có nhanh hơn. Chỉ là thường thì xét đầu câu (dấu mũ ^) an toàn hơn:
"(?:^|\s+)(.)\S*"
 
Sau một đống \s thì đương nhiên là \S rồi. Vì vậy chỉ cần bắt ký tự ấy bằng dấu chấm là được

Chú: nếu muốn dùng \s thì mẫu như vầy cũng được. Tuy nhiên tôi cũng không rõ giảm được cái phần \s? ở sau thì có nhanh hơn. Chỉ là thường thì xét đầu câu (dấu mũ ^) an toàn hơn:
"(?:^|\s+)(.)\S*"
Pattern của tôi (\S) thay bằng (.) cũng được, tôi đã quen kiểu như thằng này và không phải thằng này cho an toàn, còn cái pattern của bạn "(?:^|\s+)(.)\S*" nó sẽ ưu tiên đầu câu trước tức là "^(.)\S*" như vậy \s ở đầu câu cũng thỏa pattern cho nên trường hợp này sẽ bị sai, để đúng thi phải chỉnh (.) thành (\S).
Còn trường hợp \s? có thể bỏ đi cũng được vì tôi quên mất đã xét \s ở đầu thì không cần xét \s ở cuối nữa.
 
Còn trường hợp \s? có thể bỏ đi cũng được vì tôi quên mất đã xét \s ở đầu thì không cần xét \s ở cuối nữa.
Rất tiếc là cả tôi lẫn bạn đều trật chỗ này. Những chỗ cách cuối câu vẫn chưa đi hết.
Hình như phải \s* hay \s+ ở cuối nó mới chịu đi hết.
(Cái này mệt quá. Phải viết một sub đẻ ra cỡ vài chục trường hợp mới tét hết)

Chú thích: cái này làm chơi cho vui thôi. Chứ thực tế thì dùng một cái mẫu đơn giản cộng hàm Application.Trim sẽ hiệu quả hơn.
 
Lần chỉnh sửa cuối:
Rất tiếc là cả tôi lẫn bạn đều trật chỗ này. Những chỗ cách cuối câu vẫn chưa đi hết.
Hình như phải \s* hay \s+ ở cuối nó mới chịu đi hết.
(Cái này mệt quá. Phải viết một sub đẻ ra cỡ vài chục trường hợp mới tét hết)

Chú thích: cái này làm chơi cho vui thôi. Chứ thực tế thì dùng một cái mẫu đơn giản cộng hàm Application.Trim sẽ hiệu quả hơn.
Đúng là phải thêm \s* cho trường hợp cuối chuỗi ($) toàn \s. Mà thôi, dữ liệu cho nhiêu thì viết nhiêu, nếu có phát sinh mới thì viết thêm cho dễ, chứ làm một lần cho tất cả các trường hợp thì nhức đầu lắm.
 
Ngoài lề: DHN46 ủng hộ ý kiến thầy Ba Tê. Cách lập mã nghe đơn giản nhưng làm thì phức tạp. Người quản trị dữ liệu nên làm theo thứ tự, tra cứu đã có hệ thống.

Cứ làm kiểu chủ topic đến lúc tra cứu vô tình "tưởng" anh mã là như thế này vì là quy tắc abc..blabla là sai hết, vô tình tạo thói quen xấu, mặc định nghĩ quy tắc của mã mà đoán.
 
...
Cứ làm kiểu chủ topic đến lúc tra cứu vô tình "tưởng" anh mã là như thế này vì là quy tắc abc..blabla là sai hết, vô tình tạo thói quen xấu, mặc định nghĩ quy tắc của mã mà đoán.
Trên thực tế, rất hiếm hệ thống có khả năng lập mã theo tên. Hầu như hệ thống nào cũng bắt buộc người dùng trải qua huấn luyện, không nhiều thì ít.
Ít thì cũng phải rõ nguyên tắc và quá trình mã hóa.
Nhiều thì phải học qua các cách phát âm để đoán mã. Ví dụ điển hình là ký tự Y, anh Nguyễn Văn Y cũng có khi được người ta mã thành NVI
(Hồi xưa tôi có học chung với anh bạn tên Giương. Anh ta luôn luôn bị vấn đề lục sổ, vì người ta gần như luôn tự động lục tên anh trong vần D)

Chú: theo nguyên tắc CSDL LH, lập mã theo tên là sái chuẩn.
 
Trên thực tế, rất hiếm hệ thống có khả năng lập mã theo tên. Hầu như hệ thống nào cũng bắt buộc người dùng trải qua huấn luyện, không nhiều thì ít.
Ít thì cũng phải rõ nguyên tắc và quá trình mã hóa.
Nhiều thì phải học qua các cách phát âm để đoán mã. Ví dụ điển hình là ký tự Y, anh Nguyễn Văn Y cũng có khi được người ta mã thành NVI
(Hồi xưa tôi có học chung với anh bạn tên Giương. Anh ta luôn luôn bị vấn đề lục sổ, vì người ta gần như luôn tự động lục tên anh trong vần D)

Chú: theo nguyên tắc CSDL LH, lập mã theo tên là sái chuẩn.
"Lập mã theo tên là sai chuẩn" quá chuẩn, nhưng thực tế sai chuẩn lại khá phổ biến, vậy có cần lập chuẩn mới không? :)
 
"Lập mã theo tên là sai chuẩn" quá chuẩn, nhưng thực tế sai chuẩn lại khá phổ biến, vậy có cần lập chuẩn mới không? :)
Tôi không hề muốn nói đến từ "chuẩn" trong "chuẩn xác", và lại càng không muốn đề cập đến "chuẩn" trong "tiêu chuẩn"
Cái tôi nói là CSDL Liên Hệ (Relational Database). Từ "chuẩn" được dịch từ một trạng thái mà tiếng chuyên môn gọi là "normalise/ize"
Trong CSDL LH, một trường (cột) được lập ra từ trị của một trường khác thì là không đạt chuẩn bậc 2 (2nd normal form). CSDL LH lý tưởng thường nhắm đến bậc 3 (gú gồ từ khoá "3rd normal form). Tôi dùng từ "sái" để nói là không đạt chuẩn chứ tôi không nói là "sai".
 
Tôi không hề muốn nói đến từ "chuẩn" trong "chuẩn xác", và lại càng không muốn đề cập đến "chuẩn" trong "tiêu chuẩn"
Cái tôi nói là CSDL Liên Hệ (Relational Database). Từ "chuẩn" được dịch từ một trạng thái mà tiếng chuyên môn gọi là "normalise/ize"
Trong CSDL LH, một trường (cột) được lập ra từ trị của một trường khác thì là không đạt chuẩn bậc 2 (2nd normal form). CSDL LH lý tưởng thường nhắm đến bậc 3 (gú gồ từ khoá "3rd normal form). Tôi dùng từ "sái" để nói là không đạt chuẩn chứ tôi không nói là "sai".
Từ "sái" ít dùng nên tưởng bạn gõ nhầm, mình nghỉ "sái", "sai", "trật" có nghĩa tương tự nhau, "sái khớp" "trật khớp" cùng nghĩa, có thể từ "sai" được đọc trại từ "sái" trước đây
 
Từ "sái" ít dùng nên tưởng bạn gõ nhầm, mình nghỉ "sái", "sai", "trật" có nghĩa tương tự nhau, "sái khớp" "trật khớp" cùng nghĩa, có thể từ "sai" được đọc trại từ "sái" trước đây
Sái với sai là 1 chữ. Tôi chỉ cố tình dùng ở đây để ghép chặt nó vào từ chuẩn. Tức là muốn nói "chuẩn lệch", phân biệt với "sai với chuẩn".
Đúng ra thì toi phải nói "ngoại chuẩn" hoặc "phản chuẩn".
Ngay cả từ normalise/ize tiếng Anh dịch ra tiếng Việt thành chuẩn hóa nghe cũng không thuận lắm (tiếng Hán là chính quy hóa).
 
Web KT

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

Back
Top Bottom