IN cmd
>mode con cols=80 lines=50

'c# 언어' 카테고리의 다른 글

basic 3*3 frm hexa,cs,code  (0) 2023.07.13
Xamarin 1.1 자마린 소개,교육자료  (0) 2023.07.10
REDIS 필수정리  (0) 2022.08.31
객체 지향(Object oriented) 프로그래밍  (0) 2022.06.17
tris::common_chek(int direction)::final  (0) 2022.04.18



/*
public int CompareTo (Version? value);

매개 변수
현재 Version 개체와 비교할 Version 개체이거나, null입니다.

반환 값 의미
0보다 작음 현재 Version 개체가 value 이전의 버전입니다.
0 현재 Version 개체가 value와 같은 버전입니다.
0보다 큼 현재 Version 개체가 value 이후의 버전이거나 value이 null입니다.
*/
/*
설명

이 메서드는 인터페이스를 System.IComparable<T> 구현하고 매개 변수의 받은 편지함을 value 해제할 필요가 없으므로 메서드보다 CompareTo 약간 더 잘 수행합니다.
중요도를 줄이는 의 구성 요소는 Version 주, 부, 빌드 및 수정입니다. 
알 수 없는 구성 요소는 알려진 구성 요소보다 오래된 것으로 간주됩니다. 
예를 들면 다음과 같습니다.

버전 1.1은 버전 1.1.0보다 이전 버전입니다.
버전 1.1은 버전 1.1.1보다 이전 버전입니다.
버전 1.1은 버전 1.1.2.3보다 이전 버전입니다.
버전 1.1.2는 버전 1.1.2.4보다 이전 버전입니다.
버전 1.2.5는 버전 1.2.3.4보다 최신 버전입니다.
*/

using System;

class Program
{
    public static void Main()
    {
        VersionManage nm = new VersionManage();
nm.running();
    }
}
class VersionManage
{
    public void running()
    {
        Version serverVersion = new Version("23.06.07.01");
        Version localVersion = new Version("10.1.20");

if (serverVersion.CompareTo((object)localVersion) > 0)
{
    Console.WriteLine("UPDATE NEEDED!!");
}
else
{
    Console.WriteLine("SAME!!");
}
    }
}

/*
C:\Users\xterm\Downloads>aa12
UPDATE NEEDED!!
*/

    

APMFileDownLoadDlg.cpp
0.03MB
APMFileDownLoad.cpp
0.00MB
MM.cs
0.00MB


/*
텍스트파일을 모두 대문자로 바꾸어서 문자열을 찾을때에,ㅡㅡㅡㅡㅡㅡ
*/


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data;
using System.ComponentModel;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Timers;
using System.Diagnostics;
using System.Xml.XPath;
using System.Reflection;
using System.Collections;
using System.Xml;
using System.IO;
using System.Net;


class Program
{
    public static void Main()
    {
        MMMMMMMM nm = new MMMMMMMM();
nm.running();
    }
}
class MMMMMMMM
{    
    void ____read_txt(string filename)
    {
        int kk, ii;
        string mmmText = "";
        string mmmsubText = "";
        string ____findStr = "SERVERINFO.XML";

        mmmText = Syste m.IO.File.ReadAllText(filename); 
        mmmText = mmmText.ToUpper();
        Console.WriteLine(mmmText);
    }
    public void running()
    {
        int kk;

        string folderName = Syste m.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName); 
        string[] files = Directory.GetFiles(folderName, "*", SearchOption.AllDirectories);

        for(kk=0; kk<files.Length; kk++)
        {
            Console.WriteLine(files[kk]);

            if(files[kk].IndexOf(".cpp") >=0)
            {
                ____read_txt(files[kk]);
            }
        }
    }
}




/*
기존에 사용해왔던 방식대로, 구조체를 구성한다면, 아무런 문제없이 변수를 사용할수 있다.
즉 public만 사용해서, 코드를 구상한다고 생각하면, 기존처럼 코딩해도 아무런 문제가 없음,,,,,,,,,,,
그러나, 변수에 직접접근을 허락하지 않게 하려면, private, public의 기법을 사용해서 아래와 같이 접근할수 있다. 
*/

/*
private, public을 사용하면 좋은예제는, 
주식에서 삼성전자 현재가격을 내부  private 변수에 세팅하고, public 변수를 통해서 삼성전자현재 가격을 얻는다면
아주좋은 케이스일것 같다.
삼성전자현재가 가격은 마음대로 누구나가 셋팅할수 없는 변수라고 생각하면 된다.
웹페이지등에서 조회시에 public 변수로 조회하면 적당할듯하다.
*/

namespace TailCommon{
public class StockHyunPriceSearch
{
    private static StockHyunPriceSearch hyun;
    private StockHyunPriceSearch() { }
    public static StockHyunPriceSearch GetInstance
    {
        get
        {
            if (hyun == null)
            hyun = new StockHyunPriceSearch();
            return hyun;
        }
    }
    private IntPtr hyunValue;
    public IntPtr HyunValue
    {
        get { return hyunValue; }
    }
    public IntPtr SecurityNeededHyunValue
    {
        set { hyunValue = value; }
    }
}}

