Q&A

  • 버전비교를 하려고 하는데..
지금 서버에 저장된 화일과 클라이언트에 있는 화일의 버전을 비교하여 오토 업로드를 하려고 하는데 잘 않되내요!

버전비교를 어떻게 어떤방식으로 해야 할지...



아님 다른 좋은 비교 방법이 있는지...

알고계신분 답변 바랍니다.



1  COMMENTS
  • Profile
    혀노 2000.07.27 01:58
    저도 이런 비슷하게 네트웍으로 연결된 PC에서 해본적이 있거든요.

    그래서 관련된 질문을 올린적이 있거든요,,,

    그때 하영재님이 답변주신거 아래 적어놓을게요,,참고되시길~

    =============================================================

    하영재님 답변



    가장 간편한 방법은요... ^^

    윈도우에서 제공하는 WinInet SDK를 이용해서 FTP 서버나 Web 서버에

    접속해서 해당하는 파일만 다운 받아 오는겁니다.

    이런 FTP등의 서버를 이용하는 것이 간편하고요... 그러기 싫으심

    일일이 서버를 만들어 주셔야 겠지요?



    저도 비슷한 일을 하려고 했었는데요... 일단은 모든 설명을 드릴 순

    없으니 방법만 간단히 나열해 보겠습니다.



    먼저 새로운 버젼이 만들어 지면 해당 파일들을 서버의 특정 위치에

    복사를 해 넣습니다. 그렇게 하신 후 파일들의 목록과 버젼 정보가

    기록된 간단한 Text 파일을 함께 첨부해 둡니다.

    예를 들면... UpgradeInfo.txt등으로요... 형식은 자유롭게 하셔도

    되지만 파싱하기 귀찮으니 INI 파일로 하시는게 좋죠...



    [Version Info]

    LastCompiled01=2000-01-21



    [Files]

    01=WP001_P.exe

    02=sirius.exe

    ...



    이런식으로 저장을 해 놓는겁니다.

    그럼 클라이언트는 매번 재 시작시 마다 해당 서버의 특정 디렉토리에

    접근을 해서 UpgradeInfo.txt 파일만 받아 본 후... 자신의 버젼과 다른지

    의 여부를 확인한 후에... Files 항목에 등록된 녀석들만 다운 받아서

    업데이트를 하면 되겠지요...

    단, 클라이언트가 업그레이드를 하려면 자기 자신을 죽여야 하는등의

    문제가 있으므로... ^^



    별도의 Upgrade 전용 실행파일을 하나 만드셔서 이놈이 모든일을 전담

    하도록 해 주시면 간단할겁니다.

    윈도우 Temp 디렉토리에 다운 받은 후 클라이언트가 실행되어 있으면

    종료하고 업그레이드 중이란 메시지를 출력한 후... ^^

    지울거 지우고 복사할 거 복사하고 자신도 장렬히 산화를 하면 되겠지요... ^^



    위에서 WinInet SDK를 이용하시라고 했는데요... FTP 컴포넌트 등을

    이용하셔도 무방합니다만... WinInet SDK를 이용하시면...

    제 생각에 30줄 미만의 코딩으로 해결이 가능하시리라 생각됩니다.

    해당하는 API 함수들은 델파이 헬프엔 없고요.. ^^

    WinInet.pas에 모두 들어있습니다. 참고해 보세요...

    참고적으로 사용되는 함수들의 순서를 대충 나열해 보겠습니다.

    (FTP를 이용해서 파일을 가져오는 경우입니다.)



    1) InternetOpen

    2) InternetConnect

    3) FTPSetCurrentDirectory (파일이 있는 디렉토리로 이동)

    4) FTPGetFile (파일 수신)



    위와 같이 4개 정도의 함수만 이용하셔도 무방하실듯... ^^



    자동 패치나 업그레이드에 대해 질문을 하시는 분들이 많으셔서..

    자동 업그레이드에 관한 강좌를 준비중입니다.

    (언제라곤 확답 못드림... ^^)

    그럼..

    =====================================

    김영대님 답변



    다운받는 통신 모듈은 제 홈페이지(http://myhome.shinbiro.com/~cozykyd/index.htm)에 있고요

    이런 시스템을 구현하는 방법은 각각의 PC에 INI파일을 두어서

    최근에 다운받은 각각의 프로그램들의 버전을 가지고 있습니다

    DB에는 또한 각각의 프로그램의 현재 버전을 가지고 있고요



    각 개인마다 프로그램의 사용권한이 틀리므로 메뉴 접속시

    사용자가 가지고 있는 PC의 INI파일속의 프로그램들의 버전과

    DB에 저장되어 있는 프로그램들의 버전이 바뀐 프로그램들만

    추려내서 일괄로 다운받습니다.

    =============================================================

    문형록 wrote:

    > 지금 서버에 저장된 화일과 클라이언트에 있는 화일의 버전을 비교하여 오토 업로드를 하려고 하는데 잘 않되내요!

    > 버전비교를 어떻게 어떤방식으로 해야 할지...

    >

    > 아님 다른 좋은 비교 방법이 있는지...

    > 알고계신분 답변 바랍니다.

    >