Как я могу прочитать эти команды из файла, используя? - PullRequest
0 голосов
/ 06 февраля 2020

Я работаю над школьным проектом для своего C# класса, и мне сложно понять, как анализировать эти команды из моего текстового файла.

У меня есть это внутри

I:3 

I:6

В основном я пытаюсь получить эти команды для чтения из файла и выполнить их, что добавит узел в мой связанный список и отобразить это на консоли. Я анализировал файл построчно, но не уверен, как извлечь команды и выполнить их. Поэтому, когда он читает I:3, консоль будет отображать Node1:3, и так далее, и так далее. Спасибо, это то, что я до сих пор:

public class LinkedList {
    Node head; //the head of list
    public class Node {
        public int data;
        public Node next;
        //constructor
        public Node(int d) {
            data = d;
            next = null;
        } //end of constructor
    }
    public void printList() { //traversing list and printing the contents starting from head(1)
        Node n = head;
        while (n != null) {
            Console.Write(n.data + " ");
            n = n.next;
        }
    }
    public void push(int new_data) {
        Node new_node = new Node(new_data); //allocate new node, put in data
        new_node.next = head; //make next of new node as head
        head = new_node; //move the head to point to new node
    }
    //main method to create a linked list with 3 nodes
    public static void Main(String[] args) {
        //starting with an empty list
        LinkedList llist = new LinkedList();
        llist.head = new Node(1);
        Node second = new Node(2);
        Node third = new Node(3);
        //now 3 nodes have been allocated. head, second, and third
        llist.head.next = second; //linking the head (1st) with the second node. these are both now linked.
        second.next = third; //linking second with third. now linked. all 3 are linked now
        //  llist.printList(); 
        int counter = 0;
        string line;
        //read file display line by line
        string pattern =
            new System.IO.StreamReader(@"C:\\Users\text.txt");
        while ((line = file.ReadLine()) != null) {
            System.Console.WriteLine(line);
            counter++;
        }
        file.Close();
        System.Console.WriteLine("There were {0} lines.", counter);
        // Suspend the screen.  
        System.Console.ReadLine();
    }
} //end of

1 Ответ

2 голосов
/ 06 февраля 2020

При изучении языка, и, действительно, в любое время, когда у нас есть сложный алгоритм, мы сначала берем ручку / бумагу и записываем шаги:

Чтение файла, обработка его построчно, разделение строки на двоеточие и взять бит после двоеточия, разобрать его в целое число, pu sh это в список

Превратить его в комментарии кода:

//Read a file,
//process it line by line,
// split the line on colon
// take the bit after the colon,
// parse it to an integer ,
// push it into the list

Теперь поместите код в:

//Read a file,
string[] lines = File.ReadAllLines(@"c:\temp\nodes.txt");

// process it line by line,
foreach(string line in lines){

  // split the line on colon
  string[] bits = line.Split(':');

  // take the bit after the colon and parse it to an integer
  int x = int.Parse(bits[1]);

  //push it into the list
  myList.Push(x);
}

Возможно, вы также можете увидеть эволюцию алгоритма; реализованные шаги немного отличаются от первого процесса, который мы придумали - это нормально, я просто хотел продемонстрировать, что мы не придерживаемся рабского набора шагов, которые мы разработали, но в целом у нас есть дизайн алгоритма на языке высокого уровня мы используем нативно, когда говорим и думаем, и переводим это на язык, который мы изучаем - вы делаете это с иностранным языком, и код не должен отличаться. Оставьте комментарии в качестве указания на то, что вы пытаетесь сделать, например, на демонстрацию своей работы в тесте по математике - если у вас есть комментарии, которые работают, но код, который не работает, тогда, по крайней мере, ваш руководитель может увидеть, что вы пытались сделать, и помогите исправить, если ваше понимание языка пошло не так

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...