혹시...답변이 있을까 다뒤졌는데 이건 없더군여...-.-;
그래두 올려주시리라 믿구 올립니다^^;
procedure TfrmAttend.btnSaveClick(Sender: TObject);
var memoChar : array[1..100] of char;
i,hap : integer;
begin
for i := 1 to length(moEtc.Lines.Text)-1 do
begin
memoChar[i] := moEtc.Lines.Text[i];
if not (StrToIntDef(memoChar[i],0) = 0) then
begin
hap := hap + strToint(memoChar[i]);
end;
end;
edBmark.Text := intTostr(hap);
end;
저장버튼을 누르면 moEtc(DBMemo)에서 숫자만 더해서 edBmark(Editbox)에다가 결과를 뿌려주려고 하거든여..
한자리 숫자끼리는 잘 더해지는데 10이나 15같은.....두자리 이상은 인식을 못하는거 같아요.
10같은 경우는 결과가 1로 15같은 경우는 결과가 6으로 나와서여...
두자리가 안되니깐 세자리두 안되는건 당연하구여..
비두 추적추적오구..기분두 꿀꿀하구...그렇네여...
앙~~~~~
문제는 스티링모드를 Double 또는 Integer형태로 바꿔주는
function을 만들어서 쓴 겁니다.
function GET_FLOAT(PSTRING:String):Integer;
begin
if........ 자기가 걸러내고 싶은 조건들....
//위 조건이 충족되면
Result := StrToInt(PSTRING);
end;
procedure TfrmAttend.btnSaveClick(Sender: TObject);
var hap : integer;
begin
for i := 1 to length(moEtc.Lines.Text)-1 do
hap := hap + GET_FLOAT(moEtc.Lines.Text[i]);
edBmark.Text := intTostr(hap);
end;
음 좋은 방버이러ㅏ고 할 순 없지만 function에서
모든 가능한 조건으로 처리하면 Double이나 Integer로 바꿀때
생겨나는 오류를 막을 수 있고 전역으로 설정한다면
모든 프로그램에서 신경쓰지 않고 숫자형으로 전황할 수 있어 편하더군요.
이상 허접방법입니다. ^^
blackjewel wrote:
> 혹시...답변이 있을까 다뒤졌는데 이건 없더군여...-.-;
>
> 그래두 올려주시리라 믿구 올립니다^^;
>
> procedure TfrmAttend.btnSaveClick(Sender: TObject);
> var memoChar : array[1..100] of char;
> i,hap : integer;
> begin
> for i := 1 to length(moEtc.Lines.Text)-1 do
> begin
> memoChar[i] := moEtc.Lines.Text[i];
> if not (StrToIntDef(memoChar[i],0) = 0) then
> begin
> hap := hap + strToint(memoChar[i]);
> end;
> end;
> edBmark.Text := intTostr(hap);
> end;
>
> 저장버튼을 누르면 moEtc(DBMemo)에서 숫자만 더해서 edBmark(Editbox)에다가 결과를 뿌려주려고 하거든여..
>
> 한자리 숫자끼리는 잘 더해지는데 10이나 15같은.....두자리 이상은 인식을 못하는거 같아요.
>
> 10같은 경우는 결과가 1로 15같은 경우는 결과가 6으로 나와서여...
>
> 두자리가 안되니깐 세자리두 안되는건 당연하구여..
>
> 비두 추적추적오구..기분두 꿀꿀하구...그렇네여...
>
> 앙~~~~~