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부터 입니다.

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