2015-02-14 8 views

risposta

6

Una stringa in stile Pascal ha un byte iniziale (length), seguito da length byte di dati carattere.

Ciò significa che le stringhe in stile Pascal possono solo codificare stringhe di lunghezza compresa tra 0 e 255 caratteri (assumendo codifiche di caratteri a byte singolo come ASCII).

A parte, un'altra codifica di stringhe popolare è stringhe in stile C che non hanno identificatore di lunghezza, ma utilizzano un byte zero per indicare la fine della stringa. Pertanto non hanno limiti di lunghezza.

Eppure altre codifiche possono utilizzare un numero maggiore di prefissi per facilitare stringhe più lunghe. I terminatori byte/sentinelle possono anche essere utilizzati insieme ai prefissi di lunghezza.

+0

Questa descrizione è corretta, ma si applica solo alle stringhe Pascal tradizionali. I dialetti Modern Object Pascal come quelli di Delphi, Free Pascal e Lazarus supportano una pletora di tipi di stringhe con diverse codifiche e alcuni di essi senza limite di lunghezza. Vedi http://wiki.freepascal.org/Character_and_string_types come riferimento. Presumo, tuttavia, che le "stringhe Pascal" nella documentazione di Photoshop si riferiscono alle corde Pascal tradizionali. – jwdietrich

+0

In effetti, la specifica Photoshop (piuttosto longeva) utilizza _Pascal string_ al posto del più preciso [_Pascal ShortString_] (http://wiki.freepascal.org/Character_and_string_types#ShortString). Grazie per il riferimento –

+0

Solo Delphi ha ribattezzato "stringa" a stringere le stringhe perché ha introdotto ansistring. L'origine di string afaik è UCSD Pascal, vedi http://stackoverflow.com/questions/25068903/what-are-pascal-strings/25079998#25079998 –

Problemi correlati