2013. 11. 20. 11:02 IT/ASP

ASP Round, Cint, Int 함수

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

ASP 에서 Round 함수는 반올림 함수가 아니다.

 

페이징을 관련 프로그래밍을 하면서 한페이지씩 많을 때가 있어서

 

확인하다가 우연히 발견했다.

 

이해를 돕기위해 간단히 표로 보여준다

 

 

숫자 Round Cint Int
1.5 2 2 1
2.5 2 2 2
3.5 4 4 3
4.5 4 4 4
5.5 6 6 5
6.5 6 6 6
7.5 8 8 7
8.5 8 8 8
9.5 10 10 9
10.5 10 10 10

 

뭔가 규칙같은게 보이나?

 

그래 Round 이놈은 무조건 짝수로 만들고 있다. 1.6 은 2가 되고 2.6도 2가 된다.

 

당연한 얘기지만 0.5 보다 작을 때는 소숫점을 잘라버린다.

 

내가 페이징할 때 자주 쓰는 Cint 역시 Round와 동일하게 처리됐다.

 

그래서 소숫점을 잘라주는 Int를 사용하면 문제없이 내림처리가 가능하다.

 

그럼 ASP에서 반올림은 어떻게 할까? 여러가지 방법이 있겠지만,

 

Int(자연수+0.5)

 

이러면 해결된다. 간단하나?

 

그런데 왜 저렇게 처리될까 해서 포털에서 검색을 해봤더니 결과가 뙇!!

 

알다시피 Round함수는 통계함수다.

 

0.5이상일 때 무조건 반올림 처리하는 것보다, 홀수면 반올림 짝수면 내림처리를 하는게

 

통계학적으로 봤을 때 오차가 줄어든다고 한다.

Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

작업을 하다보면 텍스트가 정해진 width를 넘어가는 경우 어떻게 처리해야 하나 고민이 될 때가 있습니다. 그럴 때는 상황에 따라서 이 것들을 사용해서 해결해주면 좋을 듯 합니다.


word-break


word-break 는 말 그대로 단어를 자르는 겁니다. 기복적으로 줄이 넘어갈 때는 단어단위로 잘려서 넘어가게 되어 있습니다. 그래서 띄어 쓰기를 하지 않고 글을 쓴다면 한 단어로 인식하여서 width 를 넘어가도 줄바꿈이 되지 않습니다. 그럴 때 word-break 를 사용해주면 줄바꿈이 가능하게 됩니다.


.selector {word-break:break-all;}

위와 같은 속성을 주게되면 위의 그림의 아래 부분과 같이 단어 중간에서도 줄바꿈이 가능하게 됩니다. 위의 그림이 잘 이해가 가지 않는다면 이 그림을 보시면 단번에 이해가 가실 것 입니다.


단어의 중간에서 줄바꿈이 되는 효과입니다. 이 것의 반대 속성은 nowrap, keep-all 등을 주면 된다는데 제가 실험해본 결과 잘 안되는 것 같습니다. 그래서 이번에 같이 소개할 white-space 를 사용하시면 됩니다.

white-space


white-space는 여러가지 값이 있는데, 정리를 해보자면 이렇습니다.

inherit 말그대로 상속 받는 것
normal 일반적인 것, default
nowrap 줄바꿈을 하지 않는다
pre <pre>태그와 같은 기능, 마크업에서 앤터로 줄바꿈 한것 만 적용이 되고 넘어가는 것에는 줄바꿈 하지 않는다
pre-line 마크업에서 줄바꿈 한 것이 적용 되면서 width를 넘어가는 텍스트도 자동으로 줄바꿈이 된다
pre-wrap pre-line 과 비슷

말로 길게 설명해 무엇합니까? 그렇다면 눈으로 확인해 봅시다.

HTML 마크업은 다음과 같이 했습니다. 줄바꿈은 왼쪽에 보이는 라인넘버에서 알 수 있듯이 2번 하였습니다. 다시말해 단락이 3개라는 뜻 입니다. 스타일은  넓이를 400px 을 주고 사방으로 padding 을 10px 씩 주었습니다.


일반적으로 랜더링하면 단어 단위로 줄바꿈이 된 형태로 나오게 되는데 여기에서 속서을 하나씩 주면 기능을 한 눈에 알 수 있습니다.

우선 inherit 은 상속되는 것이므로 넘어가고 (IE8에는 인식을 못한다고 합니다.) normal 은 기본인데 Original 과 동일하다고 보시면 됩니다. nowrap 속성을 주게되면 줄바꿈이 되지 않습니다.


