Q&A

  • 합계구하기...
질문만 하게되는 초짜입니다..
여기저기 전부 찾아봐두 없어서 또 한번 질문을 드립니다..
메모 라인에 ...
1222233334444
1333322225555
1444455552222

이런 숫자가 있다구 가정하시고요..

맨 앞의 1 이라는 수는 항상붙는 숫자입니다.
1 이라구 정해진 숫자들만 계산을 하는고죠..
그리구 두번째자리들부터 다섯번째자리들의 합을구하구여..
다음은 여섯번째부터아홉번째 까지의 합을 구하는 겁니다..
이런식으로 합을 구해야 하는데..어떤식으로 해야될지.. 감이 안오네요..
고수님들의 힌트나 조언 부탁드립니다.



3  COMMENTS
  • Profile
    정성훈 2002.09.27 01:09
    var
       i : Integer;
       Sum1, Sum2 : Currency;
    begin
       Sum1 := 0;
       Sum2 := 0;

       for i := 0 to Memo1.Lines.Count - 1 do
       begin
           if Copy( Memo1.Lines[i],1,1 ) = 1 then
           begin
               Sum1 := Sum1 + StrToFloat( Copy( Memo1.Lines[i],2,4 ) );
               Sum2 := Sum2 + StrToFloat( Copy( Memo1.Lines[i],6,4 ) );
           end else Continue;
       end;
       ShowMessage( FloatToStr( Sum1 ) +#13+
                               FloatToStr( Sum2 ) );                            
    end;

  • Profile
    초짜 2002.09.27 02:04
    답변 감사합니다.
    한가지 이해가 안가는게....
    if Copy( Memo1.Lines[i],1,1 ) = 1 then  <== 요기서    ' =1 ' (무엇을 의미하는지...?

  • Profile
    최병철 2002.09.27 20:02
    가정으로  i의 변수 값이 1이라고 가정하고

    Memo1.Lines[i]의 값은  내용은 요것("1333322225555")이고
    이 부분을  사용하면 Copy( Memo1.Lines[i],1,1 )
    "1"이라는 결과 값이 출력될 것입니다.

    즉 Memo1 컴포넌트 라인의 한줄을 읽어서
    문자열 첫번째 자리를 산출하는 부분입니다.

    참고 델파이의 문자열 초기 시작 값은 1부터 시작이고
    C언어의 문자열 초기 시작 값은 0부터 입니다.

    참고 하세요..........................



서버에 요청 중입니다. 잠시만 기다려 주십시오...