다음을 통해 공유


가변 크기 문자열

메서드의 마지막 입력 매개 변수 또는 마지막 출력 매개 변수가 문자열인 경우 해당 문자열의 크기가 변함없이 조정될 수 있습니다. 크기는 길이에 대해 지정된 최대 바이트 수까지 0에서 다를 수 있습니다. 반환 값이 문자열이고 다른 모든 출력 매개 변수 다음에 배치되는 경우 항상 크기가 조정된 최종 출력 필드일 수 있습니다.

문자열의 크기를 항상 조정하려면 문자열을 마지막으로 보내거나 받아야 합니다. 그렇지 않으면 버퍼의 고정 크기 문자열과 다음 데이터 항목의 끝을 확인할 수 있는 신뢰할 수 있는 방법이 없습니다. 호스트 애플리케이션의 논리는 필요한 문자열 부분에 대한 데이터만 보냅니다.

COBOL은 문자열에 대해 고정 크기 옵션을 설정하지 않습니다. 이 속성을 수동으로 설정하려면 변수 크기 최종 필드 속성을 변수로 설정합니다. 속성 변수 크기 최종 필드는 방향별로 두 부분으로 세분화됩니다. true로 설정하려는 방향을 설정합니다.

다음 COBOL 예제에는 마지막 데이터 항목으로 문자열의 크기만 전송하여 최적화할 수 있는 큰 문자열이 있습니다.

01 CUSTOMER-DATA.  
   05 CUST-HEADER.  
      10 CUSTOMER-NUMBER              PIC 9(9).  
      10 LAST-NAME                    PIC X(20).  
      10 FIRST-NAME                   PIC X(20).  
   05 COMMENTS                        PIC X(4096).  
  

가져올 때 이 COBOL 코드는 다음 메서드를 만듭니다.

CustomerInformation(lCustomerNo As Long,_  
                    strLastName As String,_  
                    strFirstName As String,-  
                    strComments As String)  
  

다음 Visual Basic 코드는 메서드를 호출합니다.

Dim objCustomer As Object  
    Dim lCustomerNo As Long  
    Dim strLastName As String  
    Dim strFirstName As String  
    Dim strComments As String  
  
    lCustomerNo = 100231  
  
    'create an instance of the invoicing object  
    On Error GoTo ErrorHandler1  
    Set objCustomer = CreateObject("Customer.Invoicing.1")  
  
    'invoke the SetInvoices method  
    On Error GoTo ErrorHandler2  
    objCustomer.CustomerInformation lCustomerNo, strLastName _  
        , strFirstName, strComments