Programowanie w języku Delphi

Length

  • 2014-02-09 00:14
  • 9 komentarzy
  • 6834 odsłony
  • Oceń ten tekst jako pierwszy
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

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?