fakiri4
1

Удаление из строки определенных сочетаний символов

29.10.2012, 16:20. Показов 1021. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Суть программы: пользователю необходимо задать строку символов и отдельно 4 слова. Необходимо вывести на экран строку, в которой удалены эти 4 слова, совпадающие со словами в исходной строке( если такие имеются). Работает все верно, но когда, например, задаем исходную строку: 1111222233333, и например, одно из слов: 1122, то оно не удаляется. У меня не получается исправить эту ошибку, помогите пожалуйста кто сможет
Основная программа:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
masm
model small  
.stack 100h
.data  
    StrSimvols db 'VVEdite stroku simvolov: $'
    Slovo1 db 'VVedite 1-e slovo: $'
    Slovo2 db 'VVedite 2-e slovo: $'
    Slovo3 db 'VVedite 3-e slovo: $'
    Slovo4 db 'VVedite 4-e slovo: $' 
    StrResult db 'Stroka posle udaleniya slov $'
            
    Str1 label Byte 
    maxL db 126
    ;actL db ?
    field db 124 dup (?)     
          
    t1 db 126,?,124 dup (?)
    t2 db 126,?,124 dup (?)
    t3 db 126,?,124 dup (?)
    t4 db 126,?,124 dup (?)
    ;temp  dw ?
          
    .code   
        Assume ds:@data, es:@data
    include filelib.asm
program:  
    mov ah, 00h
    mov al, 03h
    int 10h    
    mov ax, @data
    mov ds, ax
    mov es, ax   
     
     
  
    VivodM StrSimvols
    StrVvod Str1  
    PositionCur 1 
    StrVivod Str1 
    
    
    VivodM Slovo1    
    StrVvod t1
    PositionCur 3   
    StrVivod t1 
          
    VivodM Slovo2    
    StrVvod t2
    PositionCur 5   
    StrVivod t2 
                                
    VivodM Slovo3    
    StrVvod t3
    PositionCur 7   
    StrVivod t3 
          
    VivodM Slovo4    
    StrVvod t4
    PositionCur 9   
    StrVivod t4 
 
    SlovoDel t1
    SlovoDel t2 
    SlovoDel t3
    SlovoDel t4 
 
    MOV  AH,02     ;Запрос на установку курсора
    MOV  BH,00     
    MOV  DH,15     
    MOV  DL,12
    INT  10H 
    VivodM StrResult
    MOV  AH,02     ;Запрос на установку курсора
    MOV  BH,00    
    MOV  DH,16     
    MOV  DL,12
    INT  10H 
    StrVivod Str1  
    mov ah, 07h
    int 21h        
    mov ax, 4c00h
    int 21h
    
end program
Подключаемая программа:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
VivodM macro Mess
    mov dx, offset Mess
    mov ah, 09h
    int 21h
    PushEnter
endm
 
StrVvod macro StrT
    lea dx, StrT
    mov ah, 0ah
    
    int 21h
    mov ah, 0h
    inc dx                          
    mov bx, dx
    mov al, [StrT+1]
    add bx, ax
    mov [bx+1], '$' 
endm
 
StrVivod macro StrStr
    push ax
    lea dx, StrStr
    add dx,2 
    mov ah, 09h
    int 21h
    pop ax     
    PushEnter 
endm
 
PositionCur macro Row
    push ax 
    push dx
    mov ah, 02h
    mov dh, Row
    mov dl, 00h
    mov al, 0h
    int 10h
    pop dx   
    pop ax
endm
 
PushEnter macro
    push dx
    push ax
    mov dl, 0ah
    mov ah, 02h
    int 21h      
    mov dl, 0dh
    mov ah, 02h
    int 21h 
    pop ax
    pop dx
endm
 
 
SlovoDel macro word
    local circle, quit, found,start, circle2
    xor dx,dx
    xor ax,ax
    xor cx,cx
    xor di,di
    xor si,si
 
    mov al, str1+1
    mov ah, word+1
    
    cmp ah,al
    jg quit
    
    cmp ah, 0h
    je quit
 
    
    start:
    lea di,str1+2
    lea ax,str1
    add ax,2
    add al,[str1+1]
    sub al,[word+1]
    
    circle:
    cmp di,ax
    ja quit
    mov Cl,word+1
    inc cl
    lea SI,word+2
    REPE CMPSB
    jcxz found
    jmp circle                                              
    
    found: 
    mov bl, [word+1]
    mov bh, 0h
    inc bl
    sub di, bx
    lea si, str1
    mov si, di
    mov ah, 0h
    mov bl, [word+1]
    add si, bx
 
    circle2:
    lods str1
    stos str1
    cmp al, '$'
    je start
    jmp circle2
   
    quit:
endm
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2012, 16:20
Ответы с готовыми решениями:

Удаление из имён файлов определённых символов и сочетаний символов
Есть много обложек и в названиях присутствуют знаки "%2C+" и "+" (без кавычек) пример:...

Удаление из файла строк, начинающихся с определённых сочетаний символов
Подскажите пожалуйста. В папке имеется текстовой документ, допустим 1.txt. В нём необходимо удалить...

Удаление определенных символов из строки
Открываем txt файл со строкой в мемо1. тут все ок) { if(OpenDialog1->Execute()) {...

Удаление из строки определенных символов
Подскажите плиз функцию которая удаляет с строки символы. Например ввели символ А и с строки str...

1
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
29.10.2012, 16:48 2
не хочу разбираться в кодах, дам намек: Вы предусмотрели то, что если будет найдена только первая половина слова, а вторая отличается, то поиск нужно продолжить со следующей позиции, на которой нашли первое вхождение???
0
29.10.2012, 16:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2012, 16:48
Помогаю со студенческими работами здесь

Удаление нескольких определенных символов из строки
Наверное детский вопрос, но все же: есть строка из неё надо удалить все символы препенания (точки,...

Ввод только определенных символов, удаление запрещенных символов из ячейки ввода
Добрый вечер! Подскажите, пожалуйста, как можно такое реализовать посредством jQuery. Вот форма: ...

Удаление букв и определенных символов
Здравствуйте. Задание - реализовать "вычислитель" арифметического выражения. С этим справился....

Удаление из ячейки определенных символов
Есть таблица, в определенную ячейку я ввожу полный адрес, т.е. в нем содержаться запятые и точки....


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru