Проверить строчная ли буква - Ассемблер.
Нужно сделать так, чтобы прога не меняла маленькие буквы на большие после точки!
USE16
ORG 100H
JMP start
mess0 DB ' OPERATION SUCCESSFUL! $'
error DB 7,' FILE ERROR! $' ; сообщение об ошибке
fName DB 'FILE.TXT',0 ; имя исходного файла
fName1 DB 'NEWF.TXT',0 ; имя нового файла
handle DW 0 ; дескрипторы файлов
buffer DB 512 DUP (' ') ; буфер забьём пробелами
fSize DW ? ; размер файла (пока не знаем)
start:
; открываем исходный файл
MOV AX,3D02h ; режим - чтение/запись
MOV DX,fName ; передаем имя файла
INT 21h
JC stop ; CF(1) - ошибка!
MOV [handle],AX ; запоминаем хэндл файла
; читаем исходный файл
MOV AX,3F00h
MOV BX,[handle] ; номер файла
MOV CX,0FFFFh ; читать байтов: максимум!
MOV DX,buffer ; куда читать..
INT 21h
JC stop
MOV [fSize],AX ; AX = кол-во реально считанных байт
; закрываем исходный файл, он нам больше не нужен
MOV AH,3Eh
MOV BX,[handle]
INT 21h
; обработка данных буфера
; упор идёт на то, что верхний/нижной регистр отличется 5-ым битом, а это 20h
; сперва найдём/изменим первую-заглавную букву, пропустив вначале пробелы
MOV SI,buffer ; настроим SI на буфер
@1:
LODSB ; читаем байт с адреса SI (SI=SI+1)
CMP AL,' ' ; это пробел?
JZ @1 ; да - читаем следующий символ
DEC SI ; нет - перемещаем указатель назад,
ADD BYTE[SI],20h ; ^^..и переводим символ в нижний регистр
; теперь будем искать точку в тексте
MOV DI,buffer ; DI = адрес буфера
MOV CX,[fSize] ; CX = количество символов
MOV AL,'.' ; AL = что будем искать
@2:
REPNE SCASB ; остановиться при совпадении!
INC DI ; пропустим пробел/разделитель после точки
XOR BYTE[DI],20h ; теперь мы на заглавной букве. Меняем её регистр
LOOP @2 ; ищем следующую точку, пока СХ не станет нуль
; покажем сообщение об успешном завершении
MOV AH,9
MOV DX,mess0
INT 21h
; закончили обработку. Данные у нас в буфере
; создание нового файла..
MOV AH,3Ch
MOV DX,fName1 ; адрес с его именем
MOV CX,20h ; атрибут = архивный
INT 21h
JC stop
MOV [handle],AX ; запоминаем номер файла
; запись данных в файл
MOV AH,40h
MOV BX,[handle] ; через его дескриптор
MOV CX,[fSize] ; кол-во байт для записи
MOV DX,buffer ; указываем на буфер данных
INT 21h
JC stop
; закрываем созданный файл
MOV AH,3Eh
MOV BX,[handle]
INT 21h
JC stop
JMP exit ; пропускаем сообщение с ошибкой
; мессага с ошибкой
stop:
MOV AH,9
MOV DX,error
INT 21h
exit: ; выходим из программы по-любой клавише
XOR AX,AX
INT 16h
INT 20h
Программа меняет строчные буквы на прописные в начале каждого предложения
НУ по крайней мере должна)
Ты список дел своих в блокнот записывай а не тут)