1 (изменено: SuBrex, 2020-07-29 22:15:06)

Тема: AHK: Перенос строки в ini файле

У меня в GUI есть раздел заметок для самого себя. Для этого я сохраняю содержимое заметок в файл ini. Но проблема в том, что в сам файл записывается всё, но после знака "=" стоит лишь первая строка заметок, следовательно при запуске скрипта в контролле также появляется 1 строка. Мне нужно, чтобы в нём были все строки текста в заметках.
Подскажите, пожалуйста, как решить эту проблему!

2

Re: AHK: Перенос строки в ini файле

Самый простой способ — перед сохранением в ini-файл заменить все переносы строк на какие-нибудь символы, которых наверняка нет в тексте, а после чтения из ini сделать обратную замену.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

3

Re: AHK: Перенос строки в ini файле

Надёжнее конечно в base64, но strreplace проще.
teadrinker
Кстати, забыл, или не знал, не в курсе, есть ограничение на длину строки в значении ключа?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v2004, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

4

Re: AHK: Перенос строки в ini файле

Вроде у меня были проблемы, когда текст слишком длинный.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

5

Re: AHK: Перенос строки в ini файле

А если записать не в ключ, а в секцию, думаешь будет разница?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v2004, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

6

Re: AHK: Перенос строки в ini файле

Не знаю, не экспериментировал. Я для больших объёмов данных просто бинарный файл использую.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

7 (изменено: SuBrex, 2020-07-29 22:11:14)

Re: AHK: Перенос строки в ini файле

teadrinker
Если переменой присвоить текст, только между строками будет знак "`n", то в контролле будет перенос строк?

8

Re: AHK: Перенос строки в ini файле

teadrinker пишет:

Не знаю, не экспериментировал.

А в XML с этим не сталкивался?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v2004, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

9

Re: AHK: Перенос строки в ini файле

serzh82saratov
В файл могут быть записаны значения, превышающие 65 535 символов, но они могут привести к противоречивым результатам, поскольку они обычно не могут быть правильно прочитаны IniRead или другими приложениями.

10

Re: AHK: Перенос строки в ini файле

Кстати, Адобе Премьер использует XML для сохранения проектов (могут быть 100 мегов и больше) с возможностью сжатия.

11

Re: AHK: Перенос строки в ini файле

SuBrex пишет:

Если переменой присвоить текст, только между строками будет знак "`n", то в контролле будет перенос строк?

Если непосредственно из переменной будете вставлять, то будет. Но не проще было проэкспериментировать, чем спрашивать?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

12

Re: AHK: Перенос строки в ini файле

SuBrex
Во, во, что то такое помню.
Malcev
Ого, оно у них в одном ключе (или item, как там называется), в base64?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v2004, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

13

Re: AHK: Перенос строки в ini файле

serzh82saratov пишет:

А в XML с этим не сталкивался?

Нет, тоже не пытался много текста туда записывать.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

14

Re: AHK: Перенос строки в ini файле

teadrinker
Если бы я это не спросил, то мои эксперименты пошли бы во вред, а так, я могу предложить своё решение полагаясь на это маленькое знание.

15

Re: AHK: Перенос строки в ini файле

Эксперименты никогда не могут пойти во вред, они дают опыт.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

16

Re: AHK: Перенос строки в ini файле

serzh82saratov пишет:

оно у них в одном ключе (или item, как там называется), в base64?

В base64 закодированы графические объекты, после чего запакованы zlib.
А сам файл проекта может быть запакован в gzip.

17

Re: AHK: Перенос строки в ini файле

Malcev
То есть XML запакован, а сам ключ может быть "бесконечно" длинным, или эти данные скорее всего разбиты по нескольким ключам. Или например большой видео файл может содержаться в одном ключе.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v2004, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

18 (изменено: Malcev, 2020-07-29 22:59:53)

Re: AHK: Перенос строки в ini файле

Там в проекте внешние файлы не хранятся, только пути и свойства.
Пример:

