Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
Bee

Remove string tiếng Nhật

Các bài được khuyến nghị

Mình có file tiếng Nhật lẫn với Tiếng anh, giờ muốn remove phần tiếng nhật. Ai có code phần này share mình với or chỉ cách remove nhanh hàng loạt file nhé.

 

Thanks.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
15 phút trước, dinhvantrang đã nói:

Ý bác là giống như Rename file thôi đó uh?

Yep, nhưng do có tên khác nhau độ dài khác nhau và ko biết đọc tiếng nhật nên remove nó đi là đẹp, ^_^

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cái "_" thì có trong tên. Vấn đề là làm thế nào read and write cái unicode cho tên file để rename vậy bạn ?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
16 giờ trước, Bee đã nói:

File thì cũng không có gì.! ^_^

 

20180220_APARTMENT TYPE 1_アパート1_Block A.dwg

Nghĩa là: 

20180220_APARTMENT TYPE 1_アパート1_Block A.dwg

-> 20180220_APARTMENT TYPE 1Block A.dwg

or

APARTMENT アパート.dwg

-> APARTMENT.dwg

or

20180220_APARTMENT 数量.dwg

-> 20180220_APARTMENT.dwg

 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Hi Gia_bach,

 

Nghĩa là: 

20180220_APARTMENT TYPE 1_アパート1_Block A.dwg

-> 20180220_APARTMENT TYPE 1_Block A.dwg

-> date_name E1_name E2.dwg

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạm thế này rồi có thể dựa vào đó nghiên cứu tiếp:

(vl-list->string (vl-remove 63 (vl-string->list (car (vl-directory-files "C:\\TEMP" "*.dwg" 1)))))

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
1 giờ trước, Bee đã nói:

Hi Gia_bach,

 

Nghĩa là: 

20180220_APARTMENT TYPE 1_アパート1_Block A.dwg

-> 20180220_APARTMENT TYPE 1_Block A.dwg

-> date_name E1_name E2.dwg

okie bạn, để mình code thử

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
3 giờ trước, quocmanh04tt đã nói:

Tạm thế này rồi có thể dựa vào đó nghiên cứu tiếp:

(vl-list->string (vl-remove 63 (vl-string->list (car (vl-directory-files "C:\\TEMP" "*.dwg" 1)))))

Quả này em thử roài.! Nhưng mà lúc rename ko được: 

("20180220_APARTMENT TYPE 1_????1_Block A.dwg")

 

????? thế sao rename được. ^_^

 

 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Gửi mr Bee kiểm tra thử nhé.Mình viết bằng vbscripting

Cách chạy:

Giải  nén và bỏ file giải nén đó vào trong Folder chứa các file cần Rename >>Run.

MrBee.rar

  • Like 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Thử chạy bằng LISP coi sao!

