Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 03.12.2009
Сообщений: 22

Поиск символьной цепочки

03.12.2009, 17:58. Показов 1884. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! = )

Собственно по сабжу... как можно реализовать поиск символьной цепочки, задаваемой через параметры программы в базовой памяти ПК? Помогите кто чем может = )

P.S. пишем программы под Windows XP запускаемые через командную строку...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.12.2009, 17:58
Ответы с готовыми решениями:

Поиск заданной символьной цепочки на произвольном магнитном диске.
Есть ли исходники или похожие работы? В гугле не нашел. Хотя бы что-то.

Цепочки: поиск и замена символов
Доброго времени суток! Помогите пожалуйста с решением задачи: В строке из 15 символов найти последний символ равный 'n' и...

Поиск заданной цепочки бит в массиве
Помогите разобраться в задании: Сразу же не понятно в массиве чего искать битовую строку? Массиве байтов, слов, двойных слов? ...

7
 Аватар для Goodwin98
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
03.12.2009, 18:23
А что вы понимаете под "базовой памятью ПК" ?
0
0 / 0 / 0
Регистрация: 03.12.2009
Сообщений: 22
03.12.2009, 18:28  [ТС]
Цитата Сообщение от Goodwin98 Посмотреть сообщение
А что вы понимаете под "базовой памятью ПК" ?
Если честно, я сам над этим задумался и все таки думаю что это оперативная память...

Давайте будем считать что это оперативная память...
0
 Аватар для Goodwin98
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
03.12.2009, 18:55
В ОС дос базовая память - это первые 640 кбайт, аддресуемые непосредственно.
В ОС windows такого понятия нет.

Если все таки нужен вариант для доса, то скажите заодно, чем плох тот, который вы предложили на др форуме ?

Добавлено через 6 минут
А ну да, он только параметры принимает

Добавлено через 17 минут
Алгоритм поиска подстроки :

1. сравниваем первый символ из строки с символом в памяти
2. если они совпадают, то сравниваем следующий символ из памяти со вторым символом в строке и т.д. пока не закончится строка ( найдено совпадение ) или символы перестанут быть одинаковыми одинаковыми.
3. если символы не равны, то увеличиваем указатель на память и повторяем п.1
0
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,940
03.12.2009, 20:34
Вот, нашел у себя кусок кода с поиском строки в памяти, правда он под винду, но можно адаптировать...
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
asm//Цикл побайтового поиска-сравнения образца в файле
    {
mov eax,offset mask
push eax
call lstrlen        //узнаем длину образца
mov masklen,eax
cmp eax,size        //если размер файла меньше образца, то искать нет смысла и выходим
jnc ex
mov eax,size        //расчитываем граничный адрес, чтобы не вылезть из файла
sub eax,masklen
add eax,mf          // в еах - адрес последнего сравнения
mov ebx,offset mf
lp1:
    mov ecx,masklen //длина образца
    mov edi,ebx         //смещение в файле, с которого начинается сравнение с образцом
    mov esi, offset mask    //образец
m2:   mov dl,[esi]
    cmp dl,[edi]
   jnz m1           //если отличаются, то продолжить со следующего смещения в файле
   inc esi
   inc edi
   dec ecx
   jnz m2
m1: test ecx,ecx    //если полностью совпало
    jnz nn
   mov res,1            //то вернуть TRUE
   jmp ex
nn: inc ebx         //иначе продолжаем движение по файлу
    cmp eax,ebx         //пока не достигнем эффективного конца
    jnz lp1
ex:   }
mask - строка для поиска
mf - символьный массив в памяти
0
0 / 0 / 0
Регистрация: 03.12.2009
Сообщений: 22
03.12.2009, 22:45  [ТС]
Цитата Сообщение от alexcoder Посмотреть сообщение
Вот, нашел у себя кусок кода с поиском строки в памяти, правда он под винду, но можно адаптировать...
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
asm//Цикл побайтового поиска-сравнения образца в файле
    {
mov eax,offset mask
push eax
call lstrlen        //узнаем длину образца
mov masklen,eax
cmp eax,size        //если размер файла меньше образца, то искать нет смысла и выходим
jnc ex
mov eax,size        //расчитываем граничный адрес, чтобы не вылезть из файла
sub eax,masklen
add eax,mf          // в еах - адрес последнего сравнения
mov ebx,offset mf
lp1:
    mov ecx,masklen //длина образца
    mov edi,ebx         //смещение в файле, с которого начинается сравнение с образцом
    mov esi, offset mask    //образец
m2:   mov dl,[esi]
    cmp dl,[edi]
   jnz m1           //если отличаются, то продолжить со следующего смещения в файле
   inc esi
   inc edi
   dec ecx
   jnz m2
m1: test ecx,ecx    //если полностью совпало
    jnz nn
   mov res,1            //то вернуть TRUE
   jmp ex
nn: inc ebx         //иначе продолжаем движение по файлу
    cmp eax,ebx         //пока не достигнем эффективного конца
    jnz lp1
ex:   }
mask - строка для поиска
mf - символьный массив в памяти
Подзапутался... поиск в памяти, а комментариях про файл говорится...

Или это можно легко адаптировать?)
0
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,940
03.12.2009, 23:16
конечно легко. Где вы здесь видите обращение к файлу? обращение происходит к обычной памяти. Хотя на самом деле просто перед этим фрагментом файл мапировался на пространство памяти для доступа к нему как к массиву символов. Но если Вам нужно делать программу под ДОС, то не забивайте голову, в ДОС такого механизма все равно нет.
0
0 / 0 / 0
Регистрация: 03.12.2009
Сообщений: 22
04.12.2009, 00:23  [ТС]
Цитата Сообщение от alexcoder Посмотреть сообщение
конечно легко. Где вы здесь видите обращение к файлу? обращение происходит к обычной памяти. Хотя на самом деле просто перед этим фрагментом файл мапировался на пространство памяти для доступа к нему как к массиву символов. Но если Вам нужно делать программу под ДОС, то не забивайте голову, в ДОС такого механизма все равно нет.
спасибо буду разбираться = )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.12.2009, 00:23
Помогаю со студенческими работами здесь

Разработать распознаватель заданной символьной цепочки
Необходимо разработать распознаватель заданной символьной цепочки. Символь- ная цепочка задается с помощью формул Бэкуса-Наура. ...

В символьной строке есть цепочки подряд идущих цифр. найдите наибольшее и наименьшее числа, составленные из этих цепочек.
Вот есть закая задача, помогите, пожайлуста! В символьной строке есть цепочки подряд идущих цифр. найдите наибольшее и наименьшее...

В символьной строке есть цепочки подряд идущих цифр. Найти наибольшее и наименьшее числа, составленные из этих цепочек
В символьной строке есть цепочки подряд идущих цифр. Найти наибольшее и наименьшее числа, составленные из этих цепочек.

Поиск цепочки
В стринггриде еcть динамический одномерный массив. Нужно найти в заданной последовательности чисел (в массиве) максимальную по длине...

Поиск цепочки байт в массиве
И снова вопрос по поводу байтов, а точнее по поводу поиска в массиве байтов. Сейчас использую следующий цикл, который перебирает массив,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru