반응형

 

 

 

파싱해온 문자열에 double형 값이 4개가 들어있는데

콤마로 이루어진 문자열에서 각각의 숫자를 꺼내보고 싶어 찾아본 방법

 

※콤마 뿐 아니라 공백, 특정 단어를 사용하여 파싱하는 방법도 함께 기록해봄

 

C# 문자열 파싱

 

과정

1. 특정 문자를 이용한 문자열 자르기

2. 배열에 잘라둔 문자열 넣기

3. 필요한 위치의 문자 형변환

 

 

 

 

아래 예시코드는 공백을 기준으로 숫자(처럼 보이지만 문자열임)를 잘라낼수있다

string textBuff = "-1.123    4.234  34.12  126.4  99      22";

double[] result = textBuff
    .Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
    .Select(s => double.Parse(s))
    .ToArray();

double x = result[0];
//    ...
double k = result[5];

 

람다 함수가 낯설다면 아래의 방법을 사용하자

 

근데 람다를 이용한 방법이 메모리 효율을 엄청 늘려준다고 하니

람다를 익혀서 위의 방식을 사용하는게 훨씬 이득일듯

 

string textBuff = "-1.123    4.234  34.12  126.4  99      22";

string[] result = textBuff.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

double x = double.Parse(result[0]);
//    ...
double k = double.Parse(result[5]);

 

 

만약 파싱하려는 문자열이 콤마 , (comma) 를 기준으로 나열되어 있다면

Split 함수의 ' ' 부분을 ','로 바꾸어 사용하면 된다

 

 

나의 경우는 마진 값을 string으로 받아져서 콤마를 기준으로 Top 값을 갖고오기 위해 문자열을 잘라보았다

Marin은 left, top, right, bottom 이므로

여기서 내가 추출해야할 Top은 2번째 값이라 MarginResult[1] 값을 형변환 해주면 끝

 

//Margin = (10,50,0,100)
string MarginStr = Margin.ToString();
string[] MarginResult = MarginStr.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

 

 

문자열에서 가져온 숫자를 int형으로 바꾸어 사용하고 싶다면

//double x = double.Parse(result[0]);

int x = int.Parse(result[0]);

위의 형태로 선언하면 된다

 

 

 

 

참고 :

문자열 파싱

https://stackoverflow.com/questions/1406129/parse-multiple-doubles-from-string-in-c-sharp

 

Parse multiple doubles from string in C#

I have a string that contains a known number of double values. What's the cleanest way (via C#) to parse the string and plug the results into matching scalar variables. Basically, I want to do the

stackoverflow.com

 

들여쓰기(tab 키) 기준 파싱

https://stackoverflow.com/questions/12384905/string-split-function-in-c-sharp-tab-delimiter

 

string.Split function in c# tab delimiter

I have a function which reads a delimited file. The delimiter is passed to the function by string argument. The problem is, when I pass the "\t" delimiter, it ends up like "\\t" and therefore, Sp...

stackoverflow.com

 

 

반응형
반응형

 

 

 

새로 python 3.10을 설치하려다가 3.9.9를 설치해본 후기

 

목차

1. 파이썬 3.10 윈도우 설치

2. 파이썬 환경변수 세팅

3. 1의 설치가 제대로 되어있지 않은 경우, 다른 방법으로 설치

 

 

 

 

 

먼저 PC에 설치된 Python이 있는지 확인을 해봤다

python --version

보통 python --version을 입력하면 설치된 파이썬 버전이 출력되어야하는데

그냥 Python만 있어서 pip install 명령어를 사용해봤더니 설치가 안되어있다고 함

 

그래서 새롭게 설치를 해봤음

 

 

 

1. python 설치

 

구글에 python 검색 하면 나오는 사이트 ㄱㄱ

 

 

Download Python

The official home of the Python Programming Language

www.python.org

 

 

 

 

 

 

 

Disable path length limit 는 처음보는 문구라서 찾아봤더니

 

 

윈도우에서 Path의 길이 글자를 제한하는 기능이 있는데, 이 때 python 설치한 경로가 긴 경우

문제가 발생할 수 있어 python에서 자체적으로 이걸 막아주는 듯

 

