Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: sửa .srt file

  1. #1
    Ngày gia nhập
    09 2009
    Bài viết
    26

    Mặc định sửa .srt file

    Tình hình là có 1 file .srt (file phụ đề cho phim)
    gồm nhiều cấu trúc có dạng nằm liên tục nhau

    [number]
    [starttime] --> [endtime]
    [content]

    Ví dụ

    1
    00:01:55,140 --> 00:01:57,010
    Hello world

    Nghĩa là từ 1phút55giây --> 1phút57giây thì hiện lên câu Hello world, 1 là số thứ tự

    Hôm trước down 1 cái phụ đề về thì nó ko khớp thời gian, nghĩa là [starttime] và [endtime] đều sớm hơn khoảng 7 giây so với trên phim, mà chẳng lẽ ngồi gõ lại toàn bộ con số thời gian thì mệt (tới 855 cái lận)

    Ý tưởng ban đầu của mình là tạo 1 cái struct gòy đọc từng cái struct, cộng thêm 7 giây cho mỗi số (để nó hiện chậm lại) rồi lưu trong 1 file mới. Nhưng thấy phải dùng đến struct thì hơi tốn bộ nhớ. Có ai có 1 ý tưởng nào tốt hơn thì dzui lòng giúp mình với.

    Thanx những ai đã ghé mắt qua bài này
    Đã được chỉnh sửa lần cuối bởi kangoo1707 : 17-09-2009 lúc 03:53 PM.

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Cái này không nhất thiết phải đọc vào bộ nhớ. Bạn đọc từng mẩu tin có trong file cũ, sửa giá trị rồi lần lượt ghi qua file mới. Với cách này bạn không cần phải tốn quá nhiều bộ nhớ.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    09 2009
    Bài viết
    26

    Pác mèo ơi, vấn đề ở chỗ cái file này là file Unicode, pác biết hàm nào ghi file mà dùng ký tự Unicode ko

  4. #4
    Ngày gia nhập
    04 2007
    Bài viết
    134

    Tìm hiểu cấu trúc file text unicode, rồi đọc nhị phân, cũng chả khó.
    Ko thì subtitleworkshop mà táng

  5. #5
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Bạn cứ đọc file theo mode nhị phân rồi phân tích chuỗi là được. Những ký tự bình thường như a->z, 0->9, ... trong bảng mã unicode vẫn y vậy, chỉ khác là nó có thêm một ký tự 0 đi kèm phía sau nữa thôi.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  6. #6
    Ngày gia nhập
    09 2009
    Bài viết
    6

    Mặc định sửa .srt file

    kangoo1707@: Bạn nạp toàn bộ tập tin vào bộ nhớ rồi xử lý. Vì tập tin phụ đề rất nhẹ nên không lo chiếm dụng nhiều. Và thao tác trên bộ nhớ nhanh hơn rất nhiều nếu đọc tập tin từng dòng. Xử lý xong một .srt chỉ 5'. Khó ở chỗ nhận dạng unicode hay utf-8 để mà xử lý. Bạn dùng trình xem tập tin dạng hex sẽ biết vài ký tự thông dụng của từng loại tập tin văn bản thô:

    Code:
    EF_BB_BF : UTF-8;
    FF_FE    : Unicode.
    Tôi từng xử lý .srt (y chang ý của bạn x_x), nhưng mà là Delphi. Nếu bạn thích tôi gửi nguồn cho.

  7. #7
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    @kangoo1707 : Bạn z.m đã nói hết rồi nhưng mình khuyên bạn là nên chuyển utf8 sang unicode ( cái này dùng notepad chuyển tay cũng được ). Ký tự unicode lúc nào cũng 2 byte, trong khi utf8 lúc 1, 2, có khi lại 3 byte nữa nên hơi khó xử lý. Còn mình thì vẫn bảo lưu quan điểm không nạp file vào bộ nhớ bởi vì trong trường hợp này nó chỉ làm tốn bộ nhớ mà lại còn chậm hơn.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  8. #8
    Ngày gia nhập
    08 2008
    Bài viết
    17

    Cái này dùng PHP thì cực kỳ đơn giản, đọc theo dòng và dùng regex để tìm và thay đổi thời gian.

  9. #9
    Ngày gia nhập
    07 2007
    Nơi ở
    TP.HCM
    Bài viết
    199

    Mình thấy cho đỡ mất thời gian, bạn dùng phần mềm kmplayer để xem film, load subtitle đó vào, rồi vào phần subtitle explorer vừa xem phim vừa chỉnh lại time rất nhanh và tiện.

  10. #10
    Ngày gia nhập
    09 2009
    Bài viết
    26

    Trích dẫn Nguyên bản được gửi bởi Ð.Khánh Xem bài viết
    Mình thấy cho đỡ mất thời gian, bạn dùng phần mềm kmplayer để xem film, load subtitle đó vào, rồi vào phần subtitle explorer vừa xem phim vừa chỉnh lại time rất nhanh và tiện.
    Thanx, dùng phần mềm thì dễ hơn gòy, nhưng code nó mới vui chứ

Các đề tài tương tự

  1. Cách add file thư viện dll vào file exe để tạo một file chạy duy nhất C#
    Gửi bởi nthung2112 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 20
    Bài viết cuối: 01-09-2012, 10:01 AM
  2. File backup .bak có dung lương lớn hơn file .mdb và file log
    Gửi bởi MYNAM trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 4
    Bài viết cuối: 27-07-2012, 12:59 PM
  3. Giới thiệu cách chuyển File Ảnh thành file Video trong download proshow gold
    Gửi bởi thuhu0900x trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 3
    Bài viết cuối: 03-07-2012, 03:54 AM
  4. Đọc dữ liệu file midi dạng số HEX và lấy lời nhạc trong file ra file text
    Gửi bởi kimngockhtn_2007 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 29-06-2011, 04:40 PM
  5. Trả lời: 17
    Bài viết cuối: 23-05-2011, 11:47 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn