1,066
社区成员
发帖
与我相关
我的任务
分享
if b.length=1 then continue for
Public Class Form1
Dim ds As New DataSet
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'Dim strData As String = IO.File.ReadAllText("C:\data\xxx.txt", System.Text.Encoding.UTF8) '从文本文件里读数据
Dim strData As String = "\ by amt
$ ASPACE= 100m
$ XMTR = 200.
skp Station Freq Comp Amps Resistivity Phase %Rho sPhz
\-++------++----------++---++----++---------++------++------++-----+
2 1270.0 1.0312E+04 ExHy 0.00 1.4241E+2 704.3 0.0 0.0
2 1270.0 8.2500E+03 ExHy 0.00 1.4058E+2 1099.1 0.0 0.0
2 1280.0 7.3242E+00 EyHx 0.00 1.1105E+3 -2702.9 4.6 45.7"
'skp Station Freq Comp Amps Resistivity Phase %Rho sPhz
For Each line As String In Split(Split(strData, $"+{vbCrLf}").Last, vbCrLf)
Dim d() As String = line.Split({" "}, StringSplitOptions.RemoveEmptyEntries)
Dim station As String = d(1)
'为每个station创建一个DataTable作为数据源,Chart控件作为展示
If Not ds.Tables.Contains(station) Then
Dim _chart As New DataVisualization.Charting.Chart()
With _chart '每个Chart控件有两个Area
.Name = station
.Width=680
.ChartAreas.Clear()
.ChartAreas.Add("Resistivity")
.ChartAreas.Add("Phase")
.Titles.Add($"{station} - Resistivity").Alignment = ContentAlignment.TopCenter
.Titles.Add($"{station} - Phase").Alignment = ContentAlignment.TopCenter
.Titles(1).DockedToChartArea = "Phase"
End With
FlowLayoutPanel1.Controls.Add(_chart)
'格式化数据源
Dim table As DataTable = ds.Tables.Add(station)
With table.Columns
.Add("Freq", Type.GetType("System.Double"))
.Add("Comp")
.Add("Resistivity", Type.GetType("System.Double"))
.Add("Phase", Type.GetType("System.Double"))
End With
End If
ds.Tables(station).Rows.Add(d(2), d(3), d(5), d(6))
Next
'遍历所有station,画图
For Each table As DataTable In ds.Tables
ListBox1.Items.Add(table.TableName)
'每个datable代表一个station,放到一个 chart里,Resistivity画一个area,Phase画一个area
Dim _chart As DataVisualization.Charting.Chart = CType(FlowLayoutPanel1.Controls().Item(table.TableName), DataVisualization.Charting.Chart)
_chart.Series.Add(New DataVisualization.Charting.Series("ExHy_Resistivity"))
_chart.Series.Add(New DataVisualization.Charting.Series("EyHx_Resistivity"))
_chart.Series.Add(New DataVisualization.Charting.Series("ExHy_Phase"))
_chart.Series.Add(New DataVisualization.Charting.Series("EyHx_Phase"))
For Each s As DataVisualization.Charting.Series In _chart.Series
s.ChartType = DataVisualization.Charting.SeriesChartType.Line
Next
'通过Comp列筛选所在area, 绑定Freq到X轴,Resistivity和Phase到Y轴
With _chart.Series(0)
.ChartArea = "Resistivity"
.XValueMember = "Freq"
.Points.DataBind(
table.Rows.Cast(Of DataRow).
Where(Function(r) r("Comp") = "ExHy").
Select(Function(r) r), "Freq", "Resistivity", Nothing)
End With
With _chart.Series(1)
.ChartArea = "Resistivity"
.Points.DataBind(
table.Rows.Cast(Of DataRow).
Where(Function(r) r("Comp") = "EyHx").
Select(Function(r) r), "Freq", "Resistivity", Nothing)
End With
With _chart.Series(2)
.ChartArea = "Phase"
.XValueMember = "Freq"
.Points.DataBind(
table.Rows.Cast(Of DataRow).
Where(Function(r) r("Comp") = "ExHy").
Select(Function(r) r), "Freq", "Phase", Nothing)
End With
With _chart.Series(3)
.ChartArea = "Phase"
.Points.DataBind(
table.Rows.Cast(Of DataRow).
Where(Function(r) r("Comp") = "EyHx").
Select(Function(r) r), "Freq", "Phase", Nothing)
End With
Next
End Sub
Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
DataGridView1.DataSource = ds.Tables(ListBox1.SelectedItem)
End Sub
End Class
Sub Main()
Dim a As String = "aaa"
Dim b As String = "bbb"
Dim c As String = "ccc"
Console.WriteLine(a + "-" + b + "-" + c)
Console.WriteLine(String.Format("{0}-{1}-{2}", a, b, c))
Console.WriteLine(String.Format("{0}-{1}-{2}", {a, b, c}))
Console.WriteLine($"{a}-{b}-{c}")
'都等于aaa-bbb-ccc
Console.Read()
End Sub
.Titles.Add($"{station} - Resistivity").Alignment = ContentAlignment.TopCenter
.Titles.Add($"{station} - Phase").Alignment = ContentAlignment.TopCenter
'等效
.Titles.Add(station & " - Resistivity").Alignment = ContentAlignment.TopCenter
.Titles.Add(station & " - Phase").Alignment = ContentAlignment.TopCenter