#c# #windows-forms-designer #streamreader
#c# #windows-forms-designer #streamreader
Вопрос:
Прежде всего, я ОЧЕНЬ новичок в использовании C # (или любого другого языка программирования, если на то пошло).
Я пытаюсь создать графический интерфейс для подтягивания машинных программ для операторов. Я хочу, чтобы интерфейс: 1) имел выпадающий список part # из списка каталогов (эта часть выполнена) 2) на основе part # я хочу заполнить второе поле со списком именами операций из текстового файла, содержащегося в каталоге этой части. Файл имеет определенный формат следующим образом:
ОПЕРАЦИЯ REV B
C_3000-B_2.7MM_LOCK_COMP_PLATE_PED_GAGE_GPN-00023C.PRG
ОПЕРАЦИЯ REV A
C_3000-A_2.7MM_LOCK_COMP_PLATE_PED_GAGE_GPN-00023B.PRG
Я хочу, чтобы все, что следует за «ОПЕРАЦИЕЙ», отображалось во втором выпадающем списке. После выбора из полей со списком я хочу, чтобы программы, перечисленные в строке OPERATION, были скопированы в «рабочую папку» и выполнены другим программным обеспечением. Я много читал, искал и просматривал видео, но я просто не могу туда добраться.
Я зациклен на том, чтобы значение строки после ОПЕРАЦИИ отображалось во втором выпадающем списке прямо сейчас, не говоря уже о копировании файлов.
public partial class frmMain : Form
{
public string OpsPath = "D:\CMM\ProgramOps\";
public frmMain()
{
InitializeComponent();
}
private void frmMain_Load(object sender, EventArgs e)
{
DirectoryInfo obj = new DirectoryInfo("D:\CMM\ProgramOps\");
DirectoryInfo[] folders = obj.GetDirectories();
cmboxParts.DataSource = folders;
}
private void cmboxParts_SelectedIndexChanged(object sender, EventArgs e)
{
cmboxOps.Items.Clear();
cmboxOps.SelectedItem = null;
string Part = (cmboxParts.SelectedItem as string);
string Opfile = ("D:\CMM\ProgramOps\" Part ".OP");
try
{
string line;
StreamReader sr = new StreamReader(Opfile);
while ((line = sr.ReadLine()) !=null)
{
if line.StartsWith("OPERATION")
string[] Ops = line.Split(' ');
}
}
catch
{
}
}
}
Я понимаю, что это большой проект для новичка, но, думаю, с чего-то нужно начинать.
Я немного читал об использовании регулярных выражений, но это было немного выше моего понимания.
Спасибо
Комментарии:
1. Добро пожаловать в stackoverflow. После
if line.StartsWith("OPERATION")
создания массива строк, что вы делаете с этим массивом?2. Если это формат файла, я лично создал бы объект класса, который содержит операцию и программу. Прочитайте весь файл, создавая новые объекты для хранения этих значений и сохранения их в выпадающем списке. Затем оттуда вы можете получить программу из выбора в выпадающем списке для передачи дальше. Но в нынешнем виде у вас есть разделение строк, и вы должны иметь возможность заполнить поле со списком конкатенацией
Ops[1] " " Ops[2]
3. @AndrewE Я опубликовал то, что у меня есть до сих пор в коде. Я собирался попробовать проанализировать строки и добавить элементы массива в поле со списком. Как я уже сказал, я новичок в программировании, поэтому для меня это довольно сложно.