Length

pregusia
Length
Moduł: System
function Length(S): Integer;

Funkcja zwraca długość łańcucha S lub ilość elementów tablicy S. Parametr więc może być zarówno łańcuchem jak i tablicą.

Przykład:

WriteLn(Length(''));  // Zwróci 0
WriteLn(Length('To jest test'));  // Zwróci 12
 
S := 'abcd';
WriteLn(Length(S));  // Zwróci 4

W przypadku tablic - zwraca ilość jej elementów:

var
  Bar: array [0 .. 5] of String;
begin
  WriteLn('Ilość elementów tablicy: ', Length(Bar));  // Zwróci 6
  ReadLn;
end.
Dla łańcuchów typu Unicode (WideString) zwrócona wartość (ilość znaków w łańcuchu) nie jest równa ilości bajtów, jak w przypadku łańcuchów typu AnsiString. Spowodowane jest to tym, że w łańcuchach Unicode każdy znak zajmuje dwa bajty.

Zobacz też:

9 komentarzy

"A ilość elementów w Tablicy nie zwraca?" Do tego służy HIGH (może komuś się przyda odpowiedź na pytanie z 2006 roku ;) ). High

A jak sprawdzić ile teks np kajak ile ma liter k ?

teraz też można coś podobnego, tylko długość nie jest jednobajtowa więc nie można dać Byte(S[0]) tylko trzeba się cofnąć o długość inta, czyli:

type PInteger = ^Integer;
Length := Integer(PInteger(PChar(S) - SizeOf(Integer))^);

Dawniej, jeszcze w Turbo Pascalu można było to zrobić tak :Length := Ord(S[0])

To dodaj. IMHO już nic więcej nie trzeba, co chcesz dopisać?

Hmm.. Takie sobię :) Można by było dodać jeszczę parę przykładów dla Newbie ;)

Skoro nie wiesz, to po co piszesz...

Nie wiem... zawsze uzywalem tylko do String.. jak sie bawie tablicami to wiem na ile elementow je deklaruje :p

A ilość elementów w Tablicy nie zwraca?