На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> сохранение строковых данных , сохранение строковых данных
    Добрый день.

    есть следующая ситуация:
    1) список строк1 (TStringList), число строк от 1000 до 2000000, формат строки 665:687686:12334456(это пример), где : разделитель
    2) список строк2 (TStringList), число строк от 0 до 255, формат строки 12334456(это пример)
    3) цикл FOR список1, где отделяется третий параметр (12334456), внутри цикл FOR где выводится строка, если строки в циклах совпадают, тогда строка1 (665:687686:12334456) перезаписывается в хранилище строк с именем третьего параметра (12334456)
    таким образом может возникнуть до 256 хранилищ с числом строк от 1000 до 140000 строк в каждом.
    в общем это раздел одного большого массива строк на некоторое количество массивом по заданному параметру (список строк2)

    вопрос: на основе чего можно сделать такое хранилище строк? TListBox? динамический многомерный массив? что то еще? надо учесть быстродействие, по максимуму необходимо

    Заранее спасибо за ответы
      Приветствую. Я думаю тут следует покопаться в сторону деревьев, если нужно максимальное быстродействие.
        Pcrepair
        ExpandedWrap disabled
          var
            MyDictionary: TDictionary<string, TStringList>;
          begin
            MyDictionary := TDictionary<string, TStringList>.Create;
           
            // Ваш код для перебора списка строк1 и записи в словарь, например:
            for i := 0 to List1.Count - 1 do
            begin
              // Получите третий параметр
              ThirdParam := ExtractThirdParam(List1[i]);
              
              // Добавление в словарь
              if not MyDictionary.ContainsKey(ThirdParam) then
                MyDictionary.Add(ThirdParam, TStringList.Create);
           
              MyDictionary[ThirdParam].Add(List1[i]);
            end;
           
            // Не забудьте освободить память в конце
            for Value in MyDictionary.Values do
              Value.Free;
            MyDictionary.Free;
          end;
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0182 ]   [ 16 queries used ]   [ Generated: 18.05.25, 21:02 GMT ]