Cần thêm kí tự vào chuỗi ký tự trong ngoặc (file Text)

Liên hệ QC

hamy2016

Thành viên mới
Tham gia
12/12/16
Bài viết
18
Được thích
1
Chẳng là em có file .txt như ở phía dưới. Điều em muốn là những Chữ có trong ngoặc "", được thêm vào đầu và cuối kí tự mình muốn. (chỉ mình text có chữ china thôi ạ.)

VD: "普通攻击", => sau khi thêm kí tự sẽ thành: TI18N("普通攻击"),

Em rất mong các anh chị thương tình giúp em ạ. em loay hoay cả 2 tuần nay mà chưa tìm được giải pháp. Vì nếu Replace nó sẽ bị lỗi tùm lum dính cả dãy số vào luôn.
Em có đính kèm file phía dưới.

Rất mong anh chị giúp đỡ.

Bổ sung thêm kết quả cuối cùng mong muốn:

[542101] = [[{542101, TI18N("魔焰万刃杀"), TI18N("苏尔特"), 54210, 542102, 1, 0, 2, "active_skill", 0, "max_atk", 1, 1, {5421001,5421011}, {}, 0, TI18N("苏尔特以烈焰魔剑幻化万刃,绞杀敌方攻击力最高的3个单位,造成102%物理伤害,对目标附加1层【灼烧】效果;若目标生命值大于65%,则伤害提升20%"), TI18N("初始激活"), TI18N("升级条件:英雄到达<div fontcolor=45a536>6星</div>自动升级"), "24371", 0, 1, 1, {{21010}}, 0, 1, 0, 0}]],
 

File đính kèm

  • new 21.txt
    825.1 KB · Đọc: 15
Lần chỉnh sửa cuối:
Chẳng là em có file .txt như ở phía dưới. Điều em muốn là những Chữ có trong ngoặc "", được thêm vào đầu và cuối kí tự mình muốn. (chỉ mình text có chữ china thôi ạ.)

VD: "普通攻击", => sau khi thêm kí tự sẽ thành: TI18N("普通攻击"),

Em rất mong các anh chị thương tình giúp em ạ. em loay hoay cả 2 tuần nay mà chưa tìm được giải pháp. Vì nếu Replace nó sẽ bị lỗi tùm lum dính cả dãy số vào luôn.
Em có đính kèm file phía dưới.

Rất mong anh chị giúp đỡ.
Đây là dòng thứ 2:

[542101] = [[{542101, "魔焰万刃杀", "苏尔特", 54210, 542102, 1, 0, 2, "active_skill", 0, "max_atk", 1, 1, {5421001,5421011}, {}, 0, "苏尔特以烈焰魔剑幻化万刃,绞杀敌方攻击力最高的3个单位,造成102%物理伤害,对目标附加1层【灼烧】效果;若目标生命值大于65%,则伤害提升20%", "初始激活", "升级条件:英雄到达<div fontcolor=45a536>6星</div>自动升级", "24371", 0, 1, 1, {{21010}}, 0, 1, 0, 0}]],

Kết quả bạn mong muốn là gì?
 
Đăng một bài ở hai nơi là phạm quy:

View attachment 258940
E xl nếu đang sai. Mong mod bỏ qua
Bài đã được tự động gộp:

Đây là dòng thứ 2:

[542101] = [[{542101, "魔焰万刃杀", "苏尔特", 54210, 542102, 1, 0, 2, "active_skill", 0, "max_atk", 1, 1, {5421001,5421011}, {}, 0, "苏尔特以烈焰魔剑幻化万刃,绞杀敌方攻击力最高的3个单位,造成102%物理伤害,对目标附加1层【灼烧】效果;若目标生命值大于65%,则伤害提升20%", "初始激活", "升级条件:英雄到达<div fontcolor=45a536>6星</div>自动升级", "24371", 0, 1, 1, {{21010}}, 0, 1, 0, 0}]],

Kết quả bạn mong muốn là gì?
Đây là kết quả em mong muốn ạ:

[542101] = [[{542101, TI18N("魔焰万刃杀"), TI18N("苏尔特"), 54210, 542102, 1, 0, 2, "active_skill", 0, "max_atk", 1, 1, {5421001,5421011}, {}, 0, TI18N("苏尔特以烈焰魔剑幻化万刃,绞杀敌方攻击力最高的3个单位,造成102%物理伤害,对目标附加1层【灼烧】效果;若目标生命值大于65%,则伤害提升20%"), TI18N("初始激活"), TI18N("升级条件:英雄到达<div fontcolor=45a536>6星</div>自动升级"), "24371", 0, 1, 1, {{21010}}, 0, 1, 0, 0}]],
 
Chẳng là em có file .txt như ở phía dưới. Điều em muốn là những Chữ có trong ngoặc "", được thêm vào đầu và cuối kí tự mình muốn. (chỉ mình text có chữ china thôi ạ.)

VD: "普通攻击", => sau khi thêm kí tự sẽ thành: TI18N("普通攻击"),

Em rất mong các anh chị thương tình giúp em ạ. em loay hoay cả 2 tuần nay mà chưa tìm được giải pháp. Vì nếu Replace nó sẽ bị lỗi tùm lum dính cả dãy số vào luôn.
Em có đính kèm file phía dưới.

Rất mong anh chị giúp đỡ.
A/Chị phải nêu rõ mong muốn của chị. Như: "普通攻击", => sau khi thêm kí tự sẽ thành: TI18N("普通攻击"), vậy cụm TI18N lấy từ đâu ?
Và nếu được a/chị nêu cái nguồn dữ liệu mà chị có, có thể sẽ có cách giải quyết dễ hơn.
Tạm đoán dữ liệu này a/chị copy tay từ web xuống.
 
