コード例 #1
0
        private void SplitFileByLength(int length)
        {
            Encoding encoding = null;

            length = length - 100; //100个字的Buffer
            string str       = FileOperationHelper.ReadFileContent(txbFilePath.Text, ref encoding, Encoding.UTF8);
            int    fileIndex = 1;

            do
            {
                if (str.Length == 0)
                {
                    break;
                }
                string content = str.Substring(0, Math.Min(str.Length, length));
                str = str.Substring(content.Length);

                int i = Math.Min(str.IndexOf('\r'), str.IndexOf('\n'));
                if (i != -1)
                {
                    content += str.Substring(0, i + 2);
                    str      = str.Substring(i + 2);
                }
                string newFile = GetWriteFilePath(fileIndex++);
                FileOperationHelper.WriteFile(newFile, encoding, content);
                rtbLogs.AppendText(newFile + "\r\n");
            } while (true);
        }
コード例 #2
0
        private void SplitFileByLine(int maxLine)
        {
            Encoding encoding      = null;
            string   str           = FileOperationHelper.ReadFileContent(txbFilePath.Text, ref encoding, Encoding.UTF8);
            string   splitLineChar = "\r\n";

            if (str.IndexOf(splitLineChar) < 0)
            {
                if (str.IndexOf('\r') > 0)
                {
                    splitLineChar = "\r";
                }
                else if (str.IndexOf('\n') > 0)
                {
                    splitLineChar = "\n";
                }
                else
                {
                    MessageBox.Show("不能找到行分隔符");
                    return;
                }
            }
            string[] list = str.Split(new[] { splitLineChar }, StringSplitOptions.RemoveEmptyEntries);

            var fileContent = new StringBuilder();
            int fileIndex   = 1;

            for (int i = 0; i < list.Length; i++)
            {
                if (i % maxLine == 0)
                {
                    if (i != 0)
                    {
                        string newFile = GetWriteFilePath(fileIndex++);
                        FileOperationHelper.WriteFile(newFile, encoding, fileContent.ToString());
                        rtbLogs.AppendText(newFile + "\r\n");
                        fileContent = new StringBuilder();
                    }
                }
                fileContent.Append(list[i]);
                fileContent.Append(splitLineChar);
            }
        }