169 похожих чатов

Никто случаем не знает, как по-хорошему делается дозапись текста в

edit на винапи?

25 ответов

42 просмотра

Как это дозапись? Типа автозаполнения?

The Bird of Hermes- Автор вопроса
КТ315
Как это дозапись? Типа автозаполнения?

Ну типа добавляется ещё текст к тому, что уже был

The Bird of Hermes
Ну типа добавляется ещё текст к тому, что уже был

Так просто прочитай (GetDlgItemTextA/GetWindowTextA), и допиши, затем вставь.

The Bird of Hermes- Автор вопроса
КТ315
Так просто прочитай (GetDlgItemTextA/GetWindowText...

Я планирую чтобы в этом edit было прям возможно очень много текста

The Bird of Hermes
Я планирую чтобы в этом edit было прям возможно оч...

Так получи размер текста, который там вписан, и выдели память.

The Bird of Hermes- Автор вопроса
КТ315
Так получи размер текста, который там вписан, и вы...

Так этот текст ещё надо получить, склеить с полученными данными и установить обратно, че то у меня подозрения есть что весьма затратная операция. В тырнетах предлагали через SETSELECTED и REPLACESELECTED, но я беспокоюсь за сохранность фокуса и уже возможно выделенного текста

The Bird of Hermes
Так этот текст ещё надо получить, склеить с получе...

Это за пару миллисекунд всё сделается. GetWindowTextLength+GetWindowTextA+VirtualAlloc+movaps+SetWindowTextA+VirtualFree

The Bird of Hermes- Автор вопроса
КТ315
Это за пару миллисекунд всё сделается. GetWindowTe...

Даже при условии того, что у меня будет потенциально огромный кусок текста?

The Bird of Hermes
Даже при условии того, что у меня будет потенциаль...

Насколько? 1 гигабайт текста склеит не больше, чем за 2-3 секунды, думаю.

The Bird of Hermes- Автор вопроса
КТ315
Насколько? 1 гигабайт текста склеит не больше, чем...

А вот фиг знает сколько там с порта может налететь

The Bird of Hermes
А вот фиг знает сколько там с порта может налететь

А с чем ты склеивать собрался? Тоже переменными данными, или свои какие-то?

The Bird of Hermes- Автор вопроса
The Bird of Hermes
Переменные, с порта

Склеить данные с порта с другими данными с порта?

The Bird of Hermes- Автор вопроса
КТ315
Склеить данные с порта с другими данными с порта?

Склеить уже имеющиеся данные в эдите с новыми данными. Типа чтоб в реальном времени выводить все, что на порте появляется

The Bird of Hermes
Склеить уже имеющиеся данные в эдите с новыми данн...

Зачем? Это для чего? Почему нельзя просто изменять данные в EDIT, зачем склеивать?

The Bird of Hermes- Автор вопроса
КТ315
Зачем? Это для чего? Почему нельзя просто изменять...

Чтобы отслеживать что было отправлено ранее тоже

The Bird of Hermes
Чтобы отслеживать что было отправлено ранее тоже

Сделай просто лог-файл. А в окно выводи только настоящее, и предыдущее значение.

The Bird of Hermes- Автор вопроса
КТ315
Сделай просто лог-файл. А в окно выводи только нас...

Его нельзя будет отслеживать в реальном времени

КТ315
Так просто прочитай (GetDlgItemTextA/GetWindowText...

Жесть ты весь api знаешь или гуглишь так быстро?

The Bird of Hermes- Автор вопроса
Alexey
Жесть ты весь api знаешь или гуглишь так быстро?

Да эти штуки быстро запоминаются, нужны часто

The Bird of Hermes
Его нельзя будет отслеживать в реальном времени

Сделай как Томаш - просто выдели огромный кусок памяти, и там склеивай сколько хочешь, и проверяй, подходит ли память к концу. Когда подходит - VirtualFree+VirtualAlloc, указатель измени, и снова пиши сколько хочешь.

The Bird of Hermes- Автор вопроса
The Bird of Hermes
А почему не malloc/free?

Фуу, это же Сишные, там куча обёрток. Медлятина.

The Bird of Hermes- Автор вопроса
The Bird of Hermes
Хм, в принципе, аргумент

VirtualAlloc почти сразу прыгает в NtVirtualAlloc, а там в ядро. Кстати, можешь сразу импортировать ntdll.NtVirtualAlloc, будет ещё круче.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта