Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
 Аватар для Argus19
1446 / 463 / 78
Регистрация: 24.09.2017
Сообщений: 2,542
Записей в блоге: 24

Библиотека дополнительных строковых функций

09.11.2025, 20:10. Показов 1785. Ответов 25

Студворк — интернет-сервис помощи студентам
К написанию dll на С++ побудила фраза:
Цитата Сообщение от testuser2 Посмотреть сообщение
1) InStr для массивов. Итак, начнем с функции InStr. Не хватает реализации этой функции для массивов, говоря по иному, чтобы функция могла искать блок памяти в другом блоке памяти, реализовать хочу, как поиск любого массива внутри любого массива (не ссылочного ест-но)
На странице:
https://metanit.com/cpp/tutorial/12.6.php
Почитал о возможностях типа С++ std::string. К сожалению, ожидал чего-то фантастического, но так и не увидел. Реализовал:
1). функции поиска вхождения подстроки в строку с начала и конца строки для массивов строк;
2). поиск количества вхождений подстроки в строку;
3). странную функцию поиска вхождений любого набора символов подстроки в строку с начала и конца.
Больше ничего придумать не смог.
В пример кода всё, вроде бы понятно. Если что, отвечу на вопросы.
К сожалению, так и не получилось правильно возвращать строку в формате BSTR из dll.
Вложения
Тип файла: zip Проверка функций.zip (11.8 Кб, 7 просмотров)
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.11.2025, 20:10
Ответы с готовыми решениями:

Использование строковых функций
Нужно из введённого текста вывести слова заданной длинны.

Из символов одного текста строковых функций о операций конкатенация получить другой текст
Из символов одного текста с помощью строковых функций о операций конкатенация получить другой...

Сравнение строковых переменных. Где ошибка ?
Задача: Вводятся названия 3-х отелей. Напечатать сообщение о наличии или отсутствии одинаковых...

25
1402 / 860 / 93
Регистрация: 08.02.2017
Сообщений: 3,671
Записей в блоге: 2
13.11.2025, 08:57
Студворк — интернет-сервис помощи студентам
Mikle Quits, так тоже издержки, не хватает специальной функции, надо срочно её делать! )
0
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
13.11.2025, 09:11
Цитата Сообщение от Mikle Quits Посмотреть сообщение
Медленнее, но без издержек:
mid(str2, i, 1) - тут временная строка создается.
Тут достаточно RtlCompareMemory которая без издержек сделает. Можно еще использовать такую функцию:
Visual Basic
1
2
3
4
5
Private Declare Function StrCmpNW Lib "shlwapi" (ByVal p1 As Long, ByVal p2 As Long, ByVal c As Long) As Long
 
Private Sub Form_Load()
    Debug.Print StrCmpNW(StrPtr("Hello world"), StrPtr("Hell"), 3)
End Sub
Добавлено через 1 минуту
https://learn.microsoft.com/ru... pi-strcpyw - тут куча встроенных строковых функций на любой вкус.
1
 Аватар для Mikle Quits
785 / 308 / 17
Регистрация: 21.01.2023
Сообщений: 529
13.11.2025, 09:33
Цитата Сообщение от The trick Посмотреть сообщение
тут временная строка создается
Да, конечно. Просто я подумал, что речь идёт об издержках выделения памяти в случае, когда строки длинные.
0
 Аватар для Апострофф
9912 / 3933 / 743
Регистрация: 11.10.2011
Сообщений: 5,913
13.11.2025, 10:21
Цитата Сообщение от testuser2 Посмотреть сообщение
функция StartsWith, которая проверяет включает ли строка1 строку2 в своем начале
Visual Basic
1
StartsWith=INSTR(1,S1,S2)=1
Или о чем дискуссия?
0
1402 / 860 / 93
Регистрация: 08.02.2017
Сообщений: 3,671
Записей в блоге: 2
13.11.2025, 10:24
Апострофф, инстр не найдёт и пойдет искать по всей строке, издержки производства опять )
1
1402 / 860 / 93
Регистрация: 08.02.2017
Сообщений: 3,671
Записей в блоге: 2
16.11.2025, 04:22
Цитата Сообщение от Апострофф Посмотреть сообщение
StartsWith=INSTR(1,S1,S2)=1
От, придумал )
Visual Basic
1
StartsWith = InStrRev(str1, str2, Len(str2))
Правда InStrRev есть только без B-версии, но в моей библиотеке уже есть InStrRevB, еще есть InStrB2, позволяющая использовать отрицательный индекс
Visual Basic
1
EndsWith = InStrB2(-LenB(str2), str1, str2)
Добавлено через 1 минуту
С обычным инстрбом, преимущество отрицательного индекса очвидно )
Visual Basic
1
EndsWith = InStrB(LenB(str1) - LenB(str2) + 1, str1, str2)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.11.2025, 04:22

Нужен программный код.«Обработка строковых данных».
Дан текст из цифр и строчных латинских букв, за которым следует точка. Определите, каких букв —...

Обработка строковых данных
Здравствуйте. Помогите вот с этими двумя заданиями : 1. Ввести предложение и слово. Определить...

Быстрое копирование динамических строковых массивов с помощью API
Известен ли способ, скажем с помощью копирования областей памяти API Быстрого копирования...

Передача объёмистых строковых данных между приложениями
Нужно из одного приложения (VB6 Standard EXE) передать в другое приложение (тоже VB6 Standard EXE)...

Портятся значения строковых переменных
Коллеги, есть серьезная проблема: в программе на VB6 самопроизвольно портятся значения строковых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru