Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

23 Июль 2017, 15:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Одномерный ассоциативный массив или альтернатива ему  (Прочитано 609 раз)
0 Пользователей и 1 Гость смотрят эту тему.
karpo518
Новичок
*
Offline Offline

Сообщений: 44


« Стартовое сообщение: 2 Февраль 2017, 13:52 »

Требуется хранить пары из строковых ключей и строковых значений. Подскажите, какую конструкцию можно использовать для таких целей?
Записан

Linux Mint 18 (64 bit),  LibreOffice 5.1.6.2
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 292


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 2 Февраль 2017, 13:55 »

А какой предполагаемый размер словаря?
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
karpo518
Новичок
*
Offline Offline

Сообщений: 44


« Ответ #2: 2 Февраль 2017, 14:21 »

Не более 10. Собираюсь в цикле проверять значения некоторых свойств каждой строки, собирать их в ассоциативный массив, который потом будет использоваться для форматирования строк в унифицированном, абстрагированном от API формате.
Записан

Linux Mint 18 (64 bit),  LibreOffice 5.1.6.2
economist
Ветеран
*****
Offline Offline

Сообщений: 591


« Ответ #3: 2 Февраль 2017, 14:24 »

Если предполагается многократная обработка и объем очень большой - то лучше хранить их в таблице (Base/Calc) или даже в TXT-файле с разделителем "табуляция".
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
economist
Ветеран
*****
Offline Offline

Сообщений: 591


« Ответ #4: 2 Февраль 2017, 14:26 »

А если <10 - то зачем вообще массив? Обращение по индексу - здесь будет не быстрее чем полный перебор.
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
karpo518
Новичок
*
Offline Offline

Сообщений: 44


« Ответ #5: 2 Февраль 2017, 14:42 »

Для начала я пробегаю итератором по таблице параметров и определяю значения параметров для конкретной строки. Далее  в коде я несколько раз использую значения параметров не в итераторе, а по ключу. Всё это делается в цикле для каждой строки. Сейчас мне нужна сущность, которая будет хранить таблицу параметров и предоставлять доступ к ней как в итераторе, так и по ключу.
Записан

Linux Mint 18 (64 bit),  LibreOffice 5.1.6.2
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 121


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #6: 2 Февраль 2017, 15:00 »

Давайте пример "пробежки итератором"
Записан

karpo518
Новичок
*
Offline Offline

Сообщений: 44


« Ответ #7: 2 Февраль 2017, 15:30 »

rami, в упрощённом виде на альтернативном ЯП кейс использования выглядит так:

Код:
$parametrs = array('bold'=> 0, 'italic'=> 0, 'link'=>'');

for($i=0; $i < sizeof($strs);$i++)
{
$str = $strs[$i];

foreach($parametrs as $style => $value)
{
$parametrs[$style] = detectStyle($style, $str);
}

if($parametrs['bold'] && $parametrs['link'] == '')
{
$str = clear($str,'bold');
$str = format($str, 'bold');
}

........
        ........
        ........
        ........

$strs[$i] = $str;
}
Записан

Linux Mint 18 (64 bit),  LibreOffice 5.1.6.2
economist
Ветеран
*****
Offline Offline

Сообщений: 591


« Ответ #8: 3 Февраль 2017, 08:47 »

karpo518 - вы бы описали вкратце конечную цель, может быть есть способ проще чем "прослойка" для форматирования. Многие из нас делали подобное для чего-то другого, отличного от OpenOffice|LibreOffice. И может велик уже существует.

Я например, 5 лет глядел мимо Автотекста OpenOffice|LibreOffice, городя тонны быдлокода на Python/SB. А оказалось всё проще. 
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
karpo518
Новичок
*
Offline Offline

Сообщений: 44


« Ответ #9: 6 Февраль 2017, 09:29 »

Ребята, так много уточняющих вопросов и ни одного совета по теме. В VB для Microsoft Office есть такие сущности, как List, Collection. Что-то из этого поддерживается в макросах? Если поддерживается, то как это использовать? economist, у меня есть готовый код, который нужно "причесать". Осталось понять, мне городить свои функции для работы с json-подобным форматом данных, или всё-таки в макросе можно использовать что-то готовое.
Записан

Linux Mint 18 (64 bit),  LibreOffice 5.1.6.2
economist
Ветеран
*****
Offline Offline

Сообщений: 591


« Ответ #10: 6 Февраль 2017, 20:11 »

karpo518 - с такими объемами можете городить что угодно: всё будет одинаково быстро.

Если хочется академической чистоты (Lists, Collections, Tuples, Dictionaries, Slices, Str's, Sets) - добро пожаловать в Python3. В OOLO он мощен.   
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!