Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
38 / 36 / 12
Регистрация: 06.12.2013
Сообщений: 330
1

Выполнить команду и результат вывести в memo

03.10.2018, 11:50. Показов 1826. Ответов 7
Метки нет (Все метки)

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

мне нужно повесить несколько команд на кнопки (к примеру выполнить команду ROUTE PRINT) и вывести результат в memo
в интернете нашел несколько вариантов, но как всегда проблема с кодировкой.
подскажите как решить проблему
Вложения
Тип файла: 7z route.7z (60.2 Кб, 11 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.10.2018, 11:50
Ответы с готовыми решениями:

Как вывести в Memo результат от процедуры
Вот задача Реализовать рекурсивный алгоритм, в результате выполнения которого на экран выводится...

Протабулировать функцию, результат вывести в поле Memo
Пожалуйста, помогите. Нужно протабулировать функцию в delphi

Протабулировать функцию, результат вывести в поле Memo
Буду очень благодарен если кто-то поможет.

Сложить числа, записанные в Memo, и вывести результат в Label
Добрый день, у меня в Memo на каждой строчке записаны числа, как сложить эти цифры и вывести на...

7
38 / 36 / 12
Регистрация: 06.12.2013
Сообщений: 330
03.10.2018, 15:22  [ТС] 2
Спасибо за понимание и терпение )

справился сам
удалил
OemToAnsi(Buffer, Buffer);
и дописал
AMemo.Text := ConsoleToUTF8(AMemo.text + string(Buffer));

Добавлено через 29 минут
Попутно еще вопрос, если ввести команду "help" то половина кракозябры половина нет
Как исправить чтобы все отображалось в читаемом виде?
0
38 / 36 / 12
Регистрация: 06.12.2013
Сообщений: 330
04.10.2018, 09:31  [ТС] 3
Утро доброе!

проблему решил не там написал consoletoutf8
AMemo.Text := AMemo.text + consoletoutf8(string(Buffer));
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32856 / 21190 / 8151
Регистрация: 22.10.2011
Сообщений: 36,447
Записей в блоге: 8
04.10.2018, 09:36 4
А теперь внимательно смотрим на реализацию этой самой ConsoleToUTF8:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function SysToUTF8(const s: string): string;
begin
  {$IFDEF UTF8_RTL}
  Result:=s;
  {$ELSE}
  if NeedRTLAnsi and (not IsASCII(s)) then
  begin
    Result:=AnsiToUTF8(s);
    {$ifdef FPC_HAS_CPSTRING}
    // prevent UTF8 codepage appear in the strings - we don't need codepage
    // conversion magic in LCL code
    SetCodePage(RawByteString(Result), StringCodePage(s), False);
    {$endif}
  end
  else
    Result:=s;
  {$ENDIF}
end;
 
function ConsoleToUTF8(const s: string): string;// converts UTF8 string to console encoding (used by Write, WriteLn)
begin
  Result := SysToUTF8(S);
end;
, откуда следует, что на нормальном Лазарусе (не устаревшем, а на том, где весь RTL - юникодный, что означает наличие UTF8_RTL) эту функцию можно выкинуть на фиг, потому что она тупо вернет исходную строку, но через две обертки.
0
38 / 36 / 12
Регистрация: 06.12.2013
Сообщений: 330
04.10.2018, 09:47  [ТС] 5
Lazarus 1.8.4
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32856 / 21190 / 8151
Регистрация: 22.10.2011
Сообщений: 36,447
Записей в блоге: 8
04.10.2018, 10:12 6
Открой файл LazUTF8.pas в IDE Лазаруса, найди там ту самую функцию SysToUTF8 (проще всего это сделать через Ctrl+Click для перехода к заголовку и далее Ctrl+Shift+"стрелка вверх" для перехода к реализации функции), и посмотри, какая из веток активна: та, которая внутри {$ifdef UTF8_RTL} или другая. Это видно сразу: активная отображается нормальным шрифтом, неактивная - приглушенным).
0
38 / 36 / 12
Регистрация: 06.12.2013
Сообщений: 330
04.10.2018, 10:38  [ТС] 7
та, которая внутри {$ifdef UTF8_RTL}
а consoletoutf8 другая
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
function ConsoleToUTF8(const s: string): string;// converts console encoding to UTF8
var
  Dst: PChar;
begin
  Dst := AllocMem((Length(s) + 1) * SizeOf(Char));
  if OemToChar(PChar(s), Dst) then
    Result := StrPas(Dst)
  else
    Result := s;
  FreeMem(Dst);
  Result := WinCPToUTF8(Result);
end;
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32856 / 21190 / 8151
Регистрация: 22.10.2011
Сообщений: 36,447
Записей в блоге: 8
04.10.2018, 10:54 8
Ясно. Они для каждой платформы отдельный файл сделали. У меня unixlazutf8.inc...
1
04.10.2018, 10:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.10.2018, 10:54
Помогаю со студенческими работами здесь

Выполнить над числами указанное действие и вывести результат
Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 — вычитание, 3...

Выполнить над числами указанное действие и вывести результат.
Арифметические действия над числами пронумерованны следующим образом: 1-сложение, 2- вычитание, 3-...

Выполнить над числами указанное действие и вывести результат
Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 — вычитание, 3...

Выполнить над числами указанное действие и вывести результат
14 Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 —...

Выполнить над числами указанное действие и вывести результат
Задание: Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 —...

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


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

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