1 (изменено: Gh0sTG0, 2022-10-11 22:33:09)

Тема: AHK: Как отсортировать пары url+title, заполненный программой?

Добрый день.
Есть пары title+url. Title получает сама программа, они могут повторяться для разных url'ов.
Нужно сохранить и отсортировать по title(строка на английском языке), потом работать дальше в алфавитном порядке.

Чего пробовал:
1) Сначала попробовал сделать

Array := []
for index, value in url_list
{
	title := get_from_outside(value)
	Array[title] := value
}

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

2) Вот тут нашел целых два рабочих варианта хранения (array и another_array), по крайней мере делая дальше loop с messagebox'ами оно вроде как совпадает с тем что должно быть:


Array := Object()
another_array := []
for index, value in url_list
{
	title := get_from_outside(value)

	Array[A_Index, 1] := title
	Array[A_Index, 2] := value

	another_array[A_Index] := []
	another_array[A_Index][1] := title
	another_array[A_Index][2] := value
}

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

2 (изменено: teadrinker, 2022-10-11 22:00:51)

Re: AHK: Как отсортировать пары url+title, заполненный программой?

Создавайте сначала строку вида

title1|url1
title2|url2
...

потом сортируйте, потом создавайте объект, если нужно.

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

3 (изменено: Gh0sTG0, 2022-10-11 22:31:58)

Re: AHK: Как отсортировать пары url+title, заполненный программой?

Ххах... Ну, как всегда, да...
Но почему нельзя буквально на пару минут раньше?
И не нужны тут никакие OBJECT'ы...


Array := []
for index, value in url_list
{
	title := get_from_outside(value)

	while (Array[title] <> "")
			title .= A_Index

	Array[title] := value
}

И типа все... Мы получаем уникальные title, и все вроде как работает... И его даже сортировать не надо! Оно само выдает по алфавиту, КАРЛ!!!

Как там в меме было?
Написал? Написал.
Отправил? Отправил.
Сообразил как сделать чтобы работало ДО отправки? Сообразил как сделать чтобы работало ПОСЛЕ отправки!

PS Спасибо за вариант, он тоже выглядит неплохо... Но мой вроде как проще выглядит. xD
PPS Или я чего то не понимаю и так может все же не срабатывать при каких то условиях?
PPPS Поправил if на while на тот мегалакерский случай, что вдруг найдется title+a_index в уже добавленных.

4

Re: AHK: Как отсортировать пары url+title, заполненный программой?

Gh0sTG0 пишет:
title .= A_Index

Но так у вас заголовок изменяется, причём A_Index может быть любым. Если это не проблема, то ок.

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

5 (изменено: Gh0sTG0, 2022-10-11 22:35:25)

Re: AHK: Как отсортировать пары url+title, заполненный программой?

teadrinker
Ага, все ок! Мне тайтлы нужны только для сортировки.
Ну, а с другой стороны - чего мешает при необходимости бахнуть типа так? Пишу, а вдруг кому пригодится? Но я не проверял:


another_array := []
for index, value in url_list
{
	title := get_from_outside(value)

	mod_title := title
	while (another_array[mod_title][1] <> "")
			mod_title .= A_Index

	another_array[mod_title] := []
	another_array[mod_title][1] := title
	another_array[mod_title][2] := value
}

Вроде должно сработать и с самосортировкой, и выдавать значения нужные.
Поправил if на while на тот мегалакерский случай, что вдруг найдется title+a_index в уже добавленных.