Lazarus中system.length说明

在system单元中我们有Length专门用来获取字符串宽度和数组宽度,下面例子来介绍他的功能。

定义:

function Length(

  SAStringType

):Integer;

function Length(

  ADynArrayType

):Integer;

这里我们可以看到传递的参数可以是字符串,也可以是字符。

函数返回S字符串的宽度,如果字符串是shortstring类型,字符宽度限制在255以内,如果S是空,则返回0.

widestrings和ansistrings也可以使用这个函数

如果是动态数组,函数将会返回数组元素的数量。

Length函数同样支持Pchar和PWideChar类型,效果类似StrLen和WStrLen,但这种情况,函数只计算null结尾的字符串,因为这里的函数是一个null结尾扫描结果的函数。

官方例子:

Program Example36;

{Program to demonstrate the Length function.}

Var S :String;
    I
:Integer;

begin
  S
:='';
 
for i:=1 to 10do
    begin
    S
:=S+'*';
   
Writeln(Length(S):2,' : ',s);
    end
;
end.

下面是我们的例子:

program system_example;

{$mode objfpc}{$H+}

uses
 
{$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads
,
 
{$ENDIF}{$ENDIF}
 
Classes,sysutils;

var
  s
:string;
  i
:Integer;
  ss
:ShortString;
  sarr
: string[10];
  anstr
:AnsiString;
  wdstr
:widestring;
  arr
: array[0..10] of integer;
  darr
: array of integer;
  marr
: array[0..4,2..22] of integer;
begin
 
//normal string
  s
:='Lazarus';
  i
:= length(s);
 
WriteLn('string length:'+inttostr(i));

 
//short string
  ss
:='Lazarus';
  i
:= length(ss);
 
WriteLn('shortstring length:'+inttostr(i));

 
// string array
  sarr
:='Lazarus';
  i
:= length(sarr);
 
WriteLn('string array length:'+inttostr(i));

 
// ansistring
  anstr
:='我的lazarus';
  i
:= length(anstr);
 
WriteLn('ansi string length:'+inttostr(i));

 
// widestring
  wdstr
:='我的lazarus';
  i
:= length(wdstr);
 
WriteLn('wide string length:'+inttostr(i));

 
//static array length
  i
:= length(arr);
 
WriteLn('array length:'+inttostr(i));{11}

 
// dynamic array
  setlength
(darr,10);
  i
:= length(darr);
 
WriteLn('dynamic array length:'+inttostr(i));{10}

  i
:= length(marr);
 
WriteLn('m array length:'+inttostr(i));{5}
end.
原文地址:https://www.cnblogs.com/China3S/p/3290328.html