동적 배열의 길이를 문자열로 변환하고 길이를 묻는 함수를 작성했습니다 (trim (string)). 제목에 명시된 바와 같이잘못된 유형 : 'Array'및 'dynamic array'
ShowMessage(IntToStr(arraylength(cChar)));
내가 오류를 얻을 : 내 주요 프로그램에서
function arraylength(a: array of char): integer;
var i: integer;
s: string;
begin
for i:=0 to high(a) do
begin
s[i] := a[i-1];
Result := length(trim(s));
end;
end;
내가 배열
procedure TForm1.Button2Click(Sender: TObject);
var i: integer;
begin
for i:=0 to length(sString) do
begin
cChar[i] := sString[i];
end;
end;
로 변환 할 문자열에 텍스트를 읽어 보시기 바랍니다.
나머지 코드는 매우 손상되었습니다. 배열의 기본 인덱스는 0입니다. 문자열의 기본 주소는 하나입니다. 문자열이나 배열에는 SetLength를 호출 할 때까지 아무 것도 포함되어 있지 않습니다. 루프 밖에서's' 길이를 확인해야합니다. 그렇지 않으면 함수가 값을 반환하지 않을 수도 있다는 경고를 받아야합니다. 왜 당신이 문자열을 배열로 바꾸는가? 다음에 할 일이 문자열로 다시 채워지는 경우라면? –
* StrLen() * 및 유사한 기능을 살펴보십시오. 왜 처음에는 * PChar *를 사용하지 않습니까? – mghie