C # Создать несколько файлов .txt, используя строки из другого файла и текстового поля - PullRequest
1 голос
/ 25 декабря 2009

Я новичок в программировании. Есть ли способ создать несколько файлов .txt, используя
данные из другого файла в C #.
как это:
1. у нас есть data.txt со 100 или более строками
string1
строка2
string3

...
2. у нас есть textbox1 и textbox2 , ожидающие ввода пользователем строк

3. нам нужно создать 100 или более файлов, используя строки из data.txt и строки textboxes: имя файла fisrt: string1 + textbox1string .txt
и внутри него мы пишем: textbox2string + string1 + textbox1string
тот же шаблон для создания других файлов, второй - string2 + textbox1string .txt и внутри второй - textbox2string + string2 + textbox1string
извините за мой английский, я не являюсь носителем языка.

Ответы [ 3 ]

4 голосов
/ 25 декабря 2009

Ну, звучит так, будто ты хочешь что-то вроде:

string[] lines = File.ReadAllLines("file1.txt");
foreach (string line in lines)
{
    File.WriteAllText(line + textbox1.Text + ".txt",
                      textbox2.Text + line + textbox1.Text);
}

В основном для очень простых задач, подобных этой, методы класса File допускают вызовы "одним выстрелом", которые читают или записывают целые файлы одновременно. Для более сложных вещей вы обычно должны открывать TextReader / TextWriter или Stream.

Если это было не то, что вам было нужно, предоставьте больше информации. Аналогично, если вам трудно понять код, сообщите нам, и мы постараемся объяснить. Вы можете сделать это проще с большим количеством переменных:

string[] lines = File.ReadAllLines("file1.txt");
foreach (string line in lines)
{
    string newFile = line + textbox1.Text + ".txt";
    string fileContent = textbox2.Text + line + textbox1.Text;
    File.WriteAllText(newFile, fileContent);
}

РЕДАКТИРОВАТЬ: Если вы хотите добавить каталог, вы должны использовать Path.Combine:

string newFile = Path.Combine(directory, line + textbox1.Text + ".txt");

(Вы можете сделать это просто с помощью конкатенации строк, но Path.Combine - лучшая идея.)

1 голос
/ 25 декабря 2009

Конечно ...

string textbox1string = textbox1.Text, textbox2string = textbox2.Text;
foreach(string line in File.ReadAllLines("data.txt")) {
    string path = Path.ChangeExtension(line + textbox1string, "txt");
    File.WriteAllText(path, textbox2string  + line + textbox1string);
}
1 голос
/ 25 декабря 2009

Посмотрите на статический класс File. Будет много чего ты хочешь.

http://msdn.microsoft.com/en-us/library/6ka1wd3w.aspx

...