Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как вставить содержимое файла в текущую позицию курсора в компоненте TMemo

Delphi , Компоненты и Классы , TMemo и TRichEdit

Как вставить содержимое файла в текущую позицию курсора в компоненте TMemo

Муж в больнице после операции. Приехала навестить, а там обход. Врач спрашивает:
-Температура какая?
Он отвечает:
-Нормальная! 33,6...
Врач странно так посмотрела, говорит:
-Это нормальная?
Муж:
-Нет?
А я стою и думаю: Нормальная, не нормальная, а у меня больше и не бывает...


var
  TheMStream: TMemoryStream;
  Zero: char;
begin
  TheMStream := TMemoryStream.Create;
  TheMStream.LoadFromFile('C:.BAT');
  TheMStream.Seek(0, soFromEnd);
  //Null terminate the buffer!
  Zero := #0;
  TheMStream.write(Zero, 1);
  TheMStream.Seek(0, soFromBeginning);
  Memo1.SetSelTextBuf(TheMStream.Memory);
  TheMStream.Free;
end;

Here is the translation of the content into Russian:

Вы хотите вставить содержимое файла в текущую позицию курсора в компоненте TMemo. Код:

var
  TheMStream: TMemoryStream;
  Zero: char;

begin
  TheMStream := TMemoryStream.Create;
  TheMStream.LoadFromFile('C:\\.BAT');
  TheMStream.Seek(0, soFromEnd);
  //Null terminate the buffer!
  Zero := #0;
  TheMStream.Write(Zero, 1);
  TheMStream.Seek(0, soFromBeginning);
  Memo1.SetSelTextBuf(TheMStream.Memory);
  TheMStream.Free;
end;

Код создает объект TMemoryStream, чтобы хранить содержимое файла. Затем он загружает содержимое файла в поток с помощью LoadFromFile. Позиция курсора в компоненте TMemo не используется в этом коде, поэтому unclear, что вы имеете в виду под "текущей позицией курсора". Однако, если вы хотите вставить содержимое файла в конкретную позицию в тексте мемо, вы можете использовать Memo1.SelText := Memo1.Text + TheMStream.Memory; вместо Memo1.SetSelTextBuf(TheMStream.Memory);. Это добавит содержимое файла к текущему тексту выбора в мемо. Также, пожалуйста, учитывайте, что загрузка файла .BAT в компоненте TMemo может не быть безопасной, если вы ожидаете, что файл будет содержать простой текст. Файлы .BAT могут содержать исполняемые команды и потенциально могут нанести вред вашему системе, если они будут выполнены. Наконец, рекомендуется использовать блоки try-finally, когда работаете с ресурсами системы, такими как потоки:

var
  TheMStream: TMemoryStream;

begin
  TheMStream := TMemoryStream.Create;
  try
    TheMStream.LoadFromFile('C:\\.BAT');
     //...
  finally
    TheMStream.Free;
  end;
end;

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

В статье описывается способ вставки содержимого файла в текущую позицию курсора в компоненте TMemo Delphi, используя ТMemoryStream и метод SetSelTextBuf.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: TMemo и TRichEdit ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:49:59/0.0054750442504883/1