그리고 pre 속성은 <pre> 태그와 동일한 역할을 합니다. 마크업에서 줄바꿈 (앤터) 해준 것을 적용해주는 것인데요, 여기서는 두번 줄바꿈을 하였기 때문에 3 단락으로 나뉘어져 있습니다. 그리고 width 를 넘어가는 텍스틑는 줄바꿈이 되지 않습니다.


다음으로 pre-line 속성을 주게되면 pre를 준 것과 같이 마크업에서 줄바꿈 한 부분에서도 줄바꿈이 되고, width 값을 넘어가는 부분에 대하여 줄바꿈이 됩니다.


per-wrap 속성을 주면 pre-line 을 적용해준 것과 동일한 결과가 나오는데 구체적인 차이는 잘 모르겠습니다. 자세한 내용은 w3cschool 을 참조해 보시는 것이 더 좋을 듯 합니다.

'IT' 카테고리의 다른 글

IIS7 에서 asp 호스팅시 Response 버퍼 제한 초과됨 오류  (0) 2014.06.27
코딩 표준 (HTML/ASP/JavaScript)  (0) 2014.01.02
IIS에 확장자를 등록하자.  (0) 2013.10.22
CSS Margin padding  (0) 2013.09.15
PNG 무손실 압축  (0) 2013.08.28
Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

잘 되던 Active x plugin이 동작하지 않았다.


젠장 IIS에서 확장자 등록하면 되는건데


엄청 헤맸네..

'IT' 카테고리의 다른 글

코딩 표준 (HTML/ASP/JavaScript)  (0) 2014.01.02
[CSS] 텍스트 줄바꿈 처리 word-break, white-space  (0) 2013.10.24
CSS Margin padding  (0) 2013.09.15
PNG 무손실 압축  (0) 2013.08.28
무료 웹 템플릿  (0) 2013.08.07
Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

자동으로 증가되는 IDENTITY(시퀀스)의 값을 변경하기 위한 쿼리.

테이블에 있는 데이터를 삭제해도 IDENTITY의 값은 변경안됨. 


아래의 쿼리를 실행하면 현재 IDENTITY의 값을 확인할 수 있다.(변경되지 않음)

DBCC CHECKIDENT(테이블명, NORESEED)



아래의 쿼리를 실행하면 IDENTITY의 값이 0로 초기화됨.

insert되면 1부터 시작.

DBCC CHECKIDENT(테이블명, RESEED, 0)


아래의 쿼리를 실행하면 IDENTITY의 값이 현재 컬럼보다 작을 경우 값을 현재 컬럼과 같도록 변경함.

DBCC CHECKIDENT(테이블명, RESEED)


Posted by 당양부부34

2013. 9. 15. 08:24 IT

CSS Margin padding

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

마진, 패딩 초기화 : * { margin : 0; padding: 0; }


Margin : 2개 이상의 엘리먼트의 마진이 겹칠 때 세로 방향 마진은 큰 마진값으로 합쳐진다.


             단, 인라인 레벨 박스, 플로팅이 지정된 문서, absolute는 마진 합쳐짐 현상이 발생하지 않는다.

'IT' 카테고리의 다른 글

[CSS] 텍스트 줄바꿈 처리 word-break, white-space  (0) 2013.10.24
IIS에 확장자를 등록하자.  (0) 2013.10.22
PNG 무손실 압축  (0) 2013.08.28
무료 웹 템플릿  (0) 2013.08.07
무료 웹디자인 : OSWD  (0) 2013.08.07
Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

ASP Get Parameter 작업 중 한글 데이터가 문제가 되는 경우가 있다.

그럴 때, 인코딩을 이용하면 된다.

URLEncode는 ASP에서 제공하는 것 쓰고

URLdecode는 사용자 함수를 쓰자..

왜?

한글은 2Byte문자니까.. 

그리고 Server.URLEncode로 Encoding시 % 접두사가 붙은 형태의 1Byte 문자로 인식하니까..

  

<%
Dim encodeTest : encodeTest = Server.URLencode("한글")
Dim decodeTest : decodeTest = URLDecode(encodeTest)

 

Response.Write encodeTest + "=" + decodeTest

 

'### Decode 함수 시작 ###

 

Function URLDecode(Expression)

 Dim strSource, strTemp, strResult, strchr
 Dim lngPos, AddNum, IFKor
 strSource = Replace(Expression, "+", " ")

 For lngPos = 1 To Len(strSource)
  AddNum = 2
  strTemp = Mid(strSource, lngPos, 1)
  If strTemp = "%" Then
   If lngPos + AddNum < Len(strSource) + 1 Then
    strchr = CInt("&H" & Mid(strSource, lngPos + 1, AddNum))
    If strchr > 130 Then 
     AddNum = 5
     IFKor  = Mid(strSource, lngPos + 1, AddNum)
     IFKor  = Replace(IFKor, "%", "")
     strchr = CInt("&H" & IFKor )
    End If
    strResult = strResult & Chr(strchr)
    lngPos = lngPos + AddNum
   End If
  Else
   strResult = strResult & strTemp
  End If
 Next

 URLDecode = strResult

