У меня есть файл с данными, которые я хотел бы разделить на три разных списка.Я хочу, чтобы первый ListBox содержал все данные (новый элемент списка для каждой строки данных, считанных из текстового документа).
Основной ListBox:
D1
D2
C9
R7
R1
C130
D99
Q9
Второй ListBox: (после того, как регулярное выражение использовалось для сопоставления значений, начинающихся с D )
D1
D2
D99
Третий список ListBox: (после того, как регулярное выражение использовалось для сопоставления значений, начинающихся с C )
C9
C130
И после того, как эти значения будут сопоставлены для SECOND и THIRD ListBox,
New Main ListBox будет выглядеть следующим образомэто:
R7
R1
Q9
КОД
static List<string> findPackagePlacementOneType(List<string> list)
{
// Creates a new list to return with new format.
var result = new List<string>();
// Checks each line in the list.
foreach (var line in list)
{
// PLACEMENT ONE Regex
Match regexRES = Regex.Match(line, @"^.+(RES)");
Match regex0402 = Regex.Match(line, @"^.+(0402)");
Match regex0201 = Regex.Match(line, @"^.+(0201)");
Match regex0603 = Regex.Match(line, @"^.+(0603)");
Match regex0805 = Regex.Match(line, @"^.+(0805)");
Match regex1206 = Regex.Match(line, @"^.+(1206)");
Match regex1306 = Regex.Match(line, @"^.+(1306)");
Match regex1608 = Regex.Match(line, @"^.+(1608)");
Match regex3216 = Regex.Match(line, @"^.+(3216)");
Match regex2551 = Regex.Match(line, @"^.+(2551)");
Match regex1913 = Regex.Match(line, @"^.+(1913)");
Match regex1313 = Regex.Match(line, @"^.+(1313)");
Match regex2513 = Regex.Match(line, @"^.+(2513)");
Match regex5125 = Regex.Match(line, @"^.+(5125)");
Match regex2525 = Regex.Match(line, @"^.+(2525)");
Match regex5619 = Regex.Match(line, @"^.+(5619)");
Match regex3813 = Regex.Match(line, @"^.+(3813)");
Match regex1508 = Regex.Match(line, @"^.+(1508)");
Match regex6431 = Regex.Match(line, @"^.+(6431)");
Match regex2512 = Regex.Match(line, @"^.+(2512)");
Match regex1505 = Regex.Match(line, @"^.+(1505)");
Match regex2208 = Regex.Match(line, @"^.+(2208)");
Match regex1005 = Regex.Match(line, @"^.+(1005)");
Match regex1010 = Regex.Match(line, @"^.+(1010)");
Match regex2010 = Regex.Match(line, @"^.+(2010)");
Match regex0505 = Regex.Match(line, @"^.+(0505)");
Match regex0705 = Regex.Match(line, @"^.+(0705)");
Match regex1020 = Regex.Match(line, @"^.+(1020)");
Match regex1812 = Regex.Match(line, @"^.+(1812)");
Match regex2225 = Regex.Match(line, @"^.+(2225)");
Match regex5764 = Regex.Match(line, @"^.+(5764)");
Match regex4532 = Regex.Match(line, @"^.+(4532)");
Match regex1210 = Regex.Match(line, @"^.+(1210)");
Match regex0816 = Regex.Match(line, @"^.+(0816)");
Match regex0363 = Regex.Match(line, @"^.+(0363)");
Match regexSOT = Regex.Match(line, @"^.+(SOT)");
if (regexRES.Success || regex0402.Success || regex0201.Success || regex0603.Success ||
regex0805.Success || regex1206.Success || regex1306.Success || regex1608.Success ||
regex3216.Success || regex2551.Success || regex1913.Success || regex1313.Success ||
regex2513.Success || regex5125.Success || regex2525.Success || regex5619.Success ||
regex3813.Success || regex1508.Success || regex6431.Success || regex2512.Success ||
regex1505.Success || regex2208.Success || regex1005.Success || regex1010.Success ||
regex2010.Success || regex0505.Success || regex0705.Success || regex1020.Success ||
regex1812.Success || regex2225.Success || regex5764.Success || regex4532.Success ||
regex1210.Success || regex0816.Success || regex0363.Success || regexSOT.Success)
{
result.Add(string.Join(" ", line));
}
else
result.Remove(line);
}
// Returns the new list so it can be formatted further.
return result;
}
// Finds the placement 2 package types.
static List<string> findPackagePlacementTwoType(List<string> list)
{
// Creates a new list to return with new format.
var result = new List<string>();
// Checks each line in the list.
foreach (var line in list)
{
// PLACEMENT TWO Regex
Match regexBGA = Regex.Match(line, @"^.+(BGA)");
Match regexSOP8 = Regex.Match(line, @"^.+(SOP8)");
Match regexQSOP = Regex.Match(line, @"^.+(QSOP)");
Match regexTQSOP = Regex.Match(line, @"^.+(TQSOP)");
Match regexSOIC16 = Regex.Match(line, @"^.+(SOIC16)");
Match regexSOIC12Plus = Regex.Match(line, @"^.+(SOIC12)");
Match regexSOIC8 = Regex.Match(line, @"^.+(SOIC8)");
Match regexSO8 = Regex.Match(line, @"^.+(SO8)");
Match regexSO08 = Regex.Match(line, @"^.+(SO08)");
Match regexCQFP = Regex.Match(line, @"^.+(CQFP)");
Match regexLCC = Regex.Match(line, @"^.+(LCC)");
Match regexLGA = Regex.Match(line, @"^.+(LGA)");
Match regexOSCCC = Regex.Match(line, @"^.+(OSCCC)");
Match regexPLCC = Regex.Match(line, @"^.+(PLCC)");
Match regexQFN = Regex.Match(line, @"^.+(QFN)");
Match regexQFP = Regex.Match(line, @"^.+(QFP)");
Match regexSOJ = Regex.Match(line, @"^.+(SOJ)");
Match regexSON = Regex.Match(line, @"^.+(SON)");
if (regexBGA.Success || regexSOP8.Success || regexQSOP.Success || regexTQSOP.Success ||
regexSOIC16.Success || regexSOIC12Plus.Success || regexSOIC8.Success || regexSO8.Success ||
regexSO08.Success || regexCQFP.Success || regexLCC.Success || regexLGA.Success ||
regexOSCCC.Success || regexPLCC.Success || regexQFN.Success || regexQFP.Success ||
regexSOJ.Success || regexSON.Success)
{
result.Add(string.Join(" ", line));
}
else
result.Remove(line);
}
// Returns the new list so it can be formatted further.
return result;
}
static List<string> findPackagePlacementChoiceType(List<string> list)
{
// Creates a new list to return with new format.
var result = new List<string>();
// Checks each line in the list.
foreach (var line in list)
{
// PLACEMENT CHOICE Regex
Match regexCAP = Regex.Match(line, @"^.+(CAP)");
Match regexIND = Regex.Match(line, @"^.+(IND)");
Match regexMELF = Regex.Match(line, @"^.+(MELF)");
Match regexDIOM = Regex.Match(line, @"^.+(DIOM)");
Match regexSOD = Regex.Match(line, @"^.+(SOD)");
Match regexSTO = Regex.Match(line, @"^.+(STO)");
Match regexTO = Regex.Match(line, @"^.+(TO)");
if (regexCAP.Success || regexIND.Success || regexMELF.Success || regexDIOM.Success ||
regexSOD.Success || regexSTO.Success || regexTO.Success)
{
result.Add(string.Join(" ", line));
}
else
result.Remove(line);
}
// Returns the new list so it can be formatted further.
return result;
}
ВОПРОСЫ
В настоящее время у меня есть регулярные выражения, которые сортируют и разделяют файл на три отдельных ListBoxes. Однако ... Я бы предпочел поместить данные в один из ListBoxes, а затем отсортировать / удалить изэтот ListBox, если он соответствует правильному регулярному выражению.
- Как мне выполнить загрузку документа .txt в ListBox (с каждой новой строкой, являющейся новым элементом в ListBox)а затем пройдя каждую строку в главном ListBox с регулярным выражением, чтобы определить, переходят ли строки в другой второй или третий ListBox или остаются в main ListBox ?