StreamWriter.Write(Line) ..

.Net 2008. 10. 14. 12:35 posted by 무명시인
오늘 파일에 간단한 내용을 담는 페이지 작성중..

파일권한 에러가 발생을 하더라..

그이유는..

페이지와 내용이 입력될 파일이 같은 폴더일 경우..

보안상의 문제로..

권한 에러가 발생한다..

그러므로..

폴더를 다르게 하면 된다..

오늘의 팁 : 스트림류의 코드 사용시, 페이지와 해당 파일을 같은 폴더에 두지 마라

StreamWriter 클래스에 대한 고찰..

.Net 2008. 10. 14. 12:33 posted by 무명시인
http://msdn.microsoft.com/ko-kr/library/system.io.streamwriter(VS.80).aspx


.NET Framework 클래스 라이브러리
StreamWriter 클래스

TextWriter를 구현하여 특정 인코딩의 스트림에 문자를 씁니다.

네임스페이스: System.IO
어셈블리: mscorlib(mscorlib.dll)

C#
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public class StreamWriter : TextWriter

StreamWriter는 특정 인코딩의 문자 출력을 위해 설계된 반면 Stream에서 파생된 클래스는 바이트 입력 및 출력을 위해 설계되었습니다.

다르게 지정되지 않은 경우 StreamWriter는 기본적으로 UTF8Encoding의 인스턴스를 사용합니다. UTF8Encoding의 이 인스턴스가 생성되어 Encoding.GetPreamble 메서드는 UTF-8로 작성된 유니코드 바이트 순서 표시를 반환합니다. 기존의 스트림에 추가하지 않는 경우 인코딩의 프리앰블이 스트림에 추가됩니다. 즉, StreamWriter로 만드는 텍스트 파일 맨 처음에는 세 개의 바이트 순서 표시가 나타납니다. UTF-8은 모든 유니코드 문자를 정확하게 처리하고 운영 체제의 지역화된 버전에 일관성 있는 결과를 제공합니다.

기본적으로 StreamWriter는 스레드로부터 안전하지 않습니다. 스레드로부터 안전한 래퍼에 대한 자세한 내용은 TextWriter.Synchronized를 참조하십시오.


 

.NET Framework 개발자 가이드
방법: 파일에 텍스트 쓰기

다음 코드 예제에서는 텍스트 파일에 텍스트를 쓰는 방법을 보여 줍니다.

첫 번째 예제에서는 기존 파일에 텍스트를 추가하는 방법을 보여 주고 두 번째 예제에서는 새 텍스트 파일을 만들고 이 파일에 문자열을 쓰는 방법을 보여 줍니다. 비슷한 기능을 WriteAllText 메서드에서 제공할 수도 있습니다.


using System;
using System.IO;

class Test 
{
    public static void Main() 
    {
        // Create an instance of StreamWriter to write text to a file.
        // The using statement also closes the StreamWriter.
        using (StreamWriter sw = new StreamWriter("TestFile.txt")) 
        {
            // Add some text to the file.
            sw.Write("This is the ");
            sw.WriteLine("header for the file.");
            sw.WriteLine("-------------------");
            // Arbitrary objects can also be written to the file.
            sw.Write("The date is: ");
            sw.WriteLine(DateTime.Now);
        }
    }
}


[js] replace

Js & Css 2008. 10. 13. 10:16 posted by 무명시인


Tip : 짧아쒸꾸립뚜에서 replace 함수는 한번만 바꾼다.

그래서~~ 요렇고롬 하면.. 다 바꾸지롱..

Expresstion : replace(/?/g, "");

--> 모든 ? 를 공백으로 바꾸라. 

예)
var str = "qwer_1234";
alert(str.replace(/qwer_/g, ""));


결과 : 1234

그런데 이런거는 안되는거야~~
이거는 글쌔...
다시 생각해보기로 하자..

var str = "1|2|3|4|5|6|7|8|9|0";
alert(str.replace(/|/g, ""));

 

오라클 다운로드 경로

