1 (изменено: Indomito, 2015-02-12 23:58:17)

Тема: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

Нужно сохранить одномерный массив состоящий из строк/переменных в INI-файле.

arGenNameOut := [USERPROFILE "\AppData\Local\Mozilla"
                ,USERPROFILE "\AppData\Roaming\Mozilla"
                ,HOMEDRIVE "\Program Files (x86)\Mozilla Firefox"
                ,HOMEDRIVE "\Program Files (x86)\Mozilla Maintenance Service"
                ,""]

Вопрос №1 Что такое Pairs.

В справке по INI, есть что то, но нет примера или я не нашёл, а описание немного расплывчатое - тест не сработал или я не то написал.

IniWrite, Value, Filename, Section, Key
IniWrite, Pairs, Filename, Section

...

Pairs
[v1.0.90+]: The complete content of a section to write to the .ini file, excluding the [SectionName] header. Key must be omitted. Pairs must not contain any blank lines. If the section already exists, everything up to the last key=value pair is overwritten. Pairs can contain lines without an equal sign (=), but this may produce inconsistent results. Comments can be written to the file but are stripped out when they are read back by IniRead.

Я переводил, но так ничего не понял - сорри.


Вопрос №2 Есть ли делимитер/сепаратор для переменной в INI, которая является массивом.


Вопрос №3 Если в разных секциях объявить одинаковые ключи - такое разрешается? Или же надо идти по пути размножения INI-файлов?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

2

Re: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

Что-то я нифига не понял, в чём проблемы. Что касается Pairs, то там, наверно, должно быть содержимое секции.


Pairs =
(
key1=value1
key2=value2
key3=value3
)

3 (изменено: Indomito, 2015-02-13 00:02:30)

Re: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

YMP пишет:

Что-то я нифига не понял, в чём проблемы.

Сорри, я упрощу описание.

Меня, как я сейчас понимаю, больше интересовал Pairs в следующем контексте:
  - я  ищу делимитер/сепаратор для переменной в INI, которая является массивом;
  - если в разных секциях объявить одинаковые ключи - такое разрешается?

Про Pairs.

Pairs =
(
key1=value1
key2=value2
key3=value3
)

А это зачем, я не уловил суть, а тем более не понял, как записывать/считывать оное.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

4

Re: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

Ну как зачем? Вот же вы сами цитировали:

The complete content of a section to write to the .ini file, excluding the [SectionName] header.

Пишется сразу всё содержимое секции, а не по одному ключу за раз. Что касается "переменной в INI, которая является массивом", то я не знаю, что это такое.

5

Re: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

Можно именовать ключи с использованием номера: ключ1, ключ2, ..., вот и будет массив.

6 (изменено: Indomito, 2015-02-13 00:05:35)

Re: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

YMP пишет:

Пишется сразу всё содержимое секции, а не по одному ключу за раз.

Я то сразу не понял.  А генерация ключей возможна или надо описывать "в лоб"?

YMP пишет:

Можно именовать ключи с использованием номера: ключ1, ключ2, ..., вот и будет массив.

ну это понятно, так я и решил делать,  это видимо единственный вариант.

Остался только последний вопрос:

Indomito пишет:

Вопрос №3 Если в разных секциях объявить одинаковые ключи - такое разрешается? Или же надо идти по пути размножения INI-файлов?

Для массива вариант с добавлением номера будет дублированием ключей, а если избрать другой путь, ну скажем добавлять к ключу кроме номера имя секции (ключ+секция+номер), то это усложнит считывание(в области алгоритма) INI да и читабельность.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

7

Re: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

В цикле можно генерировать имена ключей, добавляя к основе A_Index. В разных секциях могут быть одинаковые ключи, почему нет? Т.е. я даже проверять не буду, т.к. уверен на 100%. Ибо обратное абсурдно.

8 (изменено: Indomito, 2015-02-13 00:07:14)

Re: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

YMP пишет:

В цикле можно генерировать имена ключей, добавляя к основе A_Index.

Спасибо, но я не про это, про запись вида.

Pairs =
(
key1=value1
key2=value2
key3=value3
)

А, тут не получится?


YMP пишет:

т.к. уверен на 100%. Ибо обратное абсурдно.

Согласен, но всякое в жизни случается.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

9

Re: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

