Creative Commons License

Community

공지/뉴스
지식공유
질문/답변
자료실
자유로운 글
방명록

공유를 넘어 교류로... 제가 알리는 말씀 및 사이트 이용자들이 함게 참여하는 커뮤니케이션 공간입니다.

.

질문/답변

개발 중 막히셨나요?? 여기 먼저 경험한 개발자들의 답변을 부탁드려보세요~ 단, 질문의 내용은 되도록이면 아주(?) 상세히 해 주셔야 합니다

VB.NET & C# 일때...

작성자 용기남
작성일 2008-07-14 오후 1:58:45,    조회수 : 3365

FarPoint Spread하고 Chart Fx로 CSV File을 Spread에 올리고 Chart로 뿌리는 부분을 하려고 하는데요..

둘다 최신버전(.NET용) 이구료..

일단 VB.NET으로는 됬는데요..

코드가 뭔가 깨끗하지 못한것 같구요.. C#은 몰라서 손도 못대구...

처음 하는 부분이라서...

이글 읽으시는 분들은 구현을 어떻게 하시는지요..??

Source나 구현 부분을 알려주실수 있으신가요..??

∵Commented by 박종명 at 2008-07-14 오후 2:12:00  
안녕하세요. 용기남님..
어떤 부분의 소스가 안좋다는 것인지.. 단순히 깨끗하지 못하기 때문에.. 라는 질문에
답을 드릴수는 없습니다. 질문답변에는 정확한 문제점을 알려주셔야 정확한 답변을 드릴 수 있습니다. 그냥 한번 관련 소스 알려주세요.. 는 좀 곤랍합니다 ^^;
∵Commented by 용기남 at 2008-07-14 오후 2:32:29  
Public Class Main

Private Sub BtnImport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnImport.Click
Dim OpenFileDialog As New OpenFileDialog()

OpenFileDialog.DefaultExt = "CSV"
OpenFileDialog.Filter = "CSV파일 (*.csv)|*.csv|모든파일(*.*)|*.*"

Dim Result As DialogResult = OpenFileDialog.ShowDialog()

If Result = Windows.Forms.DialogResult.OK Then

Dim sp As New IO.StreamReader(OpenFileDialog.FileName)
Dim Column As Integer = 0
Dim Row As Integer = 0

FpSpread1_Sheet1.RowCount = 0
FpSpread1_Sheet1.ColumnCount = 0

While True

Dim Linestr As String = sp.ReadLine()

If Linestr Is Nothing Then
Exit While
End If

Dim SplitStr As String() = Linestr.Split(","c)

If FpSpread1_Sheet1.RowCount <= Row Then
FpSpread1_Sheet1.RowCount += 1
End If

Dim i As Integer

For i = 0 To SplitStr.Length - 1
If FpSpread1_Sheet1.ColumnCount <= Column Then
FpSpread1_Sheet1.ColumnCount += 1
End If
FpSpread1_Sheet1.SetText(Row, Column, SplitStr(i))

Dim txtProvider As New ChartFX.WinForms.DataProviders.TextProvider()

txtProvider.Open(OpenFileDialog.FileName)
Chart1.DataSourceSettings.DataSource = txtProvider
txtProvider.Close()

Column += 1
Next i

Row += 1
Column = 0
End While

sp.Close()

End If
End Sub

VB.NET은 이런식으로 해봤구요... 처음하는거라.. Simple하게 만들고 싶습니다..
그리고 C#도 해보구 싶은데.. C#은 전혀 해보지 않아서.. 좀 도움을 받고 싶습니다...
∵Commented by 박종명 at 2008-07-14 오후 2:51:07  
Chart나 그리드관련 상용컴포넌트를 사용하셔서 그에 따른 정확한 답변을 드릴 수 없을것 같구요...

소스를 보니 ',' 구분자로된 CSV파일을 내용을 한줄씩(한 (,)단위씩) 그리드에 셋팅하는것 같네요.. FarPoint 라는 상용툴을 사용해 보지 않아서 잘 모르겠지만...
보통 그리드에는 한 줄식 바인딩도 지원하지만 DataSet을 한번에 바인딩하는 것도 지원을 할 텐데요.. 닷넷의 DataGridView 역시 한줄식 입력해도 되지만 한꺼번에 DataBiding 되듯이..

그리고 다음의 코드가 반드시 중첩루프 안에서 행해져야 하는건가요? 확인바랍니다.
Dim txtProvider As New ChartFX.WinForms.DataProviders.TextProvider()
txtProvider.Open(OpenFileDialog.FileName)
Chart1.DataSourceSettings.DataSource = txtProvider
txtProvider.Close()

그리고 C#으로 하셔도 코드는 그리 달라지지 않습니다.
단지 개발자의 습관에 기인해 어떤 코딩 패턴이 더 가독하기 쉬운가의 문제는 있을 수 있습니다만,(c#은 c계열 문법,vb.net 은 vb계열 문법) 코드의 간결성은 각 언어 문법자체로 달라지지는 않습니다. 다만 로직의 간결함은 언어에 상관없이 있을 수 있을테구요..
이름
비밀번호
홈페이지
BJ <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요