About DataBase 2008. 10. 10. 11:17 posted by 무명시인

ㅇ 라클이 9 아이 다운로드


http://www.oracle.com/technology/software/products/oracle9i/htdocs/winsoft.html

ㅇ 라클이 Sql Developer 다운로드

http://www.oracle.com/technology/software/products/sql/index.html

라클아 나를 기다려 줄래??~~

ICallbackEventHandler 인터페이스를 상속받아..

디비에 있는 값을 조회하는 간단한 비동기 예제를 작성해 보겠습니다~~ 꺄아~~


1. *.aspx 페위지 에요~~

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test04.aspx.cs" Inherits="_21_CallBackEventReference_Test04" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>CallBackEvent - DB</title>
   
     <script type="text/jscript" language="javascript">
    function CallServerData()
    {
        var inputValue = document.getElementById("txtMcode").value;
        CallServer(inputValue, "");   
    }
   
    function ReceiveServerData(returnValue)
    {
        document.getElementById("divR").innerHTML =  returnValue;  
    }
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="txtMcode" runat="server"></asp:TextBox>
            <button onclick="CallServerData()">
                [js확인]</button>
            <asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">[cs확인]</asp:LinkButton>
            <div runat="server" id="divR" style="color:Red;">
            </div>
        </div>
    </form>
</body>
</html>

------------------------------------------------------------------------------------------------------------

1) 텍스트 박스에 아이디를 입력한다 -> 2) 디비에서 중복 확인을 하고 -> 3) div 에 결과를 출력하는 내용입니다.

CallServerData() 함수는 *.cs 에서 등록하는 콜 서버 메서드를 호출 합니다..

중요한건!! 텍스트 박스의 입력 값이 퐈랴미터로 넘어간다는 것입니다~

ReceiveServerData() 함수는 인자로 결과에 해당하는 인가를 가집니다.

그 결과값은 div 에 보여지구요~

------------------------------------------------------------------------------------------------------------

2. *.aspx.cs 페위지 에요~~

------------------------------------------------------------------------------------------------------------

public partial class _21_CallBackEventReference_Test04 : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
    private string strMcode = "";

    protected void Page_Load(object sender, EventArgs e)
    {
        string strReference = Page.ClientScript.GetCallbackEventReference(
          this                    // 해당 페이지
          , "arg"                 // 클라이언트 -> 서버 인수
          , "ReceiveServerData"   // 클라이언트 처리 함수
          , "context"             // 콜벡이 시작되기 전의 클라이언트 스크립트
          );

        //String.Format ..안된다
        string strCallBackScript = "function CallServer(arg, context)" + "{ " + strReference + "} ;";

        Page.ClientScript.RegisterClientScriptBlock(
            this.GetType()
            , "CallServer"
            , strCallBackScript
            , true);
    }
    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        string str = checkUserID(txtMcode.Text);
        this.divR.InnerHtml = str;
    }

    private string checkUserID(string strUserID)
    {
        string strR = String.Empty;
        string strQuery = String.Format("SELECT COUNT(0) FROM dbo.TB_Member WHERE MCODE = '{0}'", strUserID);

        int intResult = Convert.ToInt32(Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteScalar(
            "server=.;database=..;uid=sa;pwd=sa12wer;", CommandType.Text, strQuery));

        if (intResult == 0)
        {
            strR = strUserID + "->사용가능한 아이디";
        }
        else
        {
            strR = strUserID + "->사용사용할수없는 아이디";
        }
        return strR;
       
    }

    #region ICallbackEventHandler 멤버

    public string GetCallbackResult()
    {
        string str = checkUserID(strMcode);

        return str;
    }

    public void RaiseCallbackEvent(string eventArgument)
    {
        strMcode = eventArgument;
    }

    #endregion
}

------------------------------------------------------------------------------------------------------------

System.Web.UI.ICallbackEventHandler 인터 페이스를 상속 받습니다..

인터페이를 구현하면..

Callback 과 Result 이벤트를 작성해줍니다..

콜백은 호출시 동작,

