Właśnie zacząłem uczyć się C # dla jednego z moich projektów, w których powinienem być w stanie przeczytać wszystkie dane z pliku tekstowego, a następnie powinienem być w stanie porównać importowane dane z domyślną strukturą danych pliku. Do tej pory mogłem zrobić trochę rzeczy, jednak utknąłem przy podziału importowanych danych na liście z przestrzenią jako ogranicznik, dzięki czemu mogę spróbować porównać go z domyślnymi danymi, które planuję umieścić w Domyślna lista danych.

Struktura pliku (plik1) do importowania (lub podana przez użytkownika) jest następująca: -

%emp_first_name% = xxxxxxxx %emp_middle_name% = xxxxxxxx %emp_last_name% = xxxxxxxx;  
%emp_age% = nn;  
%emp_dept.% = xxxxxxxx;  
%emp_joining_date% = xx-xx-xxxx; 

Domyślna struktura pliku (plik2) to: -

%emp_first_name% = xxxxxxxx %emp_middle_name% = xxxxxxxx %emp_last_name% = xxxxxxxx;  
%emp_age% = nn;  
%emp_total_exp% = xx;  
%emp_grade% = x;  
%emp_dept.% = xxxxxxxx;  
%emp_joining_date% = xx-xx-xxxx; 

Po przeczytaniu pliku1 na liście, nie jestem w stanie podzielić go za pomocą miejsca jako ogranicznika, właśnie robię, aby przeczytać plik1 na listę.


    public static void readFinL(string filename)
            {
                string readAllLines = File.ReadAllText(filename);
    
                List<string> list = new List<string>();
                list.Add(readAllLines);
                foreach (string d in list)
                {
                    var f = d.Split(',');
                    Console.WriteLine(f.GetValue(0));
                }
            }

Co ja nie robię ani tego, że robię nieprawidłowo dzięki tej metodzie przeczytania pliku na liście. Poświęcam dane na liście, ponieważ powinienem być w stanie porównać plik1 za pomocą pliku2, aby sprawdzić, który wiersz jest w pliku1. Pomocny będzie każdy wskaźnik w prawidłowym kierunku.

0
n00b 15 październik 2020, 13:35

1 odpowiedź

Najlepsza odpowiedź

Przede wszystkim d.Split(',') dzieli się przecinkiem. Zamiast tego użyj var f = d.Split(' ') .

Jeśli się nie mylę, File.ReadAllText zwróć pojedynczy ciąg. Twoja lista ma tylko jeden element w ten sposób.

string[] lines = File.ReadAllLines("path to the file")

Powinien wykonać pracę.

0
raulmd13 15 październik 2020, 10:52