<Media ObjectUID="1504f2b5-451e-429b-b10e-9176637b9430" ClassID="7a5c103e-f3ac-4391-b6b4-7cc3d2f9a7ff" Version="26">
		<AudioStream ObjectRef="206"/>
		<VideoStream ObjectRef="207"/>
		<ModificationState Encoding="base64" BinaryHash="8d6d3266-ea12-fce1-d8c6-c2ad00000054">NAA5AGQAYQA3ADcAOQBkAC0AMAA0ADAAOAAtADAAYwA3AGQALQBjAGYANQA5AC0ANAA0ADIAMgAwADAAMAAwADAAMAAyADQA
		</ModificationState>
		<RelativePath>.\4\00000.MTS</RelativePath>
		<FilePath>G:\Nedvizka\4\00000.MTS</FilePath>
		<ImplementationID>1fa18bfa-255c-44b1-ad73-56bcd99fceaf</ImplementationID>
		<Title>00000.MTS</Title>
		<FileKey>4e80a99a-2f04-4a6f-9a4d-a38db6d3f9a8</FileKey>
		<ActualMediaFilePath>G:\Nedvizka\4\00000.MTS</ActualMediaFilePath>
		<ContentAndMetadataState>49da779d-0408-0c7d-cf59-442200000024</ContentAndMetadataState>
		<ConformedAudioRate>5292000</ConformedAudioRate>
	</Media>

19 (изменено: serzh82saratov, 2020-07-29 23:02:08)

Re: AHK: Перенос строки в ini файле

Malcev пишет:

Кстати, Адобе Премьер использует XML для сохранения проектов (могут быть 100 мегов и больше) с возможностью сжатия.

Видимо я не так тебя понял, то есть 100 мегов в самом XML не хранятся?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v2004, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

20

Re: AHK: Перенос строки в ini файле

Вроде же была такая тема.
AHK: Сохранение многострочных данных в ini-файл

21

Re: AHK: Перенос строки в ini файле

Хранится, но это текстовая информация+внутренняя графика, типа титров в base64 запакованных zlib.

22

Re: AHK: Перенос строки в ini файле

Ни чё себе у тебя проекты, на 100 мегов только текста.

Malcev пишет:

типа титров в base64

Ну то есть, есть строка в base64 на 100 мегов в самом XML?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v2004, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

23

Re: AHK: Перенос строки в ini файле

Ну там не только текст, а титры и стабилизаторы изображения (занимают львиную часть).

serzh82saratov пишет:

Ну то есть, есть строка в base64 на 100 мегов в самом XML?

Теоретически, наверное, может быть и на 100 мегов.

24

Re: AHK: Перенос строки в ini файле

Думаешь стандартный MSXML2.DOMDocument.6.0 это отработает, даже боюсь пробовать.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v2004, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

25

Re: AHK: Перенос строки в ini файле

Ну а почему нет?
Если хочешь могу залить тебе какой-нибудь для теста.

26

Re: AHK: Перенос строки в ini файле

Спасибо, если не сложно.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v2004, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

27 (изменено: Malcev, 2020-07-30 01:49:09)

Re: AHK: Перенос строки в ini файле

Отправил в личку.
Чтобы получить xml, сначала нужно разархивировать.
Вот тут я извлекал титры:
http://forum.script-coding.com/viewtopic.php?id=12618
Попытался сделать через АПИ:
https://www.autohotkey.com/boards/viewt … 53#p316553
Но с deflate stream не задалось и забросил:
https://www.autohotkey.com/boards/viewtopic.php?t=73367

28

Re: AHK: Перенос строки в ini файле

ypppu


MyIniRead(Планы, Параметры запуска, Планы по скрипту, Планы); Ошибка: "Too few parameters passed to function."

29

Re: AHK: Перенос строки в ini файле

"Too few parameters passed to function."
"Вы передали в функцию слишком мало параметров".
В теме, на которую я ссылался, есть рабочий пример использования. Чтобы понять, как эта функция работает, нужно сначала понять, как работает IniRead и IniWrite. А это есть в справке.

30

Re: AHK: Перенос строки в ini файле

ypppu
Забыл поблагодарить, всё работает, всем спасибо.