리절트를 결과값을 반환 합니다..

그리고 디비처리 메서드..

깔끔하게 동작을 하는군요..

^^;;








http://msdn.microsoft.com/ko-kr/library/system.web.ui.icallbackeventhandler(VS.80).aspx

.NET Framework 클래스 라이브러리
ICallbackEventHandler 인터페이스

참고: 이 인터페이스는 .NET Framework 버전 2.0에서 새로 추가되었습니다.

컨트롤이 서버에 대한 콜백 이벤트 대상이 될 수 있음을 나타내는 데 사용됩니다.

네임스페이스: System.Web.UI
어셈블리: System.Web(system.web.dll)

C#
public interface ICallbackEventHandler

콜백 이벤트를 수신해야 하는 사용자 지정 컨트롤에 대해 ICallbackEventHandler 인터페이스를 구현합니다. 자세한 내용은 ASP.NET 웹 페이지에서 다시 게시하지 않는 클라이언트 콜백 구현을 참조하십시오.

ICallbackEventHandler 인터페이스를 구현하는 컨트롤의 예로는 GridView, DetailsViewTreeView 컨트롤이 있습니다. ICallbackEventHandler 인터페이스를 구현하는 컨트롤이 콜백 이벤트의 대상이 되는 경우, RaiseCallbackEvent 메서드가 호출되어 이벤트를 처리하고 이벤트 인수를 매개 변수로 전달하며 GetCallbackResult 메서드는 콜백의 결과를 반환합니다.

콜백을 수행하는 동안 데이터 소스 컨트롤에서 데이터를 검색하는 컨트롤은 이 작업을 동기적으로 또는 비동기적으로 수행할 수 있습니다. GridView, DetailsViewTreeView 같은 ASP.NET 컨트롤은 동기적으로 구현됩니다. 비동기 프로그래밍에 대한 자세한 내용은 비동기 프로그래밍 디자인 패턴을 참조하십시오.

ICallbackEventHandler 인터페이스를 구현하는 컨트롤에 의해 렌더링된 사용자 인터페이스에서 콜백 이벤트가 발생할 경우 이 이벤트의 유효성을 검사할지 여부를 지정할 수 있습니다. 이벤트의 유효성 검사는 보안을 위해 유용한 방법입니다. 그러나 성능상의 이유로 이 기능을 사용하지 않을 수 있습니다. 콜백 이벤트에 대해 이벤트 유효성 검사를 수행할지 여부를 제어하려면 @ Page 지시문의 enableEventValidation 특성이나 Web.config 파일에 있는 pages 요소(ASP.NET 설정 스키마)enableEventValidation 특성을 설정합니다. 코드에서 EnableEventValidation 속성을 설정할 경우 페이지 처리의 Page_Init 단계에서 설정합니다. 이벤트 유효성 검사의 보안 장점과 성능 저하 사이의 관계를 적절하게 조정하는 방법에 대한 자세한 내용은 고성능 ASP.NET 응용 프로그램 개발을 참조하십시오.


이상 엠수디엔 설명..
구구 절절이 길게 어려운 말 투성인데..
아즈악스 의 사돈의 팔촌 처럼..
비동기 기능을 구현 한다는 예기 이더라..
엠수 디엔을 참고 해서 다음 아티클에 간단한 예제들..

[雜物] TrackBack 에 대한 메모

雜物 2008. 10. 8. 15:18 posted by 무명시인



트랙백의 원리
트랙백의 핵심은 매우 간단합니다. 누군가의 글에 대해 자신의 블로그에 의견을 피력하면서 그 글에 대해 “당신이 쓴 글에 대해 제가 의견을 썼습니다. 당신이 관심을 가질 것 같아서 일부 내용과 함께 알려드립니다”라고 알려주는 것이 바로 트랙백입니다. 트랙백을 사용할 때와 그렇지 않을 때 어떻게 커뮤니케이션이 이루어지는지 예를 들어 보겠습니다. 


 프로토콜 명세
