2012-06-19 2 views
-4

이것은 근무해야하는 급여 파일의 샘플이며, 직원 수, 다양한 유형의 수입, & 체크 날짜를 나열합니다. 목표는 직원의 총 임금 및 기타 수입을 나열하는 직원 당 부분합을 얻는 것입니다. 나는 이것을 어떻게 수행 할 것인가에 대해 머리를 터지 리지 못한다. 누군가 제안 할 수 있는가? C#에서이 작업을 수행하려고합니다. 일부 직원이 하나 개의 라인을 가질 수있다, 다른 직원은 (... 등 보너스, 보험,)파일을 반복하여 사람당 합계를 계산하십시오.

240 TN DP 800.00 1696.65 .00 .00 .00 .00 65 46.20 11/10/11 
240 TN DP 800.00 1696.65 .00 .00 .00 .00 66 124.83 11/10/11 
240 TN DP 800.00 1696.65 .00 .00 .00 .00 72 5.27 11/10/11 
240 TN DP 800.00 1696.65 .00 .00 .00 .00 ZC 1933.75 11/10/11 
240 TN DP 800.00 1643.55 .00 .00 .00 .00 65 46.20 11/25/11 
240 TN DP 800.00 1643.55 .00 .00 .00 .00 66 122.18 11/25/11 
240 TN DP 800.00 1643.55 .00 .00 .00 .00 72 5.27 11/25/11 
240 TN DP 800.00 1643.55 .00 .00 .00 .00 ZC 1893.87 11/25/11 
240 TN DP .00 .00 .00 .00 400.00 .00 66 20.00 12/09/11 
240 TN DP 800.00 1595.25 .00 80.00 .00 .00 65 46.20 12/09/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 65 .00 07/08/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 67 .00 07/08/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 69 .00 07/08/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 72 .00 07/08/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 74 .00 07/08/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 ZC 1299.03 07/08/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 65 181.85 07/22/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 67 12.46 07/22/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 69 .00 07/22/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 72 22.15 07/22/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 74 .00 07/22/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 ZC 1124.70 07/22/11 

편집없이 정규 임금의 유형 만 공제/소득 라인을 가질 수있다 : 몇 가지 질문, 필드에 대응 시간당 임금, 휴가 임금, 휴가 임금, 병가 임금, 특별 임금, 수입 코드, 수입 금액, 수표 날짜 순으로 왼쪽에서 오른쪽 순으로 나타냅니다. 각 수표 날짜에 한 번 이상 사람의 임금을 추가하지 않도록하면서 각 필드에 대해 직원 한 명당 합계를 계산해야합니다.

+4

당신은 무엇을하려고 했습니까? – dirkgently

+4

귀하의 질문은 무엇입니까? 숫자를 추가하는 방법? 숫자를 읽는 방법? 숫자를 찾는 방법? ...? –

+0

당신은 지금까지 가지고있는 것을 정교하게 추가 할 수 있습니까? 또한 LINQ group by statement를 체크 아웃해야합니다. –

답변

0

텍스트 파일로 작업하는 경우 텍스트 파일을 읽은 다음 데이터를 작성해야합니다. 그래서 내가 할 것 인 것이다 :

__Data1___ ______________Data2_______________D3_ __D4__ ___Data5___ 
|   |        | |  |   | 
240 TN DP 800.00 1696.65 .00 .00 .00 .00 65 46.20 11/10/11 
240 TN DP 800.00 1696.65 .00 .00 .00 .00 66 124.83 11/10/11 
240 TN DP 800.00 1696.65 .00 .00 .00 .00 72 5.27 11/10/11 
240 TN DP 800.00 1696.65 .00 .00 .00 .00 ZC 1933.75 11/10/11 
240 TN DP 800.00 1643.55 .00 .00 .00 .00 65 46.20 11/25/11 
240 TN DP 800.00 1643.55 .00 .00 .00 .00 66 122.18 11/25/11 
240 TN DP 800.00 1643.55 .00 .00 .00 .00 72 5.27 11/25/11 
240 TN DP 800.00 1643.55 .00 .00 .00 .00 ZC 1893.87 11/25/11 
240 TN DP .00 .00 .00 .00 400.00 .00 66 20.00 12/09/11 
240 TN DP 800.00 1595.25 .00 80.00 .00 .00 65 46.20 12/09/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 65 .00 07/08/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 67 .00 07/08/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 69 .00 07/08/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 72 .00 07/08/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 74 .00 07/08/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 ZC 1299.03 07/08/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 65 181.85 07/22/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 67 12.46 07/22/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 69 .00 07/22/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 72 22.15 07/22/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 74 .00 07/22/11 
242 TN DP 1538.46 .00 .00 .00 .00 .00 ZC 1124.70 07/22/11 

그래서 내가 클래스를 만들 것 데이터를 가지고 :

string[] lines = File.ReadLines(path); 

그런 다음 배열의 각 요소 (선)에 대한 I 데이터 당을 나눌 것 나는 필요 :

class Data 
{ 
    public string Data1; 
    public string Data2; 
    public string Data3; 
    public string Data4; 
    public string Data5; 
} 

List<Data> myList = new List<Data>(); 

//Split lines 
foreach(string s in lines) 
{ 
    string[] buffer = s.Split(' '); //split by space 

    Data data = new Data(); 
    data.Data1 = string.Concat(buffer.Take(3).ToArray()); 
    data.Data2 = string.Concat(buffer.Skip(3).Take(6).ToArray()); 
    data.Data3 = string.Concat(buffer.Skip(9).Take(1).ToArray()); 
    data.Data4 = string.Concat(buffer.Skip(10).Take(1).ToArray()); 
    data.Data5 = string.Concat(buffer.Skip(11).Take().ToArray()); 

    myList.Add(data); 
} 
관련 문제