2015-02-14 14 views

Trả lời

6

Chuỗi kiểu Pascal có một byte hàng đầu (length), theo sau là length byte dữ liệu ký tự.

Điều này có nghĩa là các chuỗi kiểu Pascal chỉ có thể mã hóa các chuỗi có độ dài từ 0 đến 255 ký tự (giả sử mã hóa ký tự một byte như ASCII).

Là một sang một bên, một mã hóa chuỗi phổ biến là chuỗi C-style mà không có specifier chiều dài, nhưng sử dụng một zero-byte để biểu thị sự kết thúc của chuỗi. Do đó, chúng không có giới hạn độ dài.

Các mã hóa khác có thể sử dụng số byte tiền tố lớn hơn để tạo điều kiện cho chuỗi dài hơn. Terminator byte/sentinels cũng có thể được sử dụng cùng với các tiền tố chiều dài.

+0

Mô tả này là chính xác nhưng chỉ áp dụng cho các chuỗi Pascal truyền thống. Đối tượng Pascal đối tượng hiện đại giống như trong Delphi, Free Pascal và Lazarus hỗ trợ rất nhiều loại chuỗi với các mã hóa khác nhau và một số trong số chúng không có giới hạn độ dài. Xem http://wiki.freepascal.org/Character_and_string_types để tham khảo. Tôi giả định, tuy nhiên rằng "chuỗi Pascal" trong tài liệu Photoshop đề cập đến các chuỗi Pascal truyền thống. – jwdietrich

+0

Thật vậy, đặc tả Photoshop (khá dài) sử dụng _Pascal string_ thay cho [_Pascal ShortString_] chính xác hơn (http://wiki.freepascal.org/Character_and_string_types#ShortString). Cảm ơn bạn đã tham khảo. –

+0

Chỉ Delphi được đổi tên thành "chuỗi" thành chuỗi ngắn vì chúng đã giới thiệu tính năng ansistring. Nguồn gốc của chuỗi afaik là UCSD Pascal, xem http://stackoverflow.com/questions/25068903/what-are-pascal-strings/25079998#25079998 –

Các vấn đề liên quan