У меня есть строка, которая составляет около 1.5 килобайт текста. Я хочу, чтобы мое консольное приложение прочитало его, но только первые 255 символов могут быть вставлены. Как увеличить этот предел? Я буквально читать его с помощью Console.ReadLine() в режиме отладки под визуальным студии 2013Увеличить буфер для Console.Readline?
ответ
От MSDN что-то вроде этого должно работать:
Stream inputStream = Console.OpenStandardInput();
byte[] bytes = new byte[1536]; // 1.5kb
int outputLength = inputStream.Read(bytes, 0, 1536);
вы можете преобразовать массив байтов в строку с чем-то например:
var myStr = System.Text.Encoding.UTF8.GetString(bytes);
Принять в 4m –
Хороший ответ. Не смотрел в MSDN; По умолчанию, я бы взял максимально возможное, хотя. –
Это уже обсуждалось пару раз. Позвольте мне представить вам лучшее решение я видел до сих пор (Console.ReadLine() max length?)
Концепция: verriding функцию Readline с OpenStandartInput (как ребята в комментариях упомянутых):
Реализация:
private static string ReadLine()
{
Stream inputStream = Console.OpenStandardInput(READLINE_BUFFER_SIZE); // declaring a new stream to read data, max readline size
byte[] bytes = new byte[READLINE_BUFFER_SIZE]; // defining array with the max size
int outputLength = inputStream.Read(bytes, 0, READLINE_BUFFER_SIZE); //reading
//Console.WriteLine(outputLength); - just for checking the function
char[] chars = Encoding.UTF7.GetChars(bytes, 0, outputLength); // casting it to a string
return new string(chars); // returning
}
Таким образом, вы можете максимально использовать консоль, и она будет работать более чем на 1,5 КБ.
ОДНА проблема с этим кодом. Он включает в себя символы конца строки, поэтому он фактически нарушил мой код, пока я не поставил '.Trim()' –
Ох, я вижу. CF/EF, да. Извините, я не обратил внимания на это, удачи в вашей программе (: @ acidzombie24 –
- 1. Как увеличить буфер dbms_output?
- 2. Как увеличить буфер?
- 3. Пытается увеличить буфер nginx
- 4. Как увеличить Indy idFTP буфер?
- 5. Увеличить (буфер) прямоугольник в OpenCV
- 6. Console.ReadLine Break
- 7. Использование console.readline()
- 8. Недостаточно хранения доступно для `Console.ReadLine` .`
- 9. Console.ReadLine пропускается
- 10. Console.ReadLine() альтернатива
- 11. Console.Readline Issue
- 12. Необходимо увеличить буфер для очереди сообщений IPC в OpenWRT
- 13. Как увеличить выходной буфер для реализации WebSocket сервера весеннего sockjs
- 14. Реализация Console.ReadLine в WPF?
- 15. Console.ReadLine активируется преждевременно
- 16. Проверка Console.ReadLine()! = NULL
- 17. Объявление нескольких переменных, Console.ReadLine();
- 18. Console.ReadLine («») повторение при перезапуске
- 19. Test Console.ReadLine(); тип ввода
- 20. Console.ReadLine() не работает
- 21. Console.ReadLine(), не нажимая Enter
- 22. console.readline(); не работает
- 23. Console.Read() и Console.ReadLine() FormatException
- 24. Как петля Console.ReadLine?
- 25. Почему Console.ReadLine() игнорирует пробелы?
- 26. C - эквивалент .NET Console.ReadLine
- 27. Console.ReadLine() ToString (генерирует) ошибка
- 28. first Console.ReadLine() сразу возвращается
- 29. Java-эквивалент C# Console.ReadLine();
- 30. Использование Console.WriteLine во Console.ReadLine
Поиск [MSDN] (https://msdn.microsoft.com/en-us/library/system.console.readline%28v=vs.110%29.aspx) для 'Console.Readline' этого комментария" To читать более длинные строки, вызывать метод OpenStandardInput (Int32) «должен был привести вас к [OpenStandardInput] (https://msdn.microsoft.com/en-us/library/5kdtbb63 (v = vs.110) .aspx) –
I Я приму это в качестве ответа. Я написал 'using (var r = new StreamReader (Console.OpenStandardInput (2048))) {myvar = r.ReadLine(); } 'он работал отлично. Я думал, что ответ будет в app.config или Console.IncreaseBuffer (размер) или что-то в этом роде. –
Я не проверял причину, но, похоже, мой последний комментарий имеет проблемы. Он не поднимает полную линию. –