【问题标题】:C# loading data from a file and sorting into arraysC# 从文件加载数据并排序到数组中
【发布时间】:2017-03-03 20:16:40
【问题描述】:

所以我需要从一个文件中读取并以合适的格式显示它。到目前为止,我可以读取所有数据并且它确实显示在表单上,​​但是从HRData 它只读取 1 整行并在表单上显示我需要它来显示文件特定部分的每一行。我已经放下了我从文件中读取的代码的 sn-p 并显示该文件中的 HRData,但我需要每一行都在表中,而不是同一行的重复。任何帮助,将不胜感激。对不起,我的代码布局我仍在尝试习惯于堆栈溢出所以道歉。

DateTime date = new DateTime(2014, 09, 08, 16, 0, 0);

string[] Data1 = Regex.Split(filetext, "HRData]");
Data1[1] = Data1[1].Trim();
string[] HRData = Regex.Split(Data1[1], "\r\n|\r\n");

dataGridView1.ColumnCount = 7;
dataGridView1.ColumnHeadersVisible = true;

DataGridViewCellStyle columnHeaderStyle = new DataGridViewCellStyle();

columnHeaderStyle.BackColor = Color.Beige;
columnHeaderStyle.Font = new Font("Verdana", 10, FontStyle.Bold);
dataGridView1.ColumnHeadersDefaultCellStyle = columnHeaderStyle;

dataGridView1.Columns[0].Name = "Time";
dataGridView1.Columns[1].Name = "Heart Rate (bpm)";
dataGridView1.Columns[2].Name = "Speed";
dataGridView1.Columns[3].Name = "Cadence (rpm)";
dataGridView1.Columns[4].Name = "Altitude (m/ft)";
dataGridView1.Columns[5].Name = "Power (watts)";
dataGridView1.Columns[6].Name = "Power Balance";



if (Versionval == 106)
{
    String FindVersionMode = "VersionMode";
    int indexofVersionMode = filetext.IndexOf(FindVersionMode);
    VersionModeTypeA = filetext.Substring(indexofVersionMode + 5, 1);
    VersionModeTypeB = filetext.Substring(indexofVersionMode + 6, 1);
    VersionModeTypeC = filetext.Substring(indexofVersionMode + 7, 1);
    VersionModeTypeD = filetext.Substring(indexofVersionMode + 8, 1);
    VersionModeTypeE = filetext.Substring(indexofVersionMode + 9, 1);
    VersionModeTypeF = filetext.Substring(indexofVersionMode + 10, 1);
    VersionModeTypeG = filetext.Substring(indexofVersionMode + 11, 1);
    VersionModeTypeH = filetext.Substring(indexofVersionMode + 12, 1);

    //SpeedType = Int32.Parse(VModeTypeA);
    //CadenceType = Int32.Parse(VModeTypeA);
    //AltType = Int32.Parse(VModeTypeA);
    //PowerType = Int32.Parse(VModeTypeA);
    //PowerLRBType = Int32.Parse(VModeTypeA);
    //PowerPIType = Int32.Parse(VModeTypeA);
    // HRCCType = Int32.Parse(VModeTypeA);
    // EuroUsType = int.Parse(VModeTypeA);

    dataGridView1.Columns[3].Name = "Cadence (rpm)";
    dataGridView1.Columns[4].Name = "Altitude (m/ft)";
    dataGridView1.Columns[5].Name = "Power (watts)";
    dataGridView1.Columns[6].Name = "Power Balance";

}

    for (int i = 0; i < HRData.Length; i++)
    {

        date = date.AddSeconds(1);
        string[] HRDataColumn = Regex.Split(HRData[1], "\t");
        double speed1 = Int32.Parse(HRDataColumn[1]);
        speed1 = speed1 / 10;
        HRDataColumn[1] = speed1.ToString();
        dataGridView1.Rows.Add(date.ToString("HH:mm:ss"), HRDataColumn[0], HRDataColumn[1], HRDataColumn[2], HRDataColumn[3], HRDataColumn[4], HRDataColumn[5]);

}

[人力资源数据] 91 154 70 309 83 6451 91 154 70 309 83 6451 92 160 75 309 87 5687 94 173 80 309 87 5687 96 187 87 309 95 4662 100 190 93 309 123 4407 101 192 97 309 141 4915 103 191 98 309 145 5429 106 190 99 309 157 4662

所以这是文件的HRData 部分的sn-p,它们的数据要多得多,但我无法粘贴所有数据,到目前为止,我的代码只能成功读取第一行的每一列桌子。不断重复同一行。 所以不断重复的第一行是:91 154 70 309 83 6451

谢谢

【问题讨论】:

    标签: c# c++ visual-studio


    【解决方案1】:

    你总是使用相同的字符串数组HRDataColumn

    string[] HRDataColumn = Regex.Split(HRData[1], "\t");
    

    试着把这行改成

    string[] HRDataColumn = Regex.Split(HRData[i], "\t");
    

    【讨论】:

    • 天哪,非常感谢它的工作!我觉得很愚蠢,我只需要改变一件事。谢谢你
    猜你喜欢
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多