2012-02-23 4 views
3

텍스트 문서를 C# 양식 응용 프로그램에 하드 코드하는 데 문제가 있습니다. 기본적으로 텍스트 상자에 채울 웹 페이지 HTML이 있습니다. 나는 스트림 리더기로 이것을 쉽게 할 수 있으며 영원히 문자열에 쓰는 데 쓸 수있다. 내 솔루션에 추가 할 수있는 다른 요소를 둘러 보는 것은 텍스트 파일이었습니다.텍스트 파일을 참조하는 중 Visual Studio C#

그래서 응용 프로그램에 텍스트 파일이나 비슷한 것을 읽고 텍스트 상자에 넣으려는 쉬운 방법을 찾고 있습니다. 지금까지 양식에 추가 한 텍스트 파일을 참조하는 방법을 알 수 없습니다.

이 코드를 기본 문서로 exe에 코딩하고 싶습니다. 외부 파일을 편집 할 수 없도록하고 프로그램을 쉽게 이식 할 수 있도록 외부 파일을 원하지 않습니다.

이 파일을 내부적으로 포함하고 클래스 또는 다른 것으로 액세스하는 방법에 대한 제안 사항이 있으십니까?

답변

7

오른쪽 클릭을 통해 해당 항목에 대한 스트림을 얻을 수 있습니다 프로젝트 및 클릭 속성. 왼쪽에 많은 탭이있는 일반적인 화면이 나타납니다. "리소스"라는 것을 클릭하십시오. 문자열과 다른 것들을 추가 할 수 있지만 텍스트 파일을 추가 할 수도 있습니다.

상단의 드롭 다운을 파일로 변경 한 다음 "리소스 추가"를 클릭하십시오. 텍스트 파일로 이동하여 이름을 지정하십시오. 그러면 파일이 어셈블리에 추가됩니다. 디 컴파일 할 수 있기 때문에 너무 흥분하지 마십시오. 비밀 메시지를 저장하지 마십시오.

.net 사이트, mvc 사이트, 콘솔 앱 등에서이 작업을 수행 할 수 있습니다. 아래 코드는 콘솔 앱 스타일로 단순하게 유지합니다. 허락하신다면, 이것은 텍스트 파일 일 뿐이지 만 리소스 사용의 기본을 제공합니다. 이를 보고서 템플릿, 형식 파일, XML 및 다른 방법으로 코드를 홍보 할 때 항상 설정에 포함되도록 항상 서투르게 수행 할 수있는 3 가지 부분을 포함하여 다른 유형의 파일로 확장 할 수 있습니다. 단점은 변경하기 위해 다시 컴파일해야한다는 것입니다.

using System; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var output = Properties.Resources.helloword; 
      Console.WriteLine(output); 
      Console.ReadLine(); //just so you can see it 
     } 
    } 
} 
+0

와우 나는 녹색으로 더 많은 반응을 확인할 수 있었으면 좋겠다. 나는 텍스트 디스플레이를 얻기 위해 단계별로 단계를 수행했기 때문에이 작업을 수행했습니다. 이 커뮤니티는 훌륭합니다. 가장 큰 문제는 내가 어떤 개념을 찾고 있는지 몰랐다는 것입니다. 이것은 완벽했습니다. 고맙습니다. – eatumup

6

설명하는 개념을 embedding resources이라고합니다.

모든 종류의 파일을 리소스로 포함 할 수 있습니다. 아이콘, 이미지, XML, 심지어 일반 텍스트 파일, 예를 들어 같은 코드에서 참조를, : http://msdn.microsoft.com/en-us/library/0c6xyb66.aspx

+0

첫 줄은 나를 오랫동안 도와줍니다. 고마워요. 귀하의 검색 내용을 모를 때 검색하기가 어렵습니다. 고마워요! – eatumup

2
: 해당 문서의

internal string GetFromResources(string resourceName) 
{ 
    Assembly assem = this.GetType().Assembly; 
    using (Stream stream = assem.GetManifestResourceStream(resourceName)) 
    { 
     using (var reader = new StreamReader(stream)) 
     { 
      return reader.ReadToEnd(); 
     } 
    } 
} 

있다 t 당신은 당신이이 같은 무엇을 찾고 있는지 알고있을 때

나는 비슷한 것을한다.

이 프로젝트에 .html 중에서 추가

그런 포함 리소스에 속성에 빌드 작업을 설정, 당신은에

Assembly.GetExecutingAssembly().GetManifestResourceStream("your.namespace.yourFile.html"); 
관련 문제