End Function  

 

'### Decode 함수 끝 ###
%>

[출처] [ASP] URLencode, URLdecode|작성자 셰프

Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

mouseover와 mouseenter의 차이점

 

mouseover는 직접 이벤트를 걸지 않은 자식요소에 마우스 포인터가 와도 발생.

mouseenter는 오로지 자기 자신에게 마우스 포인터가 와야만 발생.

'IT > jquery_javascript' 카테고리의 다른 글

jQuery Select Box  (0) 2014.02.10
‘제다이급’ 자바스크립트 고수들이 전하는 6가지 개발팁  (0) 2013.11.28
jquery select selector  (0) 2013.08.23
DOM Script 정리  (0) 2013.08.21
jquery 문자열 함수  (0) 2013.08.20
Posted by 당양부부34

2013. 8. 28. 13:13 IT

PNG 무손실 압축

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

tinypng.org

Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

1. jQuery로 선택된 값 읽기

$("#selectBoxoption:selected").val();

$("select[name=name]").val();

2. jQuery로 선택된 내용 읽기

$("#selectBoxoption:selected").text();

3. 선택된 위치

var index =$("#test option").index($("#test option:selected"));

4. Addoptions to the end of a select

$("#selectBox").append("<optionvalue='1'>Apples</option>");

$("#selectBox").append("<optionvalue='2'>After Apples</option>");

5. Addoptions to the start of a select

$("#selectBox").prepend("<optionvalue='0'>Before Apples</option>");

6. Replaceall the options with new options

$("#selectBox").html("<optionvalue='1'>Some oranges</option><option value='2'>MoreOranges</option>");

7. Replaceitems at a certain index

$("#selectBoxoption:eq(1)").replaceWith("<option value='2'>Someapples</option>");

$("#selectBoxoption:eq(2)").replaceWith("<option value='3'>Somebananas</option>");

8. 지정된 index값으로 select 하기

$("#selectBoxoption:eq(2)").attr("selected", "selected");

9. text 값으로 select 하기

$("#selectBox").val("Someoranges").attr("selected", "selected");

10. value값으로 select 하기

$("#selectBox").val("2");

11. 지정된 인덱스값의 item 삭제

$("#selectBoxoption:eq(0)").remove();

12. 첫번째 item 삭제

$("#selectBoxoption:first").remove();

13. 마지막 item 삭제

$("#selectBoxoption:last").remove();

14. 선택된 옵션의 text 구하기

alert(!$("#selectBoxoption:selected").text());

15. 선택된 옵션의 value 구하기

alert(!$("#selectBoxoption:selected").val());

16. 선택된 옵션 index 구하기

alert(!$("#selectBoxoption").index($("#selectBox option:selected")));

17. SelecBox 아이템 갯수 구하기

alert(!$("#selectBoxoption").size());

18. 선택된 옵션 앞의 아이템 갯수

alert(!$("#selectBoxoption:selected").prevAl!l().size());

19. 선택된 옵션 후의 아이템 갯수

alert(!$("#selectBoxoption:selected").nextAll().size());

20. Insertan item in after a particular position

$("#selectBoxoption:eq(0)").after("<option value='4'>Somepears</option>");

21. Insertan item in before a particular position

$("#selectBoxoption:eq(3)").before("<option value='5'>Someapricots</option>");

22. Gettingvalues when item is selected

$("#selectBox").change(function(){

alert(!$(this).val());

alert(!$(this).children("option:selected").text());

});


Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

자바스크립트 DOM Script
– HTML 또는 XHTML 문서에서 모든 엘리먼트는 객체 입니다.
– DOM에서 제공하는 API를 제어하여 이러한 객체들에 접근하는 것이 가능하며,
콘트롤하는것이 가능합니다.

※네이티브객체 : 자바스크립트내에 미리 만들어진 객체
ex) Date, Array, Math….
호스트객체 : 자바스크립트 실행환경에서 만들어진 객체
ex) 웹브라우저에서 제공하는 객체
폼(form), 이미지(image), 요소(element)
1. node(노드) : 어떤 연결망에서 특정지점과 지점을 연결하는 것]
(1)element node – <body>, <p>, <ul>….
(2)text node – 웹문서에서 내용에 해당하는 부분
<p>이부분이 텍스트노드</p>
(3)attribute node – <p title=”이부분이 속성노드”>aaaaaaaaaaaaaa</p>

