Q&A

  • Fuction 에서 Result 값으로 배열을
Fuction 에서 Result 값을 배열로 넘기로 싶은데...

않되나요?

Function Cut_Str(Str : String):Array of String;

일케요....
2  COMMENTS
  • Profile
    고지범 2002.12.24 01:56
    됩니다...
    단... 타입을 선언해야 합니다...
    아래의 예제를 보믄서...

    implementation
    type
       TTestArray = array of string;

    {$R *.dfm}

    function GetArray():TTestArray;
    begin
       SetLength(Result, 5);
       Result[0] := '첫번째';
       Result[1] := '두번째';
       Result[2] := '세번째';
       Result[3] := '네번째';
       Result[4] := '다섯번째';
    end;

    procedure TForm1.Button3Click(Sender: TObject);
    var
       refArr   :TTestArray;
       nIndex   :Integer;
       strOut   :string;
    begin
       refArr := GetArray();
       strOut := '';
       for nIndex := Low(refArr) to High(refArr) do
          strOut := strOut + refArr[nIndex] + #13#10;
       ShowMessage(strOut);
    end;

    위에서 처럼... Array of String을 사용하기 위해서 먼저 타입을 정해주고,
    그 타입에 준해서 코딩하심 됩니다.
    또한 동적 배열의 경우 그 처음과 끝이 명확하지 않기 때문에 Low / High를 써주시면 되고요...
    위에서 보심... SetLength는 있는 데 해제하는 코드가 없다고 하실 지 몰겠군요...
    써본 바에 의하면... SetLength(***, 0)는 필요 없는 코드입니다.
    델파이가 참조가 끝나믄.. 알아서 해제시키는 거 같더군요...
    (pview.exe로 힙 사용량을 봐보았는 데... 증가분이 없었습니다.)

    그럼 오늘도 즐입니다.
  • Profile
    열심히 2002.12.23 23:15

    저도 지금 하려고 해보니 안되네염..

    저렇게는 못쓰나??

    급하시면 그냥 전역으로 배열선언하시고..

    펑션안에서 거기다가 값을 넣어서 쓰시는것도...

    아님 그냥 스트링으로 return값 선언하신담에..

    넣으실때 자료에 구분자를 넣어서 펑션을 호출후 넘겨진 값을 배열에 넣는

    방법도...있죠....어느것도 탐탁지는 안네염..

    아래의 글은 예전의 질답게시판에서 찾은 겁니다...참고..하세요..

    포인터타입을 써서 구현하는 방법이 있구요. 아님 변수를 var타입으로 선언하실 수도 있죠..  var는 비베에두 아마도.. 있었던거 같은데.. 예전에 잠시 써봤거덩요.. ^^;
    var를 쓰면 function이 아니라 procedure만으로 구현이 가능해지죠.

    procedure testProc(a: char; var b, c: Integer);
    begin
    b := 0;
    c := 0;
    case a of
      '1':
      begin
        b := 1;
        c := b;
      end;
      '2':
        b := 2;
        c := b;
      begin
      end;
    end;
    end;

    procedure UseTestProc;
    var
    t2, t3: Integer;
    begin
    testProc('1', t2, t3);
    showmessage(inttostr(t2) + ':' + inttostr(t3));
    end;

    • 이방인
      2002.12.24 19:39
      Edit Box의 내용을 읽어 오는것은 후킹까지는 필요가 없습니다. 단지 해당 윈도그즈의 핸들과 그가 포함...
    • 하기현
      2002.12.24 20:47
      빠른 답변에 감사를 드립니다. 그런데... 님께서 보내주신 소스에 의하면 에디트박스의 명칭을 알아야 하...
    • 이방인
      2002.12.24 21:11
      M$ Visual Studio 의 Spy++ 이나 Borland의 WinSight 를 참고 하시면됩니다... FindWindow와 FindWin...
    • 구창민
      2002.12.24 22:16
      안녕하세요~ 구창민입니다. 아래 루틴을 사용해 보시구여. 만일 안된다면, XP의 경우 각 로그인된 ...
    • 이성근
      2002.12.25 02:41
      답변에 감사 드립니다. 그런데 루틴을 사용하려다 보니 TSHFileOpStruct 형식이 선언 되지를 않읍니다. ...
    • 구창민
      2002.12.26 03:14
      uses   ShellApi 추가하세요. ^_^ 항상 즐거운 프로그래밍 하시길~~
    • 이성근
      2002.12.26 18:38
      답변에 감사 드립니다. 말씀하신데로 ShellApi를 Uses절에 포함하여 컴파일 하니 이상없이 컴파일은 됩...
    • 세라핌
    • 2002.12.24 10:53
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2002.12.24 22:24
      안녕하세요~ 구창민입니다. 질문만 봐서는 정확한 오류와 의도를 간파하지 못하겠구여..^^; 일단 RGB...
    • 세라핌
      2002.12.24 23:04
      안녕하세요 답변 감사합니다. 제가 하려고 하는것은 그림의 특정색을 다른색으로 변경하려 합니다. 처음...
    • 구창민
      2002.12.25 01:30
      아래 코드는 색을 Invert 시키는 예제인데 참고하시면 해결하실 수 있을거 같네요. 그럼~ 즐거운 프...
    • 엄화용
    • 2002.12.24 05:43
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 최은석
      2002.12.24 09:23
      PUT01 입고, PUT02 출고, PUT03 반품,  ITEM 아이템 테이블..... PUT01,PUT02,PUT03 테이블은 ...
    • 엄화용
      2002.12.24 10:14
      답변감사드려요 그런데요. 그렇게 쿼리를 작성하면 입고 출고 반품 수량이 입력된 품목만 출력됩니다. ...
    • 최은석
      2002.12.24 19:31
      다음처럼 해보세요... Outer Join 을 사용해서여... SELECT A.MON 월, A.ITEM_CODE 품목코드, D.ITEM...
    • 최병철
      2002.12.24 19:16
      참고하세요 Union을 이용해 보세요. 즉, Select  T.품명, Sum(T.입고필드) As 입고필드...
    • 열심히
      2002.12.25 21:04
      위에서 답변해주신 님처럼 아웃조인을 하시면.. 안되요... 입고테이블을 기준으로 잡으면 안됩니다.....
    • 감토바위
      2002.12.26 19:48
      정확하진 않더라도 좋으니 답변좀 부탁드립니다.... 고수님들의 의견이라도...
    • 김후진
    • 2002.12.24 04:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김민우
      2002.12.24 21:32
      어드민 계정으로 로그인후... 제어판 -> 관리도구 ->컴퓨터 관리 그안에 보면 로컬 사용자 ...
    • 김진호
    • 2002.12.24 04:09
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 머슴
      2002.12.24 04:43
           가장 먼저 해볼 수 있는 경우는 소스가 있는 경우라면...    &nb...
    • 강승익
    • 2002.12.24 03:38
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2002.12.24 22:27
      안녕하세요~ 구창민입니다. 실행파일의 파라메터로 DLL명을 넘기시겠단 뜻인거 같군요. System.Param...
    • 호야
      2002.12.24 20:53
      외부에서 받아들인다.. 라는 말이 이해가 안되네염... 단순히 LoadLibrary에서 쓰이는 경로를 지정하지...
    • 박재현
    • 2002.12.24 03:05
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최은석
      2002.12.24 03:35
      sql 문 사용하심이.. 우선 비교의 기준이 되는 칼럼이 name 라고 가정한다면.. select name,count(*) ...
    • 열심히
      2002.12.24 03:35
      그냥 간단하게 쿼리로.. SELECT ------- COUNT(*) FROM TABLE_NAME GROUP BY  ------- HAV...
    • *^^*
      2002.12.24 03:31
      'select distinct(필드명) from 테이블명' 하셔도 되고요.. 아님 레코드카운트까지 while 문 돌문서 'sel...
    • 호야
    • 2002.12.24 02:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 미소나눔
      2003.01.07 19:37
      제목 그래로이네요 정적 메소드는 오버라이드 될수 없죠... function BoxRect(ALeft, ATop, ARight, ABo...
    • 우소
    • 2002.12.24 02:47
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박재근
      2003.02.27 00:55
      혹 CURRENT_USER에 대한 것이 아닌지.. 이곳의 내용은 서비스가 읽지 못합니다. OS에서 그렇게 설정이 되어...
    • 김진호
    • 2002.12.24 02:37
    • 11 COMMENTS
    • /
    • 0 LIKES
    • 최은석
      2002.12.24 03:30
    • 김진호
      2002.12.24 03:50
    • 열심히
      2002.12.24 03:28
    • 김진호
      2002.12.24 03:46
    • 열심히
      2002.12.24 03:59
    • 김진호
      2002.12.24 04:44
    • 김진호
      2002.12.24 04:53
    • • • •
    • 뿡뿡이
    • 2002.12.24 00:55
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이희진
      2002.12.27 01:20
      일반적으로 엑셀의 한 셀에 데이터를 찍을 때,     Sheet.Cells[1 , i + 2] := '찍...
    • 열심히
      2002.12.24 02:07
      세로의 칸은 1,2,3,4,5,6,7.... 이런식으로 나가고 가로는 A,B,C,D,....Z,AA,AB,AC,AD,AE,... 이런식...
    • 감우길
    • 2002.12.24 00:19
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 나옹이
    • 2002.12.23 22:29
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 고지범
      2002.12.24 01:56
      됩니다... 단... 타입을 선언해야 합니다... 아래의 예제를 보믄서... implementation type  &...
    • 열심히
      2002.12.23 23:15
      저도 지금 하려고 해보니 안되네염.. 저렇게는 못쓰나?? 급하시면 그냥 전역으로 배열선언하시고.....
    • 열심히
      2002.12.23 21:54
      답변 serial에 대해서는 트리거로 만드는게 가장 나을것 같습니다... 아님 특정 테이블에 field에다가 s...
    • 열심히
      2002.12.23 21:46
      날짜에 대한 연산을 원하신다면 팁게시판이나 이게시판에서 찾아보실수 있을겁니다.. 먼저 테이블에 아...
    • 왕초보
      2002.12.23 22:06
      지금 테이블은 제가 임의로 수정할 수 없는 상황이여서 어쩔 수없이 한달의 자료를 모두 넣어야 하고요.. ...
    • 열심히
      2002.12.23 23:10
      죄송한데요 값을 한번에 넣는다는게 무슨 뜻이죠??.. 전혀 감이 안잡히네요..값을 한번에 넣는다라.......