3.6버전 이상부터 가능하다 함

 

 

 

 

2. Python 환경변수 설정

 

먼저 cmd를 열고 where python을 이용하여 python 위치를 찾는다

미리 복사해두면 다음 과정에 편리하니

마우스로 영역을 선택한 다음 ctrl+c ㄱㄱ

 

내 PC를 우클릭하여 속성을 누른 다음

 

나온 화면의 우측에서 고급 시스템 설정을 눌러준다

 

(※ 이 방식은 제어판에서도 접근이 가능함)

 

 

시스템 속성의 고급탭에서 아래에 있는 환경변수를 클릭한다

 

 

 

위쪽 창에 있는 사용자 변수 아래의 새로만들기를 클릭한다

 

우측의 새로만들기 또는 왼쪽 화면의 빈칸을 더블클릭하여 where로 얻은 파이썬의 설치경로를 입력해준다

아까 복사해둔 주소를 ctrl v 해주면 됨

 

C:\Users\UserName\AppData\Local\Microsoft\WindowsApps\python.exe

나의 경우 위의 주소로 나와서 뒤의 python.exe를 제외한 폴더 경로를 입력해주었다

 

C:\Users\UserName\AppData\Local\Microsoft\WindowsApps

이렇게

 

 

 

아래의 확인을 누르고

 

 

다시 확인을 눌러 환경변수 설정을 마친다

 

 

환경 변수 설정이 잘 되었는지 확인하기 위해서는

cmd에서 python을 실행해보는게 제일 편리하다

 

python 입력 후 위의 화면처럼 바뀐다면 환경변수 세팅이 완료된 것임

 

 

 

 

 

만약 위의 방식으로 파이썬 설치가 완료되지 않는 사람은 아래를 참고하자

 

3. 다른 방법으로 python 설치하기

 

 

윈도우 키를 누르고 Microsoft Store를 입력하여 Python 3.9를 찾아준다

 

 

받기, 설치를 눌러 다운로드 해주면 끝

 

환경변수는 위의 방법과 동일하다

 

python.org에서 받은 파일로 설치를 했는데 문제가 생겼는지 실행이 안돼서

나는 스토어에 들어가서 다운받았다

 

현재는 파이썬 작동이 잘 되니 큰 문제 없어 다행임

 

 

반응형
반응형

 

 

 

빌드 환경 : Visual Studio 2019

 

(끔찍)

 

 

WPF 예제를 돌려보려던 차에 발견한 오류

 

원문은 다음과 같다

 

현재 .NET SDK에서는 .NET 6.0을(를) 대상으로 하는 것을 지원하지 않습니다. .NET 5.0 이하를 대상으로 하거나 .NET 6.0을(를) 지원하는 .NET SDK 버전을 사용하세요.

 

이 문구를 조금 잘라서 구글링을 해보면

바로 마이크로소프트에서 해결하는 법을 안내해준다

 

MS에서 맞닥뜨린 문구의 기본형은 다음과 같다

NETSDK1045: 현재 .NET SDK는 대상으로 ‘최신 버전’을 지원하지 않습니다. ‘이전 버전’ 이하를 대상으로 하거나 ‘최신 버전’을 지원하는 .NET SDK 버전을 사용합니다.

 

= .net 버전차이로 인한 오류일 확률이 높다

 


이러한 문제를 해결하기 위해 찾아보아야 할 것

 

1. .net SDK 버전

- 프로젝트 파일(.csproj, .vbproj 또는 .fsproj)을 열고 대상 프레임워크를 확인

 

2. 미리보기가 사용되지 않음

- 도구 > 옵션 > 환경 > 미리보기 기능으로 이동 후 .NET Core SDK 미리보기 사용이 선택되어 있는지 확인

 

3. Visual Studio 버전

- .NET Core 3.0 이상은 Visual Studio 2019 버전이 필요하며

프로젝트 빌드를 위해서는 2019의 16.3 이상 버전이 필요하다

 

4. PATH 환경변수

 

5. MSBuildSDKPath 환경변수

 

6. global.json 파일

- 프로젝트 루트 폴더에 있는 global.json 파일에 지정된 SDK 버전이 있는지 확인 후,

