将文本文件行导入特定文本和组合框

时间:2017-08-02 14:09:42

标签: c# import combobox textbox text-files

如果发布错误,我很抱歉。如果要求,我会立即将其删除。

我(非常)是C#和Visual Studio的初学者。我创建了一个将数据导出到文本文件的小程序。见图:http://imgur.com/a/0nCfr

您将看到我的程序,导出功能和导出的文本文件。

现在我想反过来并导入这些创建的文本文件到我的程序中。

我的第一个猜测是以某种方式调用行(或字符串)。但是,我如何才能将这些部分放入我的文本字段或组合框中?例如,请参阅文本文件和程序中的POINT 1。

我没有发布任何代码,因为我还没有写任何代码,因为我不知道从哪里开始。但是,如果需要,我可以发布任何现有代码。

我将尽我所能,让您更轻松地提供帮助。谢谢!

2 个答案:

答案 0 :(得分:0)

我对组合框不是很好,因为我有一段时间没有做任何winforms的东西,但是这里是如何将你的文本文件数据输入你的c#程序:

string[] fileEntries = Directory.GetFiles(yourPathToFileHere);

这会将文本文件的每一行插入一个数组中的字符串(例如,textfile的第1行= fileEntries[0]。那么你可能想要将该行拆分为各个感兴趣的项目,以便你会想要用这个:

string[] partsOfString = yourString.Split('charToSplitOn');

看看你是否可以从那里自己解决。如果您仍然需要帮助,请告诉我们,我们会更进一步! :)

EDIT1:.Split()正在进行的演示!

string inputString = "POINT 1 123-123-123N 123-123-123W";

string[] results = inputString.Split('-', ' '); //split the input on hyphens and spaces

您的结果视图将如下所示:

results[0] = "POINT"
results[1] = "1"
results[2] = "123"
results[3] = "123"
results[4] = "123N"
results[5] = "123"
results[6] = "123"
results[7] = "123W"

答案 1 :(得分:0)

我的第一个问题是为什么你使用一个组合框来获得一个可以达到123的数字?您的值的选项是否有限,因为如果没有,我会使用文本框。

我首先要为" Point"创建一个Object类。接受每个值的6个参数。然后使用某种StreamReader或OpenFileDialog将文本文件数据导入应用程序。这是一些示例代码,您可以使用/更改以满足您的需求(使用起始值和行开头的Point赢得此代码的工作)。

 Stream myStream;
 openFileDialog1.FileName = string.Empty;
 openFileDialog1.InitialDirectory = "C:\\";
   if (openFileDialog1.ShowDialog() == DialogResult.OK)
   {
     if (extension.Equals(".TXT", compareType))
     {
        try
        {
          using (myStream = openFileDialog1.OpenFile())
          {        
           string path = Path.GetDirectoryName(openFileDialog1.FileName);

     StreamReader reader = new StreamReader(openFileDialog1.FileName);
     string line;
     while ((line = reader.ReadLine()) != null)
       {
          string[] value = line.Split('-'); //Split line based on delimiter
          _pointList.Add(new Parameter(value[0], value[1], value[2], value[3], value[4], value[5]));
       }

如果要填充文本框,可以从列表中调用每个元素。

textbox1.Text = _pointList.ElementAt(0).Value1;

希望这有帮助!