2013-08-09 39 views
6

Tôi đang sử dụng Notepad ++ để chỉnh sửa một tập tin văn bản đã được mã hóa kém log. Chương trình không tính đến bố cục bàn phím AZERTY của người dùng. Kết quả là một file văn bản như sau (ví dụ tôi tạo thành)thay thế hàng loạt các chuỗi trong tập tin văn bản duy nhất (Notepad ++)

Hi guysm this is Qqron< 
I zonder zhen ze cqn go to the szi;;ing pool together 
:y phone nu;ber is !%%)@!#@@#(
Cqll ;e/ 

tôi cần phải thực hiện thay thế phần lớn các nhân vật như sau

a > q 

q > a 

[/0] > 0 

! > 1 

và một vài người khác

Có thể tạo ra một bảng các ký tự được thay thế? Tôi là một chút của một người mới bắt đầu và tôi không biết liệu Notepad ++ cho phép chạy script

Trả lời

0

Tôi không biết về Notepad ++. Nhưng nếu bạn có python được cài đặt trong máy của bạn, bạn có thể bạn kịch bản này ít.

source = """Hi guysm this is Qqron<           
I zonder zhen ze cqn go to the szi;;ing pool together       
:y phone nu;ber is !%%)@!#@@#(            
Cqll ;e/"""                 

replace_dict = {'a': 'q', 'q': 'a', '[/0]': '0', '!': '1'}      

target = ''                 
for char in source:               
    target_char = replace_dict.get(char)          
    if target_char:               
     target += target_char             
    else:                  
     target += char               

print target 

Chỉ cần tùy chỉnh biến replace_dict cho phù hợp với nhu cầu của bạn.

0

Vì vậy, có khá một vài loại khác nhau của bố trí AZERTY, vì vậy đây không phải là một câu trả lời hoàn chỉnh. Tuy nhiên, nó không vượt qua kiểm tra trường hợp của bạn, và làm nó càng nhanh càng tốt bất kỳ thay thế nhân vật duy nhất có thể được thực hiện trong python (trừ khi bạn cần phải thực hiện unicode vào tài khoản cũng)

from string import maketrans 

test = '''Hi guysm this is Qqron< 
I zonder zhen ze cqn go to the szi;;ing pool together 
:y phone nu;ber is !%%)@!#@@#(
Cqll ;e/''' 

# warning: not a full table. 
table = maketrans('aqAQzwZW;:[email protected]#$%^&*()m/<', 'qaQAwzWZmM1234567890:?.') 

test.translate(table) 

Vì vậy, miễn là bạn tìm thấy phiên bản AZERTY mà người dùng của bạn đang sử dụng, bạn sẽ không sao. Chỉ cần đảm bảo điền đúng bảng dịch với các chi tiết về việc triển khai AZERTY.

+0

Và bạn có thể chạy tập lệnh bằng http://npppythonscript.sourceforge.net/ – Spork

1

Notepad ++ có một máy ghi vĩ mô, nhưng macro không thể được viết bằng bất kỳ ngôn ngữ nhúng tài liệu. Bạn có khả năng có thể ghi lại một vĩ mô mà 70 hoặc hơn để tìm kiếm và thay thế các hoạt động. Xem this explanation. Có một số thông tin về "hack" ngôn ngữ macro here.

Rõ ràng Notepad ++ được không có nghĩa là cho nhiệm vụ này. Các giải pháp Python là ổn, nhưng Perl đã có nghĩa là ban đầu cho các công cụ chính xác như thế này. Đây là một lớp lót. Đây là dành cho Windows. Trong bash/Linux, thay thế dấu nháy kép bằng dấu ngoặc đơn.

perl -n -e "tr/aqAQzwZW;:[email protected]#$%^&*()m\/</qaQAwzWZmM1234567890:?./;print" 

Nó sẽ làm những gì giải pháp @ kreativitea làm (tôi đã sử dụng chuỗi dịch của anh ấy), đọc đầu vào tiêu chuẩn và in ra đầu ra tiêu chuẩn.

Các vấn đề liên quan