필요한 .NET Core 버전을 설치한다

 

7. Directory.build.props 파일


 

 

 

나의 경우는 웬만하면 1번/6번 또는 3번에서 해결이 되긴 함

 

그렇기도하고 오류자체도 .net 버전에 관련된 것이어서 1번부터 시행해봄

 

 

.net SDK 버전 확인하기

 

프로젝트의 타겟 프레임워크 확인 시

<TargetFramework>netcoreapp3.0</TargetFramework>

위와 비슷한 형태로 찾을수있다

 

 

1번박스의 2번 박스를 우클릭하여 속성을 누른다

 

?

있어야할곳이 비어있다

 

 

그래서 6번의 global.json을 찾아봄

global.json은 WPF-Samples-main 폴더 아래에 바로 있다

 

 

{
  "sdk": {
    "version": "6.0.100-rc.1.21368.3",
    "rollForward": "latestFeature"
  },
  "altsdk": {
    "netcoreapp3.1": "3.1.300",
    "net6.0-windows": "6.0.100-rc.1.21368.3"
  }
}

 

파일을 열어보면 sdk 버전이 6.0 이상인것을 확인할수있다

= 즉 이 WPF sample 솔루션을 돌려보려면 .net 6.0 이상이 설치되어 있어야한다는것

 

 

 

 

 

[C#] .net sdk 설치 유무 및 버전 확인 하는법

기존 예제들을 빌드해볼때마다 가끔 만나는 오류 NETSDK1045: 현재 .NET SDK는 대상으로 ‘최신 버전’을 지원하지 않습니다. ‘이전 버전’ 이하를 대상으로 하거나 ‘최신 버전’을 지원하는 .NET SD

studyingpingu.tistory.com

 

닷넷 설치 유무나 런타임 버전확인은 위 포스팅 참고하거나

dotnet --list-sdks

위의 명령어를 CMD창에 입력해보면 되겠다

 

 

 

그렇게 찾아봤더니 내 PC에 6.0이 설치가 안되어있어 오류가 발생한것같았다

 

그래서 설치해본 .net 6.0

 

 

.net 버전들은 아래의 주소에서 내려받기가 가능하다

 

 

.NET Downloads (Linux, macOS, and Windows)

Official .NET downloads for Linux, macOS, and Windows. .NET is a free, cross-platform, open-source developer platform for building many different types of applications.

dotnet.microsoft.com

 

 

 

 

 

 

 

다운로드가 끝나고 난 뒤 프로젝트를 오픈하고 빌드해보면 굉장히 잘 돌아가는것을 알수있다

 

 

 

 

 

참고 :

 

 

https://docs.microsoft.com/ko-kr/dotnet/core/tools/sdk-errors/netsdk1045

 

NETSDK1045: 현재 .NET SDK는 대상으로 ‘최신 버전’을 지원하지 않습니다. - .NET CLI

빌드 도구가 요청된 .NET SDK 버전을 찾을 수 없을 때 발생하는 .NET SDK 오류 NETSDK1045에 관해 알아봅니다.

docs.microsoft.com

 

반응형
반응형

 

기존 예제들을 빌드해볼때마다 가끔 만나는 오류

 

NETSDK1045: 현재 .NET SDK는 대상으로 ‘최신 버전’을 지원하지 않습니다. ‘이전 버전’ 이하를 대상으로 하거나 ‘최신 버전’을 지원하는 .NET SDK 버전을 사용합니다.

 

 

위 오류를 해결하기 위해 .net sdk 버전이나 설치 유무를 확인할 수 있는 방법을 기록해봄

 

 

 

PC에 설치된 .net 버전을 확인하는 방법은 다음과 같다

dotnet --list-sdks

위의 명령어를 cmd에 입력해보면 됨

 

 

추가로 PC에 설치된 런타임을 조회하는 방법

dotnet --list-runtimes

 

 

 

 

SDK와 닷넷 런타임 버전을 포함하여 OS, 런타임식별자(RID) 등의 환경 정보를

한번에 확인하는 방법도 있다

 

dotnet --info

 

 

반응형

+ Recent posts