((lambda (/ name new_filename)
   (defun new_filename  (filename / LM:str->lst lst)
     (defun LM:str->lst  (str del / pos)
       (if (setq pos (vl-string-search del str))
         (cons (substr str 1 pos) (LM:str->lst (substr str (+ pos 1 (strlen del))) del))
         (list str)))
     (setq lst (vl-remove-if '(lambda (x) (vl-string-search (chr 63) x))
                             (LM:str->lst filename (chr 95))))
     (strcat (car lst) (apply 'strcat (mapcar '(lambda (x) (strcat (chr 95) x)) (cdr lst)))))
   (vlax-for f  (vlax-get (vlax-invoke-method
                            (vlax-create-object "Scripting.FilesystemObject")
                            'GetFolder
                            "D:\\TEMP")
                          'Files)
     (if (and (vl-string-search (chr 63) (setq name (vlax-get f 'name)))
              (eq (strcase (vl-filename-extension name)) ".DWG"))
       (vlax-put f 'name (new_filename name))))))

P/s:

+ Nếu thêm Browse Folder thì "Pờ - rồ" hơn, nhằm thay thế  "D:\\TEMP".

+ Chưa bắt, bẫy lỗi trùng tên file sau khi rename...

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
32 phút trước, quocmanh04tt đã nói:

Thử chạy bằng LISP coi sao!

((lambda (/ name new_filename)
   (defun new_filename  (filename / LM:str->lst lst)
     (defun LM:str->lst  (str del / pos)
       (if (setq pos (vl-string-search del str))
         (cons (substr str 1 pos) (LM:str->lst (substr str (+ pos 1 (strlen del))) del))
         (list str)))
     (setq lst (vl-remove-if '(lambda (x) (vl-string-search (chr 63) x))
                             (LM:str->lst filename (chr 95))))
     (strcat (car lst) (apply 'strcat (mapcar '(lambda (x) (strcat (chr 95) x)) (cdr lst)))))
   (vlax-for f  (vlax-get (vlax-invoke-method
                            (vlax-create-object "Scripting.FilesystemObject")
                            'GetFolder
                            "D:\\TEMP")
                          'Files)
     (if (and (vl-string-search (chr 63) (setq name (vlax-get f 'name)))
              (eq (strcase (vl-filename-extension name)) ".DWG"))
       (vlax-put f 'name (new_filename name))))))

P/s:

+ Nếu thêm Browse Folder thì "Pờ - rồ" hơn, nhằm thay thế  "D:\\TEMP".

+ Chưa bắt, bẫy lỗi trùng tên file sau khi rename...

Ok thanks Mr quocmanh. Để em chạy thử.

Browse Folder thì dùng thằng này cũng nhanh gọn: (acet-ui-pickdir "Select Directory")) 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
19 giờ trước, dinhvantrang đã nói:

Gửi mr Bee kiểm tra thử nhé.Mình viết bằng vbscripting

Cách chạy:

Giải  nén và bỏ file giải nén đó vào trong Folder chứa các file cần Rename >>Run.

MrBee.rar

Mr Trang cho hỏi mở rộng hơn tí. ^_^

 

Trường hợp mà ko có "_" mà chỉ space (thường có trong các file có tiếng việt) thì code VBS thế nào ?

 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
17 phút trước, Bee đã nói:

Mr Trang cho hỏi mở rộng hơn tí. ^_^

 

Trường hợp mà ko có "_" mà chỉ space (thường có trong các file có tiếng việt) thì code VBS thế nào ?

 

 

Hi Bee. bạn mở bằng Notepad và thay thế cái như hình dưới nhé.

Chú ý: Do các file của bạn mình đoán là cái chữ Tiếng Nhật nó nằm ở Vị trí Thứ 3 (tương ứng với IntCount = 2), còn nếu nằm sai vị trí thì e rằng nó chạy không đúng.

 

 

image.thumb.png.1bac617fa6dac8226867389ccfc35934.png

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
7 phút trước, dinhvantrang đã nói:

 

Hi Bee. bạn mở bằng Notepad và thay thế cái như hình dưới nhé.

Chú ý: Do các file của bạn mình đoán là cái chữ Tiếng Nhật nó nằm ở Vị trí Thứ 3 (tương ứng với IntCount = 2), còn nếu nằm sai vị trí thì e rằng nó chạy không đúng.

 

 

image.thumb.png.1bac617fa6dac8226867389ccfc35934.png

Hì Ok. Thế trường hợp thay file thành Folder thì thế nào vậy Mr Trang.?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Vừa xong, Bee đã nói:

Hì Ok. Thế trường hợp thay file thành Folder thì thế nào vậy Mr Trang.?

 

ý bạn là Rename Folder uh?

Nếu thế thì sẽ thế này:

Dim fso
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
Dim objFolder,objSubFolder
Dim strFolderPath
strFolderPath  = Left(WScript.ScriptFullName,Len(WScript.ScriptFullName)-Len(WScript.ScriptName))

Set objFolder =fso.GetFolder(strFolderPath)
Dim strNewName
Dim varList,intCount
If objFolder.SubFolders.Count>0 Then
	For Each objSubFolder In objFolder.SubFolders
		strNewName=vbNullString
		
			strOldName = objSubFolder.Name
			
			varList= Split(strOldName,"_")
			
			For intCount= 0 To UBound(varList)
				
				If strNewName=vbNullString Then
					strNewName = varList(intCount)
				Else
					If intCount <> 2 Then
						strNewName = strNewName & "_" & varList(intCount)
					End If
				End If
				
			Next
			
			objSubFolder.Name = strNewName
	
	Next
	
	MsgBox "Done",vbInformation,"TrangMeo_0986370918"
End If

 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
14 phút trước, dinhvantrang đã nói:

 

ý bạn là Rename Folder uh?

Nếu thế thì sẽ thế này:


Dim fso
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
Dim objFolder,objSubFolder
Dim strFolderPath
strFolderPath  = Left(WScript.ScriptFullName,Len(WScript.ScriptFullName)-Len(WScript.ScriptName))

Set objFolder =fso.GetFolder(strFolderPath)
Dim strNewName
Dim varList,intCount
If objFolder.SubFolders.Count>0 Then
	For Each objSubFolder In objFolder.SubFolders
		strNewName=vbNullString
		
			strOldName = objSubFolder.Name
			
			varList= Split(strOldName,"_")
			
			For intCount= 0 To UBound(varList)
				
				If strNewName=vbNullString Then
					strNewName = varList(intCount)
				Else
					If intCount <> 2 Then
						strNewName = strNewName & "_" & varList(intCount)
					End If
				End If
				
			Next
			
			objSubFolder.Name = strNewName
	
	Next
	
	MsgBox "Done",vbInformation,"TrangMeo_0986370918"
End If

 

OK bạn.

Có funtion nào check in ParentFolder mà các SubFolder trong SubFolder không bạn.? Nghĩa là không cần biết folder trong folder mà cứ check all hết trong đó cả file và folder có thì nó xử lý hết, Chỉ cần browse folder ngoài cũng thôi.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
10 phút trước, Bee đã nói:

OK bạn.

Có funtion nào check in ParentFolder mà các SubFolder trong SubFolder không bạn.? Nghĩa là không cần biết folder trong folder mà cứ check all hết trong đó cả file và folder có thì nó xử lý hết, Chỉ cần browse folder ngoài cũng thôi.

 

Chắc được. :D

  • Like 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Thử cái này nhé (y/cầu NetFramework 3.5).

- hiển thị các file có kí tự tàu, nhật, hàn (ảrập ...) trong folder đã chọn.

- click Remove : copy các file có kí tự lạ ở bước trên và đổi thành tên mới (sau khi đã remove các kí tự lạ đó, file gốc giữ nguyên)

5ab9fe535aeda_RemoveCJK.png.c403505b9af3d6fa5fb0c9f7ae1e4ec4.png

RemoveJapanese.zip

  • Like 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
5 giờ trước, gia_bach đã nói:

Thử cái này nhé (y/cầu NetFramework 3.5).

- hiển thị các file có kí tự tàu, nhật, hàn (ảrập ...) trong folder đã chọn.

- click Remove : copy các file có kí tự lạ ở bước trên và đổi thành tên mới (sau khi đã remove các kí tự lạ đó, file gốc giữ nguyên)

5ab9fe535aeda_RemoveCJK.png.c403505b9af3d6fa5fb0c9f7ae1e4ec4.png

RemoveJapanese.zip

Ý tưởng tool này ngon quá, like bác gia_bạch đã ^_^

Phát triển hoàn thiện thêm thì thành tool sài các chức năng khác liên quan thì ngon quá.

 

Nhưng sao em chạy nó báokhông thấy cái folder name ở đâu nhỉ ? Bác đặt cái folder đấy ở đâu vậy :)

image.png.4bac49ea21e1e2b64cbc2854b136d534.png

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×