Nhờ sửa lại code mở file txt và sửa dữ liệu (1 người xem)

Liên hệ QC

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

tuanhuycntt

Thành viên chính thức
Tham gia
5/7/15
Bài viết
65
Được thích
5
Hiện em cần xây dựng 1 code mở file txt và sửa giá trị đã thiết lập trên đó.
Code hiện tại của e là lấy dữ liệu trong file client_config.ini và gán vào ô B1

Mục đích của e là muốn lấy giá trị trong file client_config.ini và sửa bằng giá trị đã gán ở 1 biến. (không cần phải gán vào ô B1 nữa.

Vd:
date = 2018-3-6
đổi thành
date = 0
hoặc date = 2017-10-30

PHP:
Sub readFileExample2()
    Dim fileName As String
    Dim Text As String
    Dim textRow As String
    Dim posX As Integer, StartX As Integer
    Dim LenX As Integer
    Dim X As Integer
    
    fileName = Application.ActiveWorkbook.Path & "\" & "client_config.ini"
        
    ' open file
    Open fileName For Input As #1
    ' read line by line
    Do While Not EOF(1)
       Line Input #1, textRow
       Text = Text & textRow & vbCrLf
    Loop
    ' close file
    Close #1
    
    LenX = Len("date")
    
    StartX = LenX + Len(" = ")

    posX = InStr(Text, "date")
    
    Range("E1").Value = Mid(Text, posX + StartX, 1)
End Sub

Và bác nào hiểu được đoạn code ở bên dưới ntn giải thích cho e với ạ. E chưa hiểu rõ đoạn đó nó chạy như thế nào

PHP:
   Do While Not EOF(1)
       Line Input #1, textRow
       Text = Text & textRow & vbCrLf
[PHP]
 

File đính kèm

Hiện em cần xây dựng 1 code mở file txt và sửa giá trị đã thiết lập trên đó.
Code hiện tại của e là lấy dữ liệu trong file client_config.ini và gán vào ô B1

Mục đích của e là muốn lấy giá trị trong file client_config.ini và sửa bằng giá trị đã gán ở 1 biến. (không cần phải gán vào ô B1 nữa.

Vd:
date = 2018-3-6
đổi thành
date = 0
hoặc date = 2017-10-30

PHP:
Sub readFileExample2()
    Dim fileName As String
    Dim Text As String
    Dim textRow As String
    Dim posX As Integer, StartX As Integer
    Dim LenX As Integer
    Dim X As Integer
   
    fileName = Application.ActiveWorkbook.Path & "\" & "client_config.ini"
       
    ' open file
    Open fileName For Input As #1
    ' read line by line
    Do While Not EOF(1)
       Line Input #1, textRow
       Text = Text & textRow & vbCrLf
    Loop
    ' close file
    Close #1
   
    LenX = Len("date")
   
    StartX = LenX + Len(" = ")

    posX = InStr(Text, "date")
   
    Range("E1").Value = Mid(Text, posX + StartX, 1)
End Sub

Và bác nào hiểu được đoạn code ở bên dưới ntn giải thích cho e với ạ. E chưa hiểu rõ đoạn đó nó chạy như thế nào

PHP:
   Do While Not EOF(1)
       Line Input #1, textRow
       Text = Text & textRow & vbCrLf
[PHP]
Chạy code của bạn chẳng ra kết quả nào cả. Thôi thì bạn cứ nói luôn là bạn muốn lấy (hoặc sửa) chỗ nào trong file ini
 
Upvote 0
Chạy code của bạn chẳng ra kết quả nào cả. Thôi thì bạn cứ nói luôn là bạn muốn lấy (hoặc sửa) chỗ nào trong file ini
Vấn đề nằm tại chỗ khai báo biến, kết quả trả về chỉ có 1 kí tự thì thỏa điều kiện chỉ là dấu nháy đơn mà thôi

upload_2018-3-12_14-47-28.png
 
Upvote 0
Mục đích của e là muốn lấy giá trị trong file client_config.ini và sửa bằng giá trị đã gán ở 1 biến. (không cần phải gán vào ô B1 nữa.

Vd:
date = 2018-3-6
đổi thành
date = 0
hoặc date = 2017-10-30
Thử sửa code của bạn thành code sau nhé.
Mã:
Sub readFileExample2()
    Dim fileName As String
    Dim Text As String
    Dim textRow As String
    fileName = Application.ActiveWorkbook.Path & "\" & "client_config.ini"
    Open fileName For Input As #1
    Do While Not EOF(1)
       Line Input #1, textRow
       Text = Text & textRow & vbCrLf
    Loop
    Close #1
    Text = Replace(Text, "2018-3-6", "2017-10-30")
    Open fileName For Output As #1
    Print #1, Text
    Close #1
End Sub
 
Upvote 0
Thử sửa code của bạn thành code sau nhé.
Mã:
Sub readFileExample2()
    Dim fileName As String
    Dim Text As String
    Dim textRow As String
    fileName = Application.ActiveWorkbook.Path & "\" & "client_config.ini"
    Open fileName For Input As #1
    Do While Not EOF(1)
       Line Input #1, textRow
       Text = Text & textRow & vbCrLf
    Loop
    Close #1
    Text = Replace(Text, "2018-3-6", "2017-10-30")
    Open fileName For Output As #1
    Print #1, Text
    Close #1
End Sub
Cho em hỏi chút với giá trị được thay đổi liên tục. Làm nên làm sao để xác định được Text cần thay đổi ạ.

Vd như khi thay “date = 2018-3-6” thành “date = 0” thì hàm replace sẽ lại sửa cả text sau dấu #

Em tìm hiểu trên mạng thấy có mỗi cách thêm thư viện mới, thêm đối tượng “ADODB.stream”. Liệu có cách nào thay thế phương pháp đó không ạ.
E đếm theo số dòng ký tự xuất đc đúng vị trí cần sửa nhưng để lưu lại text mới thay thế vào thì không được
 
Upvote 0
Web KT

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

Back
Top Bottom