트랙백의 프로토콜은 매우 간단합니다. HTTP의 POST 메쏘드를 통해서 몇 가지 파라미터(매개변수)를 보내고 XML로 된 응답으로 성공, 실패 여부만 판단해주면 됩니다.

트랙백 핑 보내기
트랙백은 기본적으로 HTTP를 이용해서 보내게 됩니다. Trackback 1.0에서는 GET 메쏘드를 이용해서 보내게 되어있지만 현재 쓰이는 1.1에서는 POST 메쏘드를 이용하게 되어 있습니다. Content-Type request header와 url이란 이름의 파라미터는 필수 요소입니다. Content-Type은 항상 appli cation/x-www-form-urlencoded
이어야 하고 파라미터의 charset을 다음과 같이 추가로 지정해줄 수도 있습니다.

◆ Content-Type
application/x-www-form-urlencoded 또는 Content-Type: application/x-www-form-urlencoded; charset=EUC-KR 또는 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
POST request body로 보낼 파라미터들은 <표 1>과 같습니다. 이 트랙백 요청을 보내는 것을 ‘트랙백 핑을 보낸다’라고 합니다. 예를 들어 어떤 글이 http://www.anyblog.com/ tb.cgi/7과 같은 트랙백 URL을 가지고 있다고 한다면 다음과 같은 HTTP 요청으로 그 글에 트랙백 핑을 보낼 수 있습니다. 여기서 트랙백 URL이란 트랙백 핑을 받는 프로그램이 실행되는 URL을 말합니다.

POST /tb.cgi/7 http/1.1
Host: www.anyblog.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 96

title=hello&excerpt=trackback%20test&url=http://www.mtgear.net/archieve/xx.html&blog_name=mtgear

알다시피 HTTP의 POST 메쏘드는 request body를 통해서 파라미터를 전달하고 HTTP request에서 request body가 있을 경우 Content-Length가 request body를 지정해줘야 합니다. 여기서 보내는 사람의 블로그는 mtgear(http:// mtgear .net)이고 제목이 hello라는 글을 쓰면서 글 내용의 발췌인 ‘trackback test’를 http://www.anyblog.com/tb.cgi/7이란 트랙백 URL을 가진 글에 트랙백 핑을 보내는 것입니다. 트랙백 핑을 보낸 후 성공한 경우에는 다음과 같은 응답을 받게 됩니다.

<?xml version=”1.0” encoding=”iso-8859-1”?><response><error>0</error> </response>
실패한 경우에는 다음과 같은 응답을 받게 되고 메시지의 텍스트 요소(text element)를 통해서 오류의 원인을 알 수 있습니다.

<?xml version=”1.0” encoding=”iso-8859-1”?><response><error>1</error> <message>The error message</message></response>

 

[日記] 2008.10.14 - 곰곰곰

日記 2008. 10. 7. 17:40 posted by 무명시인


곰이 저 눈을 하고 나를 본다..

코딩을 하다 곰과 눈이 마주 쳤다..

곰은 내속을 그렇게 들여다 보고 있었다..


[js] 물어보지않고창을닫아요

Js & Css 2008. 10. 7. 17:36 posted by 무명시인
window.close();

창을 닫을때..

부모창이거나 하면 창을 닫을 건지 물어봐요~

물어보지 않게 하려면 이런 꽁수를 쓴답니다..

        //창닫을때 닫을꺼냐 물어보지 않고 창을 닫을때
        self.opener = self;
        window.close();

일종의 꽁수 같은것이죠~~

[js] moveTo / resizeto

Js & Css 2008. 10. 7. 17:32 posted by 무명시인

           <script language="JavaScript" type="text/JavaScript">
           
            var w = 1000;
            var h = 795;
            var posX = (screen.width - w) / 2;
            //var posY = (screen.height - h) / 2;
            
            var posY = 0;
           
            self.moveTo(posX,posY);
            self.resizeTo(1025,screen.availHeight);
           
            location.href="#hearon";           
            
            </script>

새창을 띄울때..

사이즈 재조정..

그리고 원하는 위치로 고고씽~~