Чего не получится? Не понял вопроса. Добавляйте каждую такую пару ключ-значение через перевод строки, вот и будет аналог секции продолжения.

10 (изменено: Indomito, 2015-02-13 00:07:56)

Re: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

Опять не понял, т.е. понял, но не совсем.

Так:

Pairs =
(
   i := 1
   while (myArray[i]) 
      {
         string%i% = myArray%i%
         i++
       }
)

Или иначе?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

11

Re: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

Э... Это что за ненаучная фантастика? Первый раз вижу, чтобы в секцию продолжения код помещали. За новаторство 5, за знание материала 2. Или, может, я отстал от жизни???

12 (изменено: Indomito, 2015-02-12 23:55:03)

Re: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

Ладно тебе, уж тебе.  
Я идею понял, ошибку тоже,  дальше сам разберусь.
Спасибо за содействие и энтузиазм. 

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

13

Re: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

Indomito, ознакомьтесь с этой темой, отредактируйте свой пост. Это последнее китайское предупреждение. Следующий бан будет на месяц.

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

14

Re: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

Indomito пишет:

Хоть намекните, где я в посте ошибся, да про какой пост идёт речь.
Про первый или последний или какой другой?

P.S. Я пишу не часто, спрашиваю редко, ошибок за мной не водилось. Я про то что за что баны, про точки я понял, да есть дурная привычка их ставить, но сейчас совсем не понятно.

Indomito, избавляйтесь от привычки писать в личку, если что не понятно, спрашивайте на форуме.

Хоть намекните, где я в посте ошибся, да про какой пост идёт речь.

Речь всегда идёт о том посте, в котором написано замечание, если не сказано иного.

про точки я понял, да есть дурная привычка их ставить, но сейчас совсем не понятно.

Боюсь, вы неверно про точки поняли. Их нужно ставить в конце предложений. В предыдущем посте они у вас отсутствуют. Если теперь всё понятно, исправляйтесь и не грешите больше.

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

15 (изменено: Indomito, 2015-02-13 00:51:07)

Re: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

teadrinker
1. Пробежался по всему топику, да уж, точки, двоеточия и т.д. я точно не ставлю - исправлено.
2. Я думал, что предыдущий бан был за многоточие, а оказалось наоборот - понято и принято.
3. Считал, что точки перед смайлами, не ставятся, если это конец предложения - исправлено.

Про личку, т.е. почту.
Когда пишут Это последнее китайское предупреждение. Следующий бан будет на месяц. Сразу становится, как то не хорошо, а спрашивать в топике - опасно, вдруг в вопросе будет та же ошибка и получишь бан.
Вот почему я пользуюсь ЛС/PM в критических ситуациях.

Постараюсь более не прибегать к данной методике.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

16

Re: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

Indomito пишет:

Считал, что точки после смайлов, не ставятся

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

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

17 (изменено: Indomito, 2015-02-13 01:53:47)

Re: AHK: Что такое Pairs и есть ли делимитер для переменной в INI-файле

Да, уж.

Взаимосвязь быдла и смайлов пишет:

3. Использование смайлов вместо знаков препинания

Грубо, но точно.
Хотя я считал, что смайл в конце предложения эквивалент точки, т.к. я ими иногда заканчиваю предложение или пост, это в контексте того, что ставлю их не более трёх видов, а остальные "засоряют эфир".
Это и который иногда заменяется на этот.

Артемий Татьянович о смайликах  пишет:

Любые попытки разметить текст маркерами настроения до недавнего времени не увенчались успехом. Сегодня в текстах применяются только два знака, определяющие эмоции — вопросительный и восклицательный знаки.

Я с ним не согласен, хотя это IMHO.

Проще, действительно, и ты прав, писать без них - это дурацкая привычка ещё с "Кроватки" или ещё ранее.


Кстати:

Смайлик отбивается от слова пробелом. Если после смайлика идет знак препинания, он пробелом не отбивается. Точка после смайлика обычно не ставится.

Тогда есть два, почти три, варианта.
1. Это конец предложения.
2. Это конец предложения , но с продолжением.
3. Это конец предложения . Так можно написать, но не пишут, как правило.
По сути, смайл это часть предложения, а не знак препинания или точка.


P.S. Можно, прямо тему создавать "Твой первый смайл", но я не смогу ответить в ней, как я говорил выше - просто не помню.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download