Напечатать слова задом наперед и сохранить результат в буфер обмена Windows - Free Pascal
Формулировка задачи:
Здравствуйте всем! Не могу скомпилировать программу! Ошибки! Программа должна переворачивать слова задом наперед ( Миша круто поет- теоп отурк ашиМ)+ результат должен сохряниться в буфере обмена Windows, чтоб можно было результат. например, вставить в блокнот или еще куда-нибудь... Есть вот две программы по-отдельности: 1 программа переворачивает слова наоборот, 2 программа копирует слово в буфер. А вот объединить не получается(( Помогите! 2 дня пытаюсь...
1 программа:
2 программа: нашел код в интернете.
uses crt; var l:integer; t:string; begin clrscr; writeln('vvedite stroky'); readln(t); for l:=length(t) downto 1 do write(t[l]); readkey end.
{$mode delphi} uses windows, sysutils; procedure ToBuffer(s: string); var len: integer; Data: THandle; DataPtr: Pointer; begin if OpenClipboard(0) then try len := Length(s) + 1; Data := GlobalAlloc(GMEM_DDESHARE or GMEM_MOVEABLE, len); try DataPtr := GlobalLock(Data); try Move(pchar(s)^, DataPtr^, len); EmptyClipboard; SetClipboardData(CF_TEXT, Data); finally GlobalUnlock(Data); end; except GlobalFree(Data); end; finally CloseClipboard; end; end; begin ToBuffer('another hello from fpc !!!'); end.
Решение задачи: «Напечатать слова задом наперед и сохранить результат в буфер обмена Windows»
textual
Листинг программы
{$mode delphi} uses windows, sysutils, strutils; procedure ToBuffer(s: string); var len: integer; Data: THandle; DataPtr: Pointer; begin if OpenClipboard(0) then try len := Length(s) + 1; Data := GlobalAlloc(GMEM_DDESHARE or GMEM_MOVEABLE, len); try DataPtr := GlobalLock(Data); try Move(pchar(s)^, DataPtr^, len); EmptyClipboard; SetClipboardData(CF_TEXT, Data); finally GlobalUnlock(Data); end; except GlobalFree(Data); end; finally CloseClipboard; end; end; var s : string; begin write('s = '); readln(s); ToBuffer(ReverseString(s)); end.
Объяснение кода листинга программы
- Открывается буфер обмена Windows.
- Задается длина строки, включая символ новой строки.
- Выделяется память под строку в буфере обмена.
- Получается указатель на выделенную память.
- Копируются символы строки в выделенную память.
- Очищается буфер обмена.
- Устанавливается данные в буфере обмена.
- Закрывается буфер обмена.
- Копируется строка в буфер обмена, предварительно перевернув её.
- Выводится на экран строка, введенная пользователем.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д