Thưa mọi người em có bài toán cần tách giữ liệu từ trong file log.txt ra để tính toán đó là phải lấy thời gian gửi đi ở [INFO][ thời gian đi] và thời gian nhận [INFO][thời gian nhận] để tính toán độ trễ. Em đã có phương pháp là đầu tiên em sẽ dùng hàm strstr để tìm vị trí của [INFO] sau đó dụa vào đó để lấy ra được thời gian năm, tháng , ngày , giờ, phút , giây sau đó phải chuyển nó từ dạng chuỗi ký tự sang dạng số nhưng em thấy cách này quá lằng nhằng và dài dòng khì phải lần luợt lấy vị trí của bản gửi đi và nhận và còn phải tính toán thời gian trong nhiều trường hợp khác nhau. Mentor có thể gợi ý cho em 1 hương đi tối ưu hơn được không ạ?
Cách tách dữ liệu từ 1 chuỗi
dung regex nha ban
hình như cái này không có trong C đúng không bạn, mình code C
cắt ra từng dòng rồi dùng substr cho mỗi dòng thôi, format cố định độ dài mà
ak cách này có vẻ nhanh hơn cách dùng strstr 1 chút, mình cảm ơn ạ
Nhưng bạn ơi mình code C thì không dùng được hàm này vậy có cách nào khác không aj?
học lập trình là học giải quyết vấn đề
vấn đề hiện tại là bạn đang cần cắt chuỗi để lấy ra chuỗi con như ý muốn
bạn đã biết bạn cần làm gì rồi thì vận dụng những kiến thức lập trình để làm thôi, cái này là rất cơ bản
Như @kisuluoibieng đề cập, cậu có thể tự viết hàm substr của riêng cậu. Nó không nên quá khó đâu
Ngoài ra, tớ thấy 1 phần dữ liệu của cậu là json, nên cậu cũng có thể tận dụng các thư viện json parser có sẵn, hoặc bất cứ thư viện C nào đề cập ở đây. Sau khi parse xong xuôi, cậu nên chuyển file trên thành dạng cấu trúc, có thể bao gồm reqId
, startTimestamp
và endTimestamp
.
Mà đây là bài tập môn C của cậu à?
Dạ đúng rồi ạ, mình cảm ơn tất cả mọi người mình giải quyết được vấn đề rồi ạ
Thanks bạn nhiều, lần đầu mình viết code dài mà nhiều vấn đề như này nên hơi bị thuộc vào hàm có sẵn nhưng sau ý kiến của bạn mình đã ý thức hơn là phải tự viết hàm cho mình sử dụng. Mình cảm ơn nhiều.