10/10/2018, 10:38
Khắc phục lỗi substring 1 str lớn trong javascript
Chào các bạn mình có 1 string cực lớn, lên tới gần 1 tỷ byte
mình sử dụng substring để cắt lấy khoảng mình cần nhưng không được
str="string....."
mình muốn lấy 70 nghìn ký tự alert(str.substring(648215751,648285751))
Vậy có bạn nào biết cách khắc phục lỗi trên không chỉ mình với
mình sử dụng substring để cắt lấy khoảng mình cần nhưng không được
str="string....."
mình muốn lấy 70 nghìn ký tự alert(str.substring(648215751,648285751))
Vậy có bạn nào biết cách khắc phục lỗi trên không chỉ mình với
Bài liên quan
Thứ hai, theo tôi biết, mỗi trình duyệt có hạn chế về độ dài của chuỗi.
IE: 2^20 ~ 1MB
FF: 2^16 ~ 65.536
Opera: 2^12 ~ 8192
Theo đó, những chuỗi dài hơn giá trị đó sẽ bị cắt bỏ. Do đó không có chuyện tồn tại 1 chuỗi 1 tỷ byte.
filename = vt.dat
filesize= 1048576000
textfile="........."
Mình sử dụng Firefox 3.6.8 get String được là 134.217.728 (~134 triệu byte)
Như vậy mình chỉ có thể substring trong khoảng < = 134217728
Vậy có cách nào để mình get String của file đó trên 134217728 không vậy?
dùng javascript để đọc Binary của file chỉ mất tầm 30s - > 2p là cùng
còn nếu sử lý phía server chắc mất cả giờ
Nếu dùng js đọc file ở client thì có nhiều cách. Nếu bạn dùng FileSystemObject thì có thể kết hợp giữa method read() và skip() để lấy một số ký tự ở vị trí cần thiết. Như vậy thay vì lấy 1 lần, hãy chia ra làm nhiều lần với độ dài vừa phải. Xử lý xong rồi lấy tiếp.
Ví dụ đầu tiên đọc 1000byte, xử lý xong đọc 1000 byte tiếp theo cho đến hết