- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
// Функция считывания списка из файла
private: int readContactList( System::String^ path ) {
contact_list_->clear();
try {
System::IO::StreamReader^ reader = gcnew System::IO::StreamReader( path ); // Объект чтения из файла
try {
System::String^ line; // считываемая строка
array<String^>^ contact = gcnew array<String^>( 32 ); // считываемая строка будет разбиваться
array<String^>^ separator = { " " }; // разделитель строки - пробел
list_node* node; // вершина списка
while( line = reader->ReadLine() ) {
contact = line->Split( ' ' ); // разделяем строку по пробелам
if ( contact->Length != 3 ) // Должно быть три числа
return 4;
try {
node = new list_node(); // Заводим вершину и инициализируем ее поля
node->element_number_ = Int32::Parse( contact[ 0 ] );
node->circuit_number_ = Int32::Parse( contact[ 1 ] );
node->contact_number_ = Int32::Parse( contact[ 2 ] );
contact_list_->pushBack( node );
} catch (Exception^ e) { // В случае ошибки удаляем вершину из кучи и выходим
delete node;
return 4;
}
}
} catch ( Exception^ e ) {
return 2;
}
} catch ( Exception^ e ) {
return 1;
}
return 0;
}