Công thức xử lý chiều dài text (3 người xem)

Liên hệ QC

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

anhvan123

Thành viên mới
Tham gia
10/8/09
Bài viết
24
Được thích
3
Dear các anh chị,
hiện em có 1 file nhìn chiều dài ký tự có 6, mà len() tới 8
đã dùng đủ công thức như subsitute, trim, clean, char đủ kiểu mà vẫn ra 8
em up file lên các anh chị chỉ giúp
Thanks
220569
 

File đính kèm

Dear các anh chị,
hiện em có 1 file nhìn chiều dài ký tự có 6, mà len() tới 8
đã dùng đủ công thức như subsitute, trim, clean, char đủ kiểu mà vẫn ra 8
em up file lên các anh chị chỉ giúp
Cảm ơn
View attachment 220569
Bạn chuyển bảng mã như vậy thì thấy kết quả nó có 2 thằng ## ở đầu nhé
220572
##WPCF20
##SST320
##SST310
##SSCS10
##PWVW20
 
Cái này do phần mềm nào xuất ra phải không bạn ? Tôi cũng thấy lạ.
 
Nếu mã sản phẩm có 2 ký tự gì đó ở đầu thì cứ bỏ nó đi, dùng RIGHT hoặc MID lấy ký tự thứ 3 trở đi là được rồi.
 
Thử với đoạn code sau để xem cái chuỗi "quái dị" đó là gì. Lấy được VA address của chuỗi, mở WinHex, open process Excel, goto (Alt-G) tới địa chỉ đó.
À thì ra 2 ký tự dị dạng (4 byte) mà Excel không display ra được.
Các chuỗi khác cũng vậy. 0x202D là ký tự gì vậy nhỉ ?
 

File đính kèm

  • 1.png
    1.png
    29.2 KB · Đọc: 22
  • 2.png
    2.png
    136.1 KB · Đọc: 24
  • 3.png
    3.png
    22.7 KB · Đọc: 15
Mấy cái text này chắc chắn là từ phần mềm nào đó xuất ra luôn, và phần mềm đó bị lỗi.
Chuỗi Unicode đúng phải là "- , WPCF20", "- , SST320".... nhưng coder của phần mềm đó đã xuất chuỗi "- , " thành Ansi.
Bạn chủ thớt có thể dùng tạm công thức: =MID(C3, 3, LEN(C3)) để remove 2 ký tự dị dạng ở đầu đi.
 
Lần chỉnh sửa cuối:
Trong memory chuỗi bắt đầu từ địa chỉ StrPtr(str). Ở vùng memory này Excel "lưu trữ" String ở dạng Unicode. Mà nhìn cửa sổ WinHex cũng thấy rõ. "W" được ghi với 2 bai 0057. Tương tự P, C, F, ... Do vậy 4 bai kia là của 2 ký tự với điểm mã là 202D, 202C (vì là ký tự unicode). WinHex hiển thị bên cạnh là "- , " vì nó "dịch" ra ANSI - mỗi bai là 1 ký tự. Vì thế nó "dịch" 4 bai 2D, 20, 2C, 20 thành "-", dấu cách, ",", dấu cách. Nhưng vùng này chỉ có unicode thôi nên 4 bai kia là 2 điểm mã 202D và 202C.
Trong bảng mã unicode thì 202D và 202C là LEFT-TO-RIGHT OVERRIDE và LEFT-TO-RIGHT OVERRIDE. Chúng đều là các ký tự điều khiển không nhìn thấy được (các ký tự 0A, 0D cũng không nhìn thấy được). Chỉ lạ là từ đâu chủ chủ đề có chúng trong dữ liệu của mình.
 
Web KT

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

Back
Top Bottom