В C#, что является наиболее эффективным методом для разбиения текстового файла на несколько текстовых файлов (разделительный разделитель является пустой строкой), сохраняя кодировку символов?Как разбить текстовый файл на несколько файлов?
5
A
ответ
7
Я бы использовать StreamReader и StreamWriter классы:
public void Split(string inputfile, string outputfilesformat) {
int i = 0;
System.IO.StreamWriter outfile = null;
string line;
try {
using(var infile = new System.IO.StreamReader(inputfile)) {
while(!infile.EndOfStream){
line = infile.ReadLine();
if(string.IsNullOrEmpty(line)) {
if(outfile != null) {
outfile.Dispose();
outfile = null;
}
continue;
}
if(outfile == null) {
outfile = new System.IO.StreamWriter(
string.Format(outputfilesformat, i++),
false,
infile.CurrentEncoding);
}
outfile.WriteLine(line);
}
}
} finally {
if(outfile != null)
outfile.Dispose();
}
}
Вы бы затем вызвать этот метод так:
Split("C:\\somefile.txt", "C:\\output-files-{0}.txt");
0
Исключительно для тех, кто хочет, чтобы не думать:
Если у вас есть файл CSV (значения, разделенные запятыми), и вы хотите разбить файл при изменении поля, определить/назвать файл изменением (без ненужных меток кавычек) и вырезать комментарии/c ertain линии (здесь были определены, начиная с «#)
Модифицированный метод:
public void Split(string inputfile, string outputfilesformat)
{
System.IO.StreamWriter outfile = null;
string line;
string[] splitArray;
string nameFromFile = "";
try
{
using (var infile = new System.IO.StreamReader(inputfile))
{
while (!infile.EndOfStream)
{
line = infile.ReadLine();
splitArray = line.Split(new char[] { ',' });
if (!splitArray[0].StartsWith("\"#"))
{
if (splitArray[4].Replace("\"", "") != nameFromFile.Replace("\"", ""))
{
if (outfile != null)
{
outfile.Dispose();
outfile = null;
}
nameFromFile = splitArray[4].Replace("\"", "");
continue;
}
if (outfile == null)
{
outfile = new System.IO.StreamWriter(
string.Format(outputfilesformat, nameFromFile),
false,
infile.CurrentEncoding);
}
outfile.WriteLine(line);
}
}
}
}
finally
{
if (outfile != null)
outfile.Dispose();
}
}
Местный вызов путь:
string strpath = Server.MapPath("~/Data/SPLIT/DATA.TXT");
string newFile = Server.MapPath("~/Data/SPLIT");
if (System.IO.File.Exists(@strpath))
{
Split(strpath, newFile+"\\{0}.CSV");
}
Смежные вопросы
- 1. Как разбить текстовый файл на несколько файлов на основе строки
- 2. Как разбить один текстовый файл на несколько файлов * .txt?
- 3. Как разбить файл linux на несколько файлов?
- 4. Как разбить файл C на несколько файлов
- 5. Как разбить файл Jquery.js на несколько файлов?
- 6. Разделить текстовый файл на несколько файлов
- 7. Как разбить текстовый файл на несколько столбцов с помощью Spark
- 8. Разделить текстовый файл на несколько файлов C++
- 9. Как разбить текстовый файл на слова?
- 10. Как разбить этот текстовый файл на оболочку?
- 11. Как разбить текстовый файл на разделитель на несколько файлов в unix?
- 12. Как разбить текстовый файл на несколько TXT-файлов или фреймов данных на основе условий в R?
- 13. Как разбить сборку на несколько файлов?
- 14. Как разбить скрипт .sql на несколько файлов?
- 15. Как разбить текстовый файл с помощью PowerShell?
- 16. C++ как разбить код на несколько файлов?
- 17. Как разбить текстовый файл на несколько текстовых файлов с помощью python?
- 18. Как разбить routes.rb на несколько файлов
- 19. Как разбить компоненты js на несколько файлов
- 20. Как разбить большой файл резервной копии MySQL на несколько файлов?
- 21. Как разбить один файл на несколько файлов с помощью perl?
- 22. Как разбить файл на несколько файлов в C?
- 23. React Native: как разбить файл на несколько файлов
- 24. Python, как разбить WAV-файл на несколько .wav-файлов
- 25. Как «разбить» несколько файлов на один базовый файл?
- 26. Как разбить этот файл на несколько файлов в node.js
- 27. Разбить текстовый файл PDB на несколько файлов на основе содержимого каждой строки
- 28. Хотите разбить текстовый файл на один файл на строку
- 29. Как разбить приложение javascript на несколько файлов?
- 30. Как разбить отчет на несколько файлов PDF
Ваше название и ваш фактический вопрос различны. Вы хотите знать, как разбить текстовый файл (заголовок) или как сделать это более эффективно (вопрос)? – 2010-11-30 05:40:36
Я ищу оба. Разделение текстового файла наиболее эффективным способом! – GPX 2010-11-30 05:45:02