Stringtyper i Delphi (Delphi för nybörjare)

Som med alla programmeringsspråk är variabler i Delphi platshållare som används för att lagra värden; de har namn och datatyper. Datatypen för en variabel avgör hur bitarna som representerar dessa värden lagras i datorns minne.

När vi har en variabel som kommer att innehålla en rad tecken, kan vi förklara att den är av typSträng
Delphi erbjuder ett friskt sortiment av strängoperatörer, funktioner och procedurer. Innan vi tilldelar en stringdatatyp till en variabel måste vi förstå Delphis fyra strängtyper grundligt.

Kort sträng

Enkelt uttryckt, Kort sträng är en räknad matris med (ANSII) tecken, med upp till 255 tecken i strängen. Den första byten i den här matrisen lagrar strängens längd. Eftersom detta var huvudsträngstypen i Delphi 1 (16 bitars Delphi), är det enda skälet att använda Short String för bakåtkompatibilitet. 
För att skapa en variabel ShortString-typ använder vi: 

var s: ShortString; s: = 'Delphi-programmering'; // S_Length: = Ord (s [0])); // vilket är samma som Längd (er)


De s variabel är en variabel med kort sträng som kan innehålla upp till 256 tecken, dess minne är en statiskt tilldelad 256 byte. Eftersom detta vanligtvis är slöseri - osannolikt kommer din korta sträng att spridas till maximal längd - andra sätt att använda korta strängar använder undertyper av ShortString, vars maximala längd är någonstans från 0 till 255. 

var ssmall: String [50]; ssmall: = 'Kort sträng, upp till 50 tecken';

Detta skapar en variabel som heter ssmall vars maximala längd är 50 tecken.

Obs: När vi tilldelar ett värde till en variabel för kort sträng, trunkeras strängen om den överskrider den maximala längden för typen. När vi skickar korta strängar till vissa Delphis strängar som hanterar rutin, konverteras de till och från lång sträng.

Sträng / Lång / Ansi

Delphi 2 fördes till Object Pascal Lång sträng typ. Lång sträng (i Delphis hjälp AnsiString) representerar en dynamiskt tilldelad sträng vars maximala längd endast är begränsad av tillgängligt minne. Alla 32-bitars Delphi-versioner använder som standard långa strängar. Jag rekommenderar att du använder långa strängar när du kan. 

var s: Sträng; s: = 'Strängen s kan vara av valfri storlek ...';

De s variabel kan innehålla från noll till vilket praktiskt antal tecken som helst. Strängen växer eller krymper när du tilldelar ny data till den.

Vi kan använda valfri strängvariabel som en rad tecken, det andra tecknet i s har indexet 2. Följande kod 

s [2]: = 'T';

tilldelar T till det andra tecknet os s variabel. Nu är de få av de första karaktärerna i  ser ut som: Den här str ... .
Bli inte vilseledande, du kan inte använda s [0] för att se strängens längd, s är inte ShortString.

Referensräkning, kopia-på-skriva

Eftersom minnesallokering görs av Delphi, behöver vi inte oroa oss för sopor. När du arbetar med långa (Ansi) strängar använder Delphi referensräkning. Detta sätt strängkopiering är faktiskt snabbare för långa strängar än för korta strängar. 
Referensräkning, med exempel: