2009-09-21 6 views
2

난 sharpdevelop을 사용하여 WPF 응용 프로그램을 프로그래밍하고 있습니다. (저는 WPF에 대한 초보자입니다. VB 지식 만 갖고 C#이 없기 때문에 C#을 배워야 WPF를 알 수 있습니까?).WPF를 사용하여 CSV 파일을 읽고 쓰는 방법은 무엇입니까?

저는 CSV 파일을 먼저 읽고 싶습니다. 그 후 파일을 수정하고 저장하려고합니다. 이 모든 제안과 포인터?

답변

4

WPF는 사용자 인터페이스 기술이며, 나는 그것을 CSV 파일을 읽는 것과 관련시키지 않을 것이다. 파일 읽기 및 표시는 두 가지 단계입니다. 첫 번째 단계를 들어, KBCsv을 사용할 수

Dim reader As CsvReader = Nothing 
Try 
    reader = New CsvReader("C:\data.csv") 
    reader.ReadHeaderRecord() 
    Dim record As DataRecord = reader.ReadDataRecord 

    While (Not record Is Nothing) 
     System.Console.WriteLine("{0} is {1} years old", record("Name"), record("Age")) 
     record = reader.ReadDataRecord 
    End While 
Finally 
    If (Not reader Is Nothing) Then 
     reader.Close() 
    End If 
End Try 

를 두 번째 단계의 경우, WPF는 옵션입니다. 그러나 Windows Forms 또는 텍스트 출력이 가능한 일반 콘솔도 마찬가지입니다. WPF를 가정하면 DataGrid 안에 데이터를 표시 할 수 있습니다.

+0

위 코드는 C#과 유사합니다. VB.NET과 WPF를 함께 사용하는 것이 가능합니다. 나는 WPF가 단지 프레젠테이션이라는 것을 이해할 수 있지만, 둘 다 어떻게 붙이는지 전혀 모른다. 어떤 제안? – Stark

+0

현재 .Net에 내장 된 데이터 그리드가 제공되지 않는다는 것을 알았을 때 나는 놀랐다. Windows Forms 기능과 비교할 때 이는 마치 감독처럼 보였습니다. –

+0

@Stark : 예제를 VB로 변경했습니다. 예, VB를 사용하여 WPF 응용 프로그램을 제작할 수 있습니다. 그러나 SharpDevelop에 익숙하지 않아 더 이상 당신을 도울 수 없습니다. 최소한 배우는 동안 Visual Studio Express 버전 (무료)을 사용할 수도 있습니다. 대부분의 예제와 도움이 Visual Studio를 사용하므로 일상 생활을 조금 편하게 만듭니다. –

1

아니요 #는 필요하지 않습니다. WPF는 VB.NET에서도 사용할 수 있습니다.

당신은 멋진 얻을 link text을 사용 또는 VB는 quetion의 첫 부분에 대답하려면 그냥이 http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser.aspx 에 대한 TextFieldParser 또는이 링크 link text

Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser _ 
("c:\logs\bigfile") 
    MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited 
    MyReader.Delimiters = New String() {vbTab} 
    Dim currentRow As String() 
    'Loop through all of the fields in the file. 
    'If any lines are corrupt, report an error and continue parsing. 
    While Not MyReader.EndOfData 
     Try 
      currentRow = MyReader.ReadFields() 
      ' Include code here to handle the row. 
     Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException 
      MsgBox("Line " & ex.Message & _ 
      " is invalid. Skipping") 
     End Try 
    End While 
End Using 
0

을 가지고 수행 할 수있다. Windows Presentation Foundation은 응용 프로그램 사용자 인터페이스의 표시와 관련된 클래스 집합입니다. WPF를 구성하는 클래스는 VB.NET을 포함하여 모든 언어에서 사용할 수 있으므로 WPF를 사용하기 위해서는 C#을 익히지 않아도됩니다.

질문의 CSV 구성 요소와 관련하여 WPF는 프레젠테이션 프레임 워크 CSV 형식을 구문 분석하는 기능을 직접 제공하지는 않지만 CSV는 간단하고 일반적인 형식이므로 파서를 작성하거나 기존 파서를 찾는 것이 너무 어렵지 않아야합니다.

형식에 대한 공식 사양이 없지만 Wikipedia는 파서를 직접 작성해야 할 경우 그에 대한 information을 제공합니다.

위에서 언급 한 많은 기존 라이브러리 중 일부는 내가

는 NB 코드 프로젝트에서 발견 this one을 icluding 오픈 소스이며, 거기에 따라 : 제가 위에서 언급 한 CSV 라이브러리를 사용하지 않은, 그것은으로 meerly 제공 출발점.

0

WPF를 사용하기 위해 C#을 알아야 할 필요는 없지만 C#에 맞게 튜토리얼과 블로그가 더 많이있는 것 같습니다. WPF 용 Microsoft 설명서는 VB 및 C#에서 제공됩니다.

CSV 파일을 처리하는 경우 구문 분석은 fairly straight-forward입니다. 대부분의 사람들 (WinForm 토지에서)은 CSV를 구문 분석하고 각 "열"을 DataTable에 드롭합니다. 그런 다음 표 컨트롤이 양식에 놓이고 DataTable에서 채워집니다 (또는 데이터 바인딩 된). 그런 다음 편집 후 변경된 DataTable을 행 단위로 읽은 다음 CSV 파일 으로 다시 읽습니다. 특히 쉼표를 문자열로 인용 할 때 특히주의해야 할 점이 많습니다..

WPF의 차이점은 아마도이 접근 방식을 사용하고 싶지 않을 것입니다. 보다 흥미로운 방식으로 CSV 파일의 각 "행"을 표시하기 때문에 WPF를 선택합니다. 각 CSV 행이 연락처를 나타내는 경우 움직이는 스크롤 rolodex가 필요할 수 있습니다. this walkthrough을 확인하는 것으로 시작합니다. WPF 응용 프로그램을위한 좋은 디자인을 보여주기 때문입니다.

업데이트 :이 코드 플렉스에 툴킷에서 제공하는 WPF의 데이터 그리드가 있지만, 일반적으로 WPF가 함께 작동하도록 설계되었습니다 무엇을위한 최선의 선택이 아니다

.

+0

정확히, 저는 WPF를 선택했기 때문에 CSV 데이터에 애니메이션을 추가하고 더 나은 방식으로 표현하고자했습니다. 그 워크 스루 링크에 감사드립니다. – Stark

+0

차가운 다음 페이징을 수행하는 좋은 예를 찾아야합니다. – emptyset

+0

@emptyset - 현재 WPF에는 DataGrid 컨트롤이 없습니다. 외부 라이브러리를로드하는 경우에만 가져올 수 있습니다. 나는 그것이 4.0에 나타날 것이라고 믿는다. –

관련 문제