델파이 문자열
—— 인터넷에서 excerpt
1 : 다양한 문자열
문자열은 ObjectPascal에서 가장 유용한 모든 데이터 유형입니다. 많은 기능은 문자열과 인수를 전달합니다. Pascal의 전형적인 문자열 (문자열), Delphi (Ansistrings)가 지원하는 긴 줄, C 언어 (Arrayofchar)와 유사한 문자 배열 및 캐릭터 포인터 (PCHA)를 포함하여 델파이에서 문자열을 정의하고 사용하는 다양한 방법이 있기 때문입니다. 등. 다음 기사는 정의 및 응용 분야에서 이러한 유형의 차이점과 예방 조치에 대해 이야기합니다.
1. 전통적인 파스칼 스트링
Pascal에서 일반적인 문자열은 특정 길이의 일련의 문자입니다. 각 문자열은 설정 길이가 있습니다 (기본값은 255), 다음은 예입니다.
var
주소 : 문자열;
코드 : 문자열 [50];
주소는 길이가 255 인 문자열이고 최대 코드 길이는 50입니다.
전통적인 파스칼 스트링 길이는 255를 초과 할 수 없습니다.
문자열 연결 작업 "+"를 사용하여 문자열을 함께 연결할 수 있습니다.
결과 : = String1+string2;
2. 델파이의 긴 줄
Delphi는 전통적인 파스칼 짧은 줄을 지원하는 것 외에도 긴 줄을 지원합니다. 긴 캐릭터를 Ansistring이라고합니다. 긴 줄은 메모리를 동적으로 할당합니다. 즉, 문자열에 필요한 메모리는 문자열을 사용할 때만 할당되므로 길이는 제한되지 않습니다. Delphi에서 String1 : String을 유형 설명으로 사용하면 Compiler의 $ H 스위치 설정에 따라 String1이 짧은 문자열이거나 긴 String 일 수 있습니다. 기본값은 $ h+이며, 이는 ansi long strings의 ansi 긴 문자열을 나타냅니다. 긴 문자열은 널로 끝납니다. 이는 긴 줄이 C 언어의 널 엔드 문자열과 완전히 호환됩니다.
문자열의 최대 길이는 setlength 함수를 통해 설정할 수 있습니다.
setLength (String1,100); TrimLeft, Trimright 및 Trim 기능을 사용하여 문자열의 시작, 끝 및 끝에서 각각 빈 영역을 제거하십시오.
3. C와 유사한 문자 배열
0으로 시작하는 배열은 널로 끝나는 문자열을 저장하는 데 사용할 수 있습니다. 다음 정의 :
var
이름 : 배열 [0..50] ofchar;
4. PCHA 포인터
Delphi의 ExnedsynTax가 설정된 경우 (기본값) 0으로 시작하는 문자 배열은 0으로 시작하는 문자 배열 이름이 문자 배열의 첫 번째 문자를 가리키는 포인터이기 때문에 캐릭터를 가리키는 포인터 PCHA와 완전히 호환됩니다. . 문자열을 PCHA 포인터에 직접 지불 할 수 있습니다. 예를 들어:
var
P : PCHA;
시작하다
P : = 'Helloworld';
끝;
이 방식으로 P는 문자열 'HelloWorld'를 저장하는 메모리 조각을 가리키고 NULL로 끝납니다.
많은 Windows Application 프로그램 인터페이스 API 기능에는 PCHR 유형이 매개 변수로 필요합니다. PCHA 포인터를 사용하는 경우 먼저 GetMem (VARP : POINTER; SIZE : Integer) 기능을 사용하여 프로그램의 끝에서 Freemem (VARP : POINTER [; size : Integer]) 기능을 사용하십시오. 릴리스 메모리. 예를 들어:
varwindir, sysdir : pchar;
시작하다
getMem (Windir, 256); {포인터에 대한 메모리 할당}
getwindowsdirectory (Windir, 128); {Windows 설치 디렉토리를 Windir에 넣습니다}
showmessage ( 'windowsdirectoryis'+windir); {show result}
끝;
둘 : 문자열 변환
위의 내용은 델파이에서 네 가지 유형의 문자열의 정의와 사용을 소개합니다. 다양한 기능마다 문자열 매개 변수 유형에 대한 요구 사항이 다르므로 문자열 유형 변환이 필요합니다.
1. strpas를 사용하여 널로 끝나는 문자열을 파스칼 짧은 문자열로 변환 할 수 있습니다. strpcopy는 반대 전환을 완료합니다.
2. 긴 줄은 널로 끝나기 때문에 긴 줄을 캐스트로 PCHA 유형으로 변환 할 수 있습니다. 사용법은 : pchar (s), s는 긴 문자열입니다. 캐스팅은 긴 문자열의 첫 번째 문자에 대한 포인터를 반환하고 뾰족한 문자열은 NULL로 끝납니다. 예를 들어:
var
캡션, 메시지 : 문자열;
캡션 : = 'Helloworld!';
mssage : = 'thisitestestoflongstring';
MessageBox (0, PCHA (메시지), PCHA (캡션), MB_OK);
요약 : Delphi에서 문자열을 사용할 때는 혼란을 피하기 위해 항상 문자열 유형에 대해 명확해야합니다. 문자열을 이해할 때는 이해를 향상시키기 위해 문자열을 포인터 및 메모리 할당과 연결해야합니다.