Giúp code hoặc công thức xóa tất cả chừa chử A-Z, và số 0-9

Liên hệ QC

minhtuan55

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
23/3/16
Bài viết
705
Được thích
52
Chào cả nhà GPE. em cần công thức hoặc code lọc ra chử cái hoặc số như hinh mô tả bên dưới.

1584427809100.png
Xin chân thành cảm ơn !
 
Lần chỉnh sửa cuối:
Ợ. Sao bài lại cụt ngủn mỗi khúc cuối vậy ta.

Kiểu này khó hiểu lắm. Kiểu ăn cá mất đầu thấy ghê ghê. :(
 
Làm khách sạn mà sao dữ liệu kỳ thế bạn?
 
Dữ liệu bị virus chèn kí tự lạ vô rùi.
 
Bài kia là quan ra lệnh chứ nhờ giúp gì đâu mà théc méc.

Vậy mà cũng có người làm. :(
 
Dữ liệu bị virus chèn kí tự lạ vô rùi.
không phải. do mình tạo 1 Textbox nhằm yêu cầu người dùng nhập Tên hoặc Số điện thoại. Nên khi họ ấn nhầm hay cố tình mình đều lọc được
Bài đã được tự động gộp:

Dữ liệu xuất ra từ phần mềm Xê cọng cọng. Thớt có từng nói là trình độ dân GPE không hiểu nổi đâu.
không phải. do mình tạo 1 Textbox nhằm yêu cầu người dùng nhập Tên hoặc Số điện thoại. Nên khi họ ấn nhầm hay cố tình mình đều lọc được
Bài đã được tự động gộp:

Bài kia là quan ra lệnh chứ nhờ giúp gì đâu mà théc méc.

Vậy mà cũng có người làm. :(
không phải. do mình tạo 1 Textbox nhằm yêu cầu người dùng nhập Tên hoặc Số điện thoại. Nên khi họ ấn nhầm hay cố tình mình đều lọc được
Bài đã được tự động gộp:

Làm khách sạn mà sao dữ liệu kỳ thế bạn?
không phải. do mình tạo 1 Textbox nhằm yêu cầu người dùng nhập Tên hoặc Số điện thoại. Nên khi họ ấn nhầm hay cố tình mình đều lọc được
Bài đã được tự động gộp:

Ợ. Sao bài lại cụt ngủn mỗi khúc cuối vậy ta.

Kiểu này khó hiểu lắm. Kiểu ăn cá mất đầu thấy ghê ghê. :(
không phải. do mình tạo 1 Textbox nhằm yêu cầu người dùng nhập Tên hoặc Số điện thoại. Nên khi họ ấn nhầm hay cố tình mình đều lọc được
Bài đã được tự động gộp:

Dữ liệu xuất ra từ phần mềm Xê cọng cọng. Thớt có từng nói là trình độ dân GPE không hiểu nổi đâu.
Bác tranh thủ giúp e nha. e nhiều việc lắm .giờ bận rồi chào bác. Nhớ là 2 tiếng nữa có đáp án nha. Thank
 
Lọc được mốc xì. Theo bài #1 thì là [A-Z0-9]. Tức là Roman Latin uppercase.
Roman Latin lowercase, và Unicode đi đời hết.

Điệu nàyn tối thiểu phải 3 tiếng 4 lời.
 
Lọc được mốc xì. Theo bài #1 thì là [A-Z0-9]. Tức là Roman Latin uppercase.
Roman Latin lowercase, và Unicode đi đời hết.

Điệu nàyn tối thiểu phải 3 tiếng 4 lời.
Áp dụng chút C++ vào nhá hàng tí
Mã:
Function cleanString(text As String) As String
    Dim output As String
    Dim c
    For i = 1 To Len(text)
        c = Mid(text, i, 1)
        If (c >= "a" And c <= "z") Or (c >= "0" And c <= "9") Or (c >= "A" And c <= "Z") Then
            output = output & c
        Else
            output = output & " "
        End If
    Next
    cleanString = Replace(output, " ", "")
End Function
 
Áp dụng chút C++ vào nhá hàng tí
Mã:
Function cleanString(text As String) As String
    Dim output As String
    Dim c
    For i = 1 To Len(text)
        c = Mid(text, i, 1)
        If (c >= "a" And c <= "z") Or (c >= "0" And c <= "9") Or (c >= "A" And c <= "Z") Then
            output = output & c
        Else
            output = output & " "
        End If
    Next
    cleanString = Replace(output, " ", "")
End Function
Dân C++ mà vết code như vầy thì ấu trĩ quá.
Nhắc khéo: bên C++ cái class String có cả đống hàm nhưng cái nào dùng String Buffer mới đúng cách xài.
 
Áp dụng chút C++ vào nhá hàng tí
Mã:
Function cleanString(text As String) As String
    Dim output As String
    Dim c
    For i = 1 To Len(text)
        c = Mid(text, i, 1)
        If (c >= "a" And c <= "z") Or (c >= "0" And c <= "9") Or (c >= "A" And c <= "Z") Then
            output = output & c
        Else
            output = output & " "
        End If
    Next
    cleanString = Replace(output, " ", "")
End Function
ELSE để làm gì? Để REPLACE có công ăn việc làm?
 
ELSE để làm gì? Để REPLACE có công ăn việc làm?
Code cóp từ giải thuật:
Cứ ký tự không muốn giữ thì đổi nó thành một ký hiệu nhất định. Sau đó dùng một hàm quét luôn một lượt.
Nhưng người cóp giải thuật không biết là code này chỉ dùng khi chuỗi đầu vào và đầu ra dùng chung buffer (vị trí bộ nhớ).

Trinh dạy UDS200/tiết nó vậy đó.
 
NumChar()
480
491
502
513
524
535
546
557
568
579
58​
:
59​
;
60​
<
61​
=
62​
>
63​
?
64​
@
65​
A
66​
B
67​
C
68​
D
69​
E
70​
F
71​
G
72​
H
73​
I
74​
J
75​
K
76​
L
77​
M
78​
N
79​
O
80​
P
81​
Q
82​
R
83​
S
84​
T
85​
U
86​
V
87​
W
88​
X
89​
Y
90​
Z
 
NumChar()
480
491
502
513
524
535
546
557
568
579
58​
:
59​
;
60​
<
61​
=
62​
>
63​
?
64​
@
65​
A
66​
B
67​
C
68​
D
69​
E
70​
F
71​
G
72​
H
73​
I
74​
J
75​
K
76​
L
77​
M
78​
N
79​
O
80​
P
81​
Q
82​
R
83​
S
84​
T
85​
U
86​
V
87​
W
88​
X
89​
Y
90​
Z
Chưa hiểu bác gửi các bảng đó dùng để làm gì . bác có thể viết code được không ?
 
Code C nó như vầy (hy vọng nếu thiên hạ học C thì mình đòi USD50/tiết. 1/4 C++ đủ xài rồi)

// code loại các ký tự ngoài "A-Za-z0-9" trong string s
char *spNu = s, *spOl = s-1; // con trỏ duyệt chuỗi
while (*++spOl) // nếu 0 là hết chuỗi
if ( *spOl >= '0' && *spOl <= '9' || *spOl | 32 >= 'a' && *spOl | 32 <= 'z') *spNu++ = *spOl;
*spNu = '\0'; // kết chuỗi mới
// Chú thích: trong mã ASCII, ký tự hoa và thường khác nhau chỉ một bit 32. Đem mẫu tự "A-Z" Or với 32 tức là LowerCase chúng.

Code VBA không được gọn nhẹ như vậy vì:
1. VBA không có con trỏ (*) và biến ký tự (char)
2. VBA không có toán tử tăng/giảm (++ và --)
Tuy nhiên, vì không dùng biến ký tự cho nên VBA có thể đối diện thẳng với Unicode. Nếu gặp Unicode thì C (tiêu chuẩn C11) phải dùng thư viện uchar.h

' code loại các ký tự ngoài "A-Za-z0-9" trong string s
Dim i1 As Integer, i2 As Integer
Dim c As String
For i1 = 1 To Len(s)
c = Mid(s, i1, 1)
If c >= "0" And c <= "9" Or LCase(c) >= "a" And LCase(c) <= "z" Then
i2 = i2 + 1
Mid(s, i2, 1) = c
End If
Next i1
s = Left(s, i2)
 
Lần chỉnh sửa cuối:
Code C nó như vầy (hy vọng nếu thiên hạ học C thì mình đòi USD50/tiết. 1/4 C++ đủ xài rồi)

// code loại các ký tự ngoài "A-Za-z0-9" trong string s
char *spNu = s, *spOl = s-1; // con trỏ duyệt chuỗi
while (*++spOl) // nếu 0 là hết chuỗi
if ( *spOl >= '0' && *spOl <= '9' || *spOl | 32 >= 'a' && *spOl | 32 <= 'z') *spNu++ = *spOl;
*spNu = '\0'; // kết chuỗi mới
// Chú thích: trong mã ASCII, ký tự hoa và thường khác nhau chỉ một bit 32. Đem mẫu tự "A-Z" Or với 32 tức là LowerCase chúng.

Code VBA không được gọn nhẹ như vậy vì:
1. VBA không có con trỏ (*) và biến ký tự (char)
2. VBA không có toán tử tăng/giảm (++ và --)
Tuy nhiên, vì không dùng biến ký tự cho nên VBA có thể đối diện thẳng với Unicode. Nếu gặp Unicode thì C (tiêu chuẩn C11) phải dùng thư viện uchar.h

' code loại các ký tự ngoài "A-Za-z0-9" trong string s
Dim i1 As Integer, i2 As Integer
Dim c As String
For i1 = 1 To Len(s)
c = Mid(s, i1, 1)
If c >= "0" And c <= "9" Or LCase(c) >= "a" And LCase(c) <= "z" Then
i2 = i2 + 1
Mid(s, i2, 1) = c
End If
Next i1
s = Left(s, i2)

Đã test code không chạy đúng yêu cầu. cần xem lại thuật toán C++
 
Đã test code không chạy đúng yêu cầu. cần xem lại thuật toán C++
Test trên nền nào? trình dịch nào? cái hàm gói code nó trả về cái gì?
Có biết C và C++ khác nhau ra sao không? Dân chỉ biết dùng ba cái class cung cấp sẵn từ phụ kiện mà đòi phê code C. Dóc tổ.
 
Test trên nền nào? trình dịch nào? cái hàm gói code nó trả về cái gì?
Có biết C và C++ khác nhau ra sao không? Dân chỉ biết dùng ba cái class cung cấp sẵn từ phụ kiện mà đòi phê code C. Dóc tổ.
TEST TRÊN C ++. KẾT QUẢ TRẬT LẤT
 

File đính kèm

  • adidaphat.xlsm
    14.8 KB · Đọc: 11
Code C nó như vầy (hy vọng nếu thiên hạ học C thì mình đòi USD50/tiết. 1/4 C++ đủ xài rồi)

// code loại các ký tự ngoài "A-Za-z0-9" trong string s
char *spNu = s, *spOl = s-1; // con trỏ duyệt chuỗi
while (*++spOl) // nếu 0 là hết chuỗi
if ( *spOl >= '0' && *spOl <= '9' || *spOl | 32 >= 'a' && *spOl | 32 <= 'z') *spNu++ = *spOl;
*spNu = '\0'; // kết chuỗi mới
// Chú thích: trong mã ASCII, ký tự hoa và thường khác nhau chỉ một bit 32. Đem mẫu tự "A-Z" Or với 32 tức là LowerCase chúng.

Lệnh *spNu = s là gắn trỏ vào địa chỉ kí tự đầu tiên của chuỗi s
Lệnh *spOl = s-1 tức là gắn trỏ vào địa chỉ bộ nhớ trước chuỗi s 1 ô
Tại sao biến con trỏ lúc thì có thể so sánh với 0 (*++spOl > 0), lúc lại có thể so sánh với kí tự (*spOl >= '0')
Tất cả những câu trên đều là câu hỏi, em không biết gì về C cả, nếu vui lòng anh có thể nói qua 1 chút được không ?
và học phí mấy câu trên là nhiêu đô hoa kỳ vậy anh ?
 
Web KT
Back
Top Bottom