DOM 코어 API
– getElementById
– getElementsByTagName
– getAttribute
– setAttribute
– …등
DOM을 지원하는 모든 프로그래밍 언어에서 사용가능함.

HTML-DOM
-(x)HTML 문서에 쓰인 DOM을 이용할때 사용할 수 있는 프로퍼티
ex) form 객체 제공
var form = document.getElementsByTagName(“form”);
= document.form;
var src = element.getAttribute(“src”);
=element.src;
element.setAttribute(“src”, url)
=element.src = url;

getElementById(“_ID”)
– document 와 함께 사용한다.
– 문서 구조에서 id 속성값이 _ID 인 엘레먼트객체를 리턴한다.
ex)document.getElementBy(“_ID”);

getElementsByTagName(“tag”)
– 해당 객체의 자식노드에서 특정 태그(tag)를 사용하는 element들을 배열로 리턴함
ex)element.getElementsByTagNmae(“tag”);

getAttribute()
– object.getAttribute(“attribute”);
Document객체를 사용할 수 없고, 각 요소 객체에서만 동작함.

setAttribute()
-object.setAttribute(“attribute”, value);
document객체를 사용할 수 없고, 각 요소객체에서만 동작함.

HTML DOM를 사용해서 아래와 같이 속성을 읽고 설정 할 수 있습니다.
ex) element.value = “new value”;
소스의 길이가 짧고 가단하다는 장점이 있지만, 폼, 이미지등의 일부요소에서만 동작합니다.

DOM 코어 API를 사용하길 추천합니다.

childNodes
– 해당 요소의 모든 자식요소를 포함하는 배열 리턴함.
– 요소노드뿐만 아니라 모든 형식의 노드를 포함하는 배열 리턴
ex) 태그를 가져오는 방법
1. var body = document.getElementsByTagName(“body”)[0];
2. document.body;

body.childNodes

nodeType;
– node.nodeType;
ex)var typeStr = body.nodeType;
#요소노드의 nodeType 값 : 1
#속성노드의 nodeType 값 : 2
#텍스트노드의 nodeType 값 : 3

nodeName
– 어떤 요소인지 확인가능함 (참고로 저는 디버깅 할때 주로 써요)
– 대문자로 표시 해야함.
– if(element.nodeName == “IMG”);

nodeValue
– 텍스트노드의 값을 바꾸려면 nodeValue를 사용
– node의 값을 가져오거나, 설정 할 수 있다

주의
1) 텍스트는 요소의 첫번째 자식요소이다.
ex)
var obj = document.getElementById(“xxx”)
alert(obj.nodeValue); //null출력
alert(obj.childNodes[0].nodeValue);

firstChild
-node.firstChild
=node.childNodes[0]

lastChild
-node.childNodes[node.childNodes.length-1];

createElement
– 새 요소를 생성한다.
– 노드트리에 새로운 요소를 추가한다.
ex)var newElement = document.createElement(“p”) //

요소생성

removeChild
– parent.removeChild(삭제객체);
–> 리턴 : 삭제된 객체를 리턴한다.

ex) var removeElement = 부모엘리먼트.removeChild(삭제할 객체);

appendChild
– parent.appendChild(child)
ex) var testDIV = document.getElementById(“testDIV”);
var para = document.createElement(“p”);
testDIV.appendChild(para);

createTextNode
-텍스트 노드를 생성
ex) var txt = document.createTextNode(“HELLO”);
para.appendChild(txt);

InserBefore
– parantElement.insertBefore(newElement, targetElement);

InsertAfter
– targetElement의 뒤에 newElement를 추가한다.
– DOM API 가 아님~

fucntion inserAfter(newElement , targetElemnt){
var parent = targetElement.parenNode;
if(parent.lastChild == targetElement){
parent.appendChild(newElement);
}else{
parent.insertBefore(newElement, targetElement.nextSibling;
}
}

parentNode
– element의 부모노드를 리턴한다
ex) var parentElement = element.parentNode;

'IT > jquery_javascript' 카테고리의 다른 글

mouseover 와 mouseenter 의 차이점  (0) 2013.09.03
jquery select selector  (0) 2013.08.23
jquery 문자열 함수  (0) 2013.08.20
[jquery] Input Select  (0) 2013.04.08
jquery : input  (0) 2013.04.05
Posted by 당양부부34

블로그 이미지
주요 토렌트를 블로깅하고 있습니다. 토렌트 순위 등은 다른 사이트를 찾아보세요. 주요 웹툰 순위도 게재했어요 경제를 좋아하는 일산의 행복한 프로그래머입니다.
당양부부34
Yesterday
Today
Total

달력

 « |  » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함