![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| developer2007 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 5.11.2007 Репутация: -1 Всего: -2 |
Читаю из консоли с помощью ReadConsoleOutputCharacter(hStdOut,PChar(lpBuff),ScrBuff.dwMaximumWindowSize.X, dwReadCoord, dwAvail). Проблема в том, что когда текста в строчке меньше чем ScrBuff.dwMaximumWindowSize.X, то добавляется ненужный мусор из параметров запуска программы. Это было почёрпнуто из МСДН. Надо как-то читать ровно столько в строчке символов, сколько их там есть, чтобы не было мусора. Кол-во символов в строке всегда переменно.
--------------------
У настоящего програмёра прога пишется на асме с использованием натив апи |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 15 Всего: 72 |
Что из себя представляет lpBuff?
Добавлено через 2 минуты и 28 секунд В любом случае - нужно сперва прочитать с максимальным размером буфера, а потом подогнать размер буфера под реально прочитанное. |
|||
|
||||
| developer2007 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 5.11.2007 Репутация: -1 Всего: -2 |
lpBuff : string;
SetLength(lpBuff,ScrBuff.dwMaximumWindowSize.Y*ScrBuff.dwMaximumWindowSize.X); Добавлено через 1 минуту и 20 секунд А как тогда подогнать? Я же не знаю реальную длину текста - если при чтении беру по максимуму то в буфер попадает белиберда из параметров запуска и определить примерно где есть что только pos можно. --------------------
У настоящего програмёра прога пишется на асме с использованием натив апи |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 15 Всего: 72 |
||||
|
||||
| Romikgy |
|
||||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
зачем ? если
и после этого всего имхо нужно
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
||||||
|
|||||||
| kami |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 15 Всего: 72 |
Только если после SetLength сделать
Иначе в "незадействованной" части строки будет мусор, который для Trim не по зубам. Или (что правильнее - вдруг все прочитанное это пробелы, символы CR и LF после ReadConsoleOutputCharacter сделать
|
||||
|
|||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
нинаю у мя ReadConsoleOutputCharacter где пусто в консоли было всегда выдает забитое место пробелами , а мусор имхо от того что выделеная область намного больше чем читаемая.... -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| developer2007 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 112 Регистрация: 5.11.2007 Репутация: -1 Всего: -2 |
Спасибо, камрад, как я сам не додумался! Помогло. --------------------
У настоящего програмёра прога пишется на асме с использованием натив апи |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |