1 (изменено: WeSQ, 2019-04-02 22:05:55)

Тема: AHK: выборочные данные из файла CSV в массив

Здравствуйте.
Имеется цель:
Генерировать слово из частей в CSV. Для примера, части записаны по наблону: Начало- -середины- -окончания ("-" определяет в какое место подставлятся слово) с пояснениями
Сопутствующее условие - генерировать из частей заданной категории. В примере это Фракция и пол.

+ пример CSV
фракция; пол; имя; значение
франки; м; лау-; "случай"  
франки; м; даго-; "день"
франки; м; хродо-; "слава"
франки; м; -мунд, -мунт; "защита"
франки; м; -мер-, -мар-, -мир; "блистающий, великолепный, etc"
франки; м; -вес; "показывать, вести"
франки; м; -гаст; "хозяин"
франки; м; -гарий; "жадность, стремление, охота"
Герман; м; hrōþa-; (хвала, восхваление, слава) 
герман; м; -berhtaz; (светлый, ясный, блестящий, блистающий).
герман; м; Hwita-; белый
герман; м; -itiing; "сын/потомок Хвиты, сын/потомок Белого
герман; м; Vulf-; "волк"  
герман; м; -ila; букв. "маленький
герман; м; weiga-, wīga- ; "война, сражение"
герман; м; thiot-, thiod- ; (народ) Theoderic
герман; м; -rihhi, -riki ;(богатый, могущественный; вождь, правитель). Theoderic

Получается, нужно парсить файл CSV, брать строки подходящие под условие (Например, франки) и формировать 3 массива  для слов и значений: начала, середин и окончаний.

В теории Loop, parse идеально подходит. Очень близко к задаче был найден пример на ahk-wiki , а потом и у вас, точно такой же. )

Loop, read, %A_ScriptDir%\Name.csv
{
        LineNumber = %A_Index%
        Loop, parse, A_LoopReadLine, `; ; СSV только по "," ведь делит? поэтому выбрал `;
        {
                MsgBox, 4, , Поле %LineNumber%-%A_Index%:`n%A_LoopField%`n`nПродолжить? ; %LineNumber% строка %A_Index% колонка
                IfMsgBox, No
                        return
        } 
}

В этом примере появляется  окно с указанием строки, столбца и текста по этому адресу.
Так можно находить номер строки ( %LineNumber% ) с нужным значением %A_LoopField%.
Но как сделать, чтобы из нужных строк формировался массив по данным из определенных столбцов?

В самой справке http://www.script-coding.com/AutoHotkeyTranslation.html по поиску Array ничего не находит. Все, что о массивах находил это упоминания в примерах или на форуме. В итоге некоторая путаница.

В теме AHK: Чтение из лога и вывод сообщения подсказывали о Loop Read, но ссылки ведут на продаваемый домен)
Прошу помочь формированием массива

2 (изменено: belyankin12, 2019-04-02 22:15:34)

Re: AHK: выборочные данные из файла CSV в массив

Я почти ничего не понял. Вам нужно все слова у после которых стоит - (слово-) занести в массив1, все слова, которые стоят между - (-слово-) занести в массив2 и все слова перед которыми стоит - (-слово) занести в массив3 и при этом все эти части слов находятся в csv таблице? Лучше для наглядности покажите одну из таких строк и разбейте её на те массивы в которые должен заносить скрипт, разъясняя при этом по каким критериям заносится слово в тот или иной массив. В последних предложения расставьте точки и не забывайте про них в будущем.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

3

Re: AHK: выборочные данные из файла CSV в массив

WeSQ пишет:

В самой справке http://www.script-coding.com/AutoHotkeyTranslation.html по поиску Array ничего не находит.

А родной справкой почему не хотите воспользоваться?

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