Как отобразить часть строки в файле .txt - C # - PullRequest
0 голосов
/ 25 февраля 2011

Мне нужна базовая помощь.
У меня есть папка, в которой есть файл.
В файле есть две строки, а данные в строках разделяются знаком «//».

Пример:

В папке @ "C: \ ExampleFolder_ABCD \" есть папка
В папке находится файл @ "C: \ ExampleFolder_ABCD \ ExampleFile_ABCD.txt"
В файле две строки:

Имя_1 // Описание_1
Имя_2 // Описание_2

Мне нужна моя программа для отображения первой части каждой строки , части перед "//" и только этой части.
Я провел некоторые исследования, но рассчитываю на помощь в реальном времени.

Конечно, любая помощь, хорошая или плохая, будет принята с благодарностью.
ВНИМАНИЕ: Это не имеет ничего общего с домашней работой. Это касается моего проекта, который поможет мне организовать мою телефонную книгу.

Ловро Мирник

Если вы хотите провести тестирование, скопируйте приведенный ниже код во вновь созданное пространство имен, отредактируйте и выполните его.

string MainDirectoryPath = @"C:\ExampleFolder_ABCD\"; // Example directory path - Completely random name (100% no overwrite)
string MainFileName = @"C:\ExampleFolder_ABCD\ExampleFile_ABCD.txt"; // Example file path - Completely random name (100% no overwrite)
Directory.CreateDirectory(MainDirectoryPath); // Create the directory.
StreamWriter CreateExampleFile = new StreamWriter(MainFileName); // Create the file.
CreateExampleFile.Close(); // Close the process.
StreamWriter WriteToExampleFile = File.AppendText(MainFileName); // Append text to the file.
WriteToExampleFile.WriteLine("Name_1 // Description_1"); // This line to append.
WriteToExampleFile.WriteLine("Name_2 // Description_2"); // This line to append.
WriteToExampleFile.Close(); // Close the process.
//
//
// I would like to know how to display both names in a list
// without the Description part of the line.
// Maybe with a command that contains "* // *" ??

Ответы [ 4 ]

0 голосов
/ 25 февраля 2011

Другой вариант, использующий метод Split для строкового объекта:

var result = myString.Split(new char[] {'/','/'})[0]

Просто разбивает строку, где он находит "//", в массив. Затем вы вытягиваете первый элемент в массиве.

0 голосов
/ 25 февраля 2011

Из вашего опубликованного примера все, что вам нужно будет сделать, это разделить каждую строку на "\\\\" (вам придется избегать косых черт).Возьмите первый результат разбиения и все готово.

0 голосов
/ 25 февраля 2011

Вот код:

StreamReader Reader = new StreamReader(MainFileName);
            char c = Convert.ToChar(@"/");
            Char[] splitChar = { c, c };
            String Line;
            while (!Reader.EndOfStream)
            {
                Line = Reader.ReadLine();
                String[] Parts;
                Parts = Line.Split(splitChar);
                foreach (string s in Parts)
                {
                    Console.WriteLine(s);
                }
            }
            Reader.Close();
            Console.WriteLine("Done");
0 голосов
/ 25 февраля 2011

Я думаю, вы найдете здесь все, что вам нужно: http://www.dotnetperls.com/string-split

Примерно посередине есть куча строк разделения кода из текстового файла, вы можете использовать его после замены части разделения на что-то вроде

Regex.Split(myline, "\\\\")[0]

Это должно работать как шарм.

...