ex)
using namespace & DLL참조를해서 사용시에, 아래와 같은 코드는 허용될까(?),  곰곰히 한번 생각해보자.

using TailCommon;

TAILMemory.GetInstance.tailHandle = 10; (?)
Console.WriteLine(TAILMemory.GetInstance.tailHandle); (?)

/*
값의 입력은 private로
값의 조회는 public 으로,ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
*/



Remove item from Dropdownitems in a context menustrip(?)

void DeleteItem()
{
    foreach (ToolStripItem oSubitem in ListMenuItem.DropDownItems)
    {
        if (oSubitem is ToolStripMenuItem)
        {
            if (oSubitem.Text.StartsWith("Show"))
            {
                ListMenuItem.DropDownItems.RemoveAt(1);
            }
       }
   }
}

//Specific.FILE. 1 Line.Read & 1 Line Append Write,,,,,,


using System;
using System.IO;
using System.Text;

class Program
{
    public static void Main(string[] args)
    {
        if(args.Length == 1) 
        {
            RadioFileManage nm = new RadioFileManage();
            nm.open_radio_music(args[0]);
         }
    }
}       
class RadioFileManage
{
    public void open_radio_music(string fileName)
    {
            if (File.Exists(fileName))
            {
                using (StreamReader reader = new StreamReader(fileName, Encoding.Default))
                {
                    string line;
                    while ((line = reader.ReadLine()) != null)
                    {
                        int kk = line.IndexOf("2부");
                        if( !( kk >= 0))
                        {
                            if (true)
                            {
                            string ____path = @"default_" + fileName;
                            using (StreamWriter sw = File.AppendText(____path))
                            {
                                sw.WriteLine(line);
                            }
                       }
                }
            }
        }
    }
}


WindowsBase.dll/PresentationFramework.DLL/PresentationCore.DLL
WindowsBase.dll : WPF를 위한 기본 서비스 제공.
PresentationCore.dll
PresentationFramework.dll : using System.Windows.Controls

1. WPF개요

Windows Presentation Foundation
MS의 UI, 미디어 및 문서가 통합된 프로그래밍 모델(닷넷 3.0에 소개)
브라우저와 데스크톱에서 동시에 실행될 수 있는 프로그래밍 모델 제공.
Markup(XAML)과 코드 프로그래밍을 동시에 지원한다.
디자인이 가능한 프로그램 모델을 개발하였다. (Blend 프로그램으로 가능)
WPF는 DirectX를 Application UI에 통합했다.

2. WPF Architecture

 PresentationFramework
 PresentationCore
 Common Language Runtime

milcore 
 User32 DirectX 
 Kernel


PresentationFramework, PresentationCore : 순수한 관리코드로만 구성. 서로 분리되어 있음.
PresentationCore : API형태의 라이브러리, 컴포넌트 형태


WPF관련 어셈블리
WindowsBase.dll : WPF를 위한 기본 서비스 제공.
  DispatcherObject 
    Dispatcher : 복수의 작업을 대기시킬 수 있는 큐.
    namespace : System.Windows.Threading
    ※ STA : 실행 context에 하나의 쓰레드만 존재.
    Frame Queueing 가능 : Invoke(), BeginInvoke()

  DependencyObject
    WPF의 속성 시스템의 지원을 받기 위해 필요.
    프레임 수준의 바인딩 종속성, 손쉬운 데이터 공유 등을 객체 인스턴스에 저장하지 않고 가능.
    데이터 구조 중심 프로그래밍(XAML에서 이벤트와 액션까지 모델화하고 선언적으로 처리)

PresentationCore.dll
  Visual
    랜더링을 담당하는 객체. 컨트롤 클래스의 시작점. micore 컴포넌트와 밀접한 관련.
    WPF는 멀리 있는 객체를 먼저 그리고 가까이 있는 객체를 나중에 그린다.
    주요 기능 : 출력 표시. 변환, 클리핑, 적중 테스트, 경계 상자 계산.
    입출력, 이벤트 레이아웃 X

  UIElement
    Layout, 입력 및 이벤트 등의 핵심 기능을 담당.
    Measure : 크기를 정의, Arrange : 위치와 정렬. (2단계 레이아웃)
    입력과 Command의 분리 가능. -> CommandBinding으로 관리 가능.

PresentationFramework.dll
  FrameworkElement
    WPF 프레임워크 수준 요소 클래스와 UIElement 서비스를 연결해 주는 지점.
    레이아웃 시스템 정의 : 핵심 기능 손상 없이 새로운 레이아웃을 정의 가능.
    논리적 트리 : markup을 이용해 구조를 표현할 때 이용.
    객체 수명 이벤트 : Initialized, Loaded, Unloaded 세가지 지원.
    데이터 바인딩 및 동적 리소스 참조 지원 : Expression으로 바인딩 -> Framework는 해석.
    스타일 : 컨트롤의 외관을 변형하기 위해 사용.
    에니메이션 지원 

  Control
    탬플릿 지원 기능 : UI를 편리하게 수정 가능. 속성, 이벤트, Command, Template 기능 지원.
     XAML을 통한 탬플릿 정의 -> 랜더링 시 스트립트를 읽어 들여 반영

+ Recent posts