"1 Book price $ 12.00"을 포함하는 텍스트 파일이 있다고 가정 해 봅시다. 나는 에서이 고통을 읽고 파일을 읽은 후 INT 수량, 문자열 제품 _, 더블 가격 등 처럼 내 지역 변수를 설정하려면, 내 변수 값은문자열을 텍스트 파일에서 읽은 후 파싱하는 방법
quantity = 1;
product_type = Book;
price = 12.00;
이 어떻게 수행하는 나에게 제안 할 수 있어야한다 그?
"1 Book price $ 12.00"을 포함하는 텍스트 파일이 있다고 가정 해 봅시다. 나는 에서이 고통을 읽고 파일을 읽은 후 INT 수량, 문자열 제품 _, 더블 가격 등 처럼 내 지역 변수를 설정하려면, 내 변수 값은문자열을 텍스트 파일에서 읽은 후 파싱하는 방법
quantity = 1;
product_type = Book;
price = 12.00;
이 어떻게 수행하는 나에게 제안 할 수 있어야한다 그?
string str = "1 Book price $12.00";
string[] strArray = str.Split(' ');
int quantity = Convert.ToInt32(strArray[0]);
string product_type = strArray[1];
decimal price = Convert.ToDecimal(strArray[3].Replace("$", ""));
데이터를 저장하기 위해 텍스트 파일을 사용해야하는 이유는 무엇입니까? XML은 이러한 종류의 데이터를 저장하고 구문 분석하는 훨씬 더 쉽고 간편한 방법입니다.
<Books>
<Book>
<Quantity>1</Quantity>
<Price>12</Price>
</Book>
</Books>
여기에는 많은 구문 분석 옵션이 있습니다. XMLDocument, XMLReader, XElement 등을 사용하여이 파일을로드하고 개별 요소를 파싱 할 수 있습니다. 인덱스 기반 문자열 조작은 텍스트 파일에 더 복잡한 데이터를 추가하는 경우 추악하고 오류가 발생하는 경향이 있습니다.
당신은 XML을 사용할 수 있습니다, 또는 당신은 구문은 정말 쉽고, XML보다는 그것의 더 가벼운 Here
JSON 찾아 볼 수 있습니다.
이것을 클래스 개체로 직접 읽을 수 있습니다. JSON은 다음과 같은 형태가 될 것이다의
예제 : - 여기에 코드 조각을의
[
{
"Qty": 1,
"ProductType": "Book",
"Price": 12.01
},
{
"Qty": 1,
"ProductType": "Pen",
"Price": 12.01
}
]
. Newtonsoft JSON에 대한 참조를 추가해야합니다.
using System;
using System.Collections.Generic;
using System.IO;
using Newtonsoft.Json;
namespace JSONExample
{
internal class Program
{
private static void Main(string[] args)
{
LoadJson();
}
public static void LoadJson()
{
using (StreamReader r = new StreamReader(@"C:\Users\Derek\Desktop\JSON.txt"))
{
string json = r.ReadToEnd();
List<Product> dataFile = JsonConvert.DeserializeObject<List<Product>>(json);
foreach (var product in dataFile.ToArray())
{
Console.WriteLine("Type: {0} - Price: {1} - Quantity: {2}", product.ProductType, product.Price,
product.Qty);
}
}
Console.ReadKey();
}
}
public class Product
{
public int Qty { get; set; }
public string ProductType { get; set; }
public float Price { get; set; }
}
}
Split() 함수를 사용하여 문자열 []을 얻은 다음 int (첫 번째 인덱스 - 수량) 및 double (마지막 인덱스 - 가격) 값을 파싱 할 수 있습니다. 그러나 더 나은 솔루션은이 구조화 된 데이터에 XML 파일을 사용하는 것입니다. 감사합니다, –
또한 RegEx를 사용하여 텍스트 파일을 구문 분석 할 수 있지만 XML 파일은 더 나은 솔루션입니다. –
이 파일을 작성하는 경우 구조화 된 XML 파일로 저장하십시오. 앞으로 코드를 유지 보수하기가 쉽습니다. 형식을 제어 할 수없는 외부 시스템에서이 파일을 가져 오는 경우 split() 및 귀하의 코드는 null, 빈 문자열 등을 처리 할만큼 충분히 방어 적입니다. – Ashwath