Я пишу программу, которая открывает по одному файлу за раз, анализирует его и выводит проанализированные данные в новый документ .txt, который назван на основе входящего файла. Существует более 50 файлов, которые собираютсядля чтения и анализа.
Так что, если открытый файл был назван примерно так: STACK-OVERFLOW-125663-D2.txt
, выходной файл будет выглядеть примерно так 125663-D2.txt
.
Каждый раз, когда файл читается, он анализируется по номерам деталей.Каждый файл будет содержать строки, аналогичные этим (значения 8-й разделенной запятой (т. Е. 119082, 119083, 119040, 119085, 119084) являются значениями номера детали.) :
"00003",6,"D","C20",-70.10,42.06,90.00,"119082",0,1,2,0,0,"",0,"001"
"00004",6,"D","C21",-67.91,42.06,90.00,"119082",0,1,2,0,0,"",0,"001"
"00005",13,"D","C23",-66.91,59.07,180.00,"119083",0,1,2,0,0,"",0,"002"
"00006",13,"D","R10",-77.32,66.88,90.00,"119040",0,1,2,0,0,"",0,"003"
"00007",13,"D","L3",-77.64,77.48,90.00,"119085",0,1,2,0,0,"",0,"004"
"00008",20,"D","D1",-62.91,103.77,0.00,"119084",0,1,2,0,0,"",0,"005"
"00009",21,"D","D1",-25.83,103.77,0.00,"119084",0,1,2,0,0,"",0,"005"
"00010",14,"D","L3",-40.56,77.48,90.00,"119085",0,1,2,0,0,"",0,"004"
"00011",14,"D","R10",-40.24,66.88,90.00,"119040",0,1,2,0,0,"",0,"003"
Теперь мне нужно проверить другой файл .txt. Допустим, он называется «DATABASE.txt», чтобы увидеть, существуют ли эти номера уже там.Этот файл базы данных будет выглядеть примерно так:
119082: 125663-D2, 123456-A1,
119083: 125663-D2,
119085: 125663-D2, 123456-A1, 987654321-Z11234, 1111111-B50
Итак, в файле DATABASE.txt и в файле, открытом выше, я хочу проверить все номера деталей из открытого файла и посмотреть, если онисуществует в базе данных.
Если деталь существует, я хочу объединить имя файла (выходной файл) до конца строки, в которой был найден номер детали.
Если деталь не существует, я хочу добавить деталь в файл и отсортировать файл, используя list.Sort()
.
ЯНе знаете, как это сделать, кто-нибудь может помочь?
Вот часть моего кода на данный момент:
List<string> partNumberLines = new List<string>();
string file = openFile.FileName;
string splitFile = file.Split('\\');
string[] savedName = splitFile[splitFile.Length - 1].Split('.');
string[] lineNumber = savedNamed[2].Split('-');
string fileName = savedNamed[1] + "-" + lineNumber[0] + ".txt";
foreach (string line in fileList)
{
string[] splitLine = line.Split('\n');
for (int i = 0; i < splitLine.Length; i++)
{
string tempSplit = splitLine[i].Split(','); // splits each line by commas
if (tempSplit.Length.Equals(16))
{
tempSplit[7] = tempSplit[7].TrimStart('"'); //trims the quotes from the part numbers
tempSplit[7] = tempSplit[7].TrimEnd('"');
}
}
}
partNumberLines = partNumberLines.Distinct().ToList(); //gets rid of duplicate partnumbers in one file.
Так что мой код получает всю частьномера и имя файла .. Я просто не знаю, как открыть существующий файл (и, если он не существует, создайте его), выполнить поиск в файле и найти совпадения в списке : partNumberLines
.И если он совпадает, укажите имя файла в текущей строке.Если он не совпадает, создайте новую строку и добавьте номер детали и имя файла, а затем отсортируйте файл численно по номеру детали.
Может кто-нибудь помочь мне разобраться?