Loopback
|
Posted: Wed Feb 12, 2025 15:45 Post subject: |
|
|
AkulaBig wrote: | А применение List() не решит проблему? |
Не решит, потому что 32767 это не моё ограничение, а системных Ini-функций, которые, к слову, микрософтом еще тридцать лет назад были названы устаревшими. Чтобы его обойти, необходимо писать свою поддержку ini.
AkulaBig wrote: | А без командной записи никак. |
AkulaBig wrote: | А хотелось-бы: |
Как это никак? За исключением нескольких небольших исключений, любую функцию можно записать в функциональной записи.
Code: |
Func SwitchIniSect(sIni, sSectSource, sSectTarget)
Local SwitchSect = List()
SwitchSect.Text = IniReadSection(sIni, sSectSource)
IniWriteSection(sIni, sSectTarget, SwitchSect.Text)
EndFunc
|
Только зачем читать в список и потом из него обратно, если читаемый и записываемый блок совместим по формату и его можно писать без изменений. И поскольку IniRenameSection точно так же читает и записывает содержимое секции, это полностью равноценно:
Code: |
Func SwitchIniSect(sIni, sSectSource, sSectTarget)
IniRenameSection(sIni, sSectSource, sSectTarget)
EndFunc
|
AkulaBig wrote: | Хотелось-бы узнать, что это за команда. |
Это загадочная магическая связка. По номерам сообщений нельзя достоверно сказать, что по факту она делает, не является ли то, что она делает побочным эффектом чего-то другого, и не создает ли она сама побочные эффекты.
147 = 0x93, в MSDN такого сообщения нет, изредка мелькает некая WM_UAHINITMENU, что вообще нерелевантно. Возможно, какие-то внутренние сообщения Delphi.
1045 = 0x415 - видимо, WM_USER + 0x15.
Понятно, что использование такого не от хорошей жизни, но... |
|