A/Chị phải nêu rõ mong muốn của chị. Như: "普通攻击", => sau khi thêm kí tự sẽ thành: TI18N("普通攻击"), vậy cụm TI18N lấy từ đâu ?
Và nếu được a/chị nêu cái nguồn dữ liệu mà chị có, có thể sẽ có cách giải quyết dễ hơn.
Tạm đoán dữ liệu này a/chị copy tay từ web xuống.
TI18N tự thêm ấy ạ. Em muốn kết quả cuối cùng sẽ là:

[542101] = [[{542101, TI18N("魔焰万刃杀"), TI18N("苏尔特"), 54210, 542102, 1, 0, 2, "active_skill", 0, "max_atk", 1, 1, {5421001,5421011}, {}, 0, TI18N("苏尔特以烈焰魔剑幻化万刃,绞杀敌方攻击力最高的3个单位,造成102%物理伤害,对目标附加1层【灼烧】效果;若目标生命值大于65%,则伤害提升20%"), TI18N("初始激活"), TI18N("升级条件:英雄到达<div fontcolor=45a536>6星</div>自动升级"), "24371", 0, 1, 1, {{21010}}, 0, 1, 0, 0}]],
 
Chẳng là em có file .txt như ở phía dưới. Điều em muốn là những Chữ có trong ngoặc "", được thêm vào đầu và cuối kí tự mình muốn. (chỉ mình text có chữ china thôi ạ.)

VD: "普通攻击", => sau khi thêm kí tự sẽ thành: TI18N("普通攻击"),

Em rất mong các anh chị thương tình giúp em ạ. em loay hoay cả 2 tuần nay mà chưa tìm được giải pháp. Vì nếu Replace nó sẽ bị lỗi tùm lum dính cả dãy số vào luôn.
Em có đính kèm file phía dưới.

Rất mong anh chị giúp đỡ.

Bổ sung thêm kết quả cuối cùng mong muốn:

[542101] = [[{542101, TI18N("魔焰万刃杀"), TI18N("苏尔特"), 54210, 542102, 1, 0, 2, "active_skill", 0, "max_atk", 1, 1, {5421001,5421011}, {}, 0, TI18N("苏尔特以烈焰魔剑幻化万刃,绞杀敌方攻击力最高的3个单位,造成102%物理伤害,对目标附加1层【灼烧】效果;若目标生命值大于65%,则伤害提升20%"), TI18N("初始激活"), TI18N("升级条件:英雄到达<div fontcolor=45a536>6星</div>自动升级"), "24371", 0, 1, 1, {{21010}}, 0, 1, 0, 0}]],


Kiểu này bạn nên dùng Regular Expression để xử lý, ví dụ như sau:
B1. Copy đoạn code dưới đây vào 1 file excel bất kỳ
B2 : Chay code , chọn file text và kiểm tra
Ở đây tôi test thêm ký tự XXX, và YYY
Mã:
Sub test()
    Dim fso As Object, txt As Object, str As String
    Dim regx As Object, oMatch
    Dim i
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set regx = CreateObject("VBscript.Regexp")
        With fso
           Set txt = .OpenTextFile(Application.GetOpenFilename("Text File (*.txt),*.txt", , , , False), ForReading)
           str = txt.ReadAll
           'phai bay loi truong hop getopenfilename = false
            With regx
                .Global = True: .IgnoreCase = False
                .Pattern = """([^\w]+)"""  ' CORE cua code
                If .test(str) Then
                   Set oMatch = .Execute(str)
                   For i = 0 To oMatch.Count - 1
                    Range("A1").Offset(i) = "XXXX" & oMatch.Item(0).SubMatches(0) & "YYYYYY"
                    ' Ghi du lieu vao text
                   Next
                End If
            End With
        End With
End Sub
 
@Thớt:
Dữ liệu của web game hả?

Dữ liệu list thế này xử lý bên Python hay hơn.
 
@Thớt:
Dữ liệu của web game hả?

Dữ liệu list thế này xử lý bên Python hay hơn.
Vâng . Anh có cách nào không ạ
Bài đã được tự động gộp:

Kiểu này bạn nên dùng Regular Expression để xử lý, ví dụ như sau:
B1. Copy đoạn code dưới đây vào 1 file excel bất kỳ
B2 : Chay code , chọn file text và kiểm tra
Ở đây tôi test thêm ký tự XXX, và YYY
Mã:
Sub test()
    Dim fso As Object, txt As Object, str As String
    Dim regx As Object, oMatch
    Dim i
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set regx = CreateObject("VBscript.Regexp")
        With fso
           Set txt = .OpenTextFile(Application.GetOpenFilename("Text File (*.txt),*.txt", , , , False), ForReading)
           str = txt.ReadAll
           'phai bay loi truong hop getopenfilename = false
            With regx
                .Global = True: .IgnoreCase = False
                .Pattern = """([^\w]+)"""  ' CORE cua code
                If .test(str) Then
                   Set oMatch = .Execute(str)
                   For i = 0 To oMatch.Count - 1
                    Range("A1").Offset(i) = "XXXX" & oMatch.Item(0).SubMatches(0) & "YYYYYY"
                    ' Ghi du lieu vao text
                   Next
                End If
            End With
        End With
End Sub
Nó bị lỗi dòng anh ạ. anh xem ảnh em gửi ạ.
 

File đính kèm

  • Capture1.PNG
    Capture1.PNG
    223.4 KB · Đọc: 13
  • Capture2.PNG
    Capture2.PNG
    195.7 KB · Đọc: 14
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom