Łańcuchy » Operacje

Length

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ść elementów tablicy:

var
  Bar : array[0..5] of String;
 
begin
  Writeln('Ilość elementów tablicy: ', Length(Bar));
  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 Ansi. Spowodowane jest to tym, że w łańcuchach Unicode każdy znak zajmuje dwa bajty.

Zobacz też:

9 komentarzy

ficiek 2009-05-08 16:00

"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

bordeux 2007-06-14 14:46

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

Adamo 2007-06-05 01:26

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))^);

Oleksy_Adam 2006-08-05 20:00

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

Coldpeer 2006-07-26 16:02

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

Nastolatek 2006-07-26 15:34

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

Coldpeer 2006-07-20 23:45

Skoro nie wiesz, to po co piszesz...

pregusia 2006-01-04 00:05

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

abc 2006-01-03 23:30

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