Delphi. Двухмерный массив разных типов данных. #665706


#0 by Hazer79
Нужно в один двухмерный массив запихнуть числа и даты. В одном измерении только числа, в другом - только даты. Можно, конечно, сделать его весь Variant, но, имхо, некошерно. Как поэлегантнее ?
#0 by Hazer79
Нужно в один двухмерный массив запихнуть числа и даты. В одном измерении только числа, в другом - только даты. Можно, конечно, сделать его весь Variant, но, имхо, некошерно. Как поэлегантнее ?
#1 by Ненавижу 1С
>>В одном измерении только числа, в другом - только даты это как?
#2 by H A D G E H O G s
Че там? Дата - скока байт? 8 вроде? Ну и делай Cardinal (Integer) себе на здоровье.
#3 by H A D G E H O G s
Пфффф. Пацаны в Дельфи в поле Tag указатель засовывали и ниче.
#4 by H A D G E H O G s
КтоСлужилТотПоймет.
#5 by Fragster
не понял... двумерный массив - это же матрица. что значит "в одном измерении"?
#6 by Hazer79
{{1, 01.04.2010}, {46, 23.12.1998}, {2, 02.02.2013}}
#7 by Hazer79
не выпендривайся, скажи по делу
#8 by acsent
тебе предлагают преобразовать дату к числу
#9 by H A D G E H O G s
Делай массив типа Cardinal var data:array [1..100,1..2] of Cardinal; ИВперед.
#10 by del123
можно структуру забабахать
#11 by del123
и ее уже в массиво
#12 by NS
Есть в паскале такое ключевое слово record.
#13 by Кирпич
автор неграмотный. объяснить чо ему надо не в состоянии. ему нужен одномерный массив из записей типа record end;
#14 by H A D G E H O G s
Точно, совсем вылетело!
#15 by Андрюха
Массив TList можно
#16 by Кирпич
TMyRec = record p1 : integer; p2 : double; end; TMyArray = array of TMyRec;
#17 by NS
type X=Record   i:integer;     d:TDateTime; end; var Y:array [1..100] of X;
#18 by H A D G E H O G s
Или так. Полезно для освобождения от "рамок" типизации var data:array [1..100,1..2] of Cardinal; NowDate1,NowDate2:TDateTime; begin NowDate1:=Now; CopyMemory(@Data[1,1],@NowDate1,8); CopyMemory(@NowDate2,@Data[1,1],8); ShowMessage(DateTimeToStr(NowDate2));
#19 by del123
ну я тоже это и имел ввиду :))
#20 by Hazer79
Всём спасибо. Воспользуюсь Record
#21 by H A D G E H O G s
Тупой компилятор отказался от гнусности типа Data[1,1]:=Cardinal(NowTime1);
#22 by HeroShima
классика, куча
#23 by H A D G E H O G s
В Дельфи нет вашей C++ матершины.
#24 by NS
Какое отношение куча имеет к этой задаче?!
#25 by HeroShima
всё там есть
#26 by HeroShima
сначала подумал, в ячейках нужно хранить неизвестно что
#27 by Ненавижу 1С
потомя что TDate это Double
#28 by Кирпич
Блин, чо так воняет?!!! - заглядывая за гараж. классика, куча.
#29 by HeroShima
Умники, Variant просили не предлагать?
#30 by Bugmenot
Буду краток: делфи - не нужен
#31 by H A D G E H O G s
Ну и? Хочу взять 8 байт и представить их как Cardinal, чебынет?
#32 by Ненавижу 1С
lf
#33 by H A D G E H O G s
стоп. Cardinal - 4 байта. Признаю вину, 1С съело мозг.
#34 by Кирпич
Питон круче дельфи
#35 by Ненавижу 1С
чем? чем делфи, да?
#36 by NS
Где у тебя там variant? У тебя четко - одно поле числовое, второе дата. Никаких вариантов.
#37 by Bugmenot
- а C# круче Питона!
#38 by NS
Это точно, особенно быстродействие у него крутое.
#39 by HeroShima
это где? у меня указатель и признак типа
#40 by Кирпич
быстродействие для одинесников не важно
#41 by HeroShima
+ а на потери при выделении памяти в классике все забивали)
#42 by NS
У тебя - это в условии задачи.
#43 by HeroShima
задача не моя...
#44 by NS
Если ты её пытаешься решить - то уже твоя. Либо расскажи что за задачу ты решаешь в этой ветке.
#45 by HeroShima
Variant - частный случай объединения, которое, как мне показалось, нужно автору.
#46 by HeroShima
это у него лечится. могу рассказать как.
#47 by Кирпич
расскажи
#48 by HeroShima
в критических по скорости местах расставляются типы и всё собирается cython-ом в *.pyd
#49 by Ненавижу 1С
автору нужен record из двух полей, просто автор не владеет языком
#50 by NS
Это у него не лечится. В принципе. Многократно обсуждалось на том-же codeforces
#51 by Кирпич
от надо так в 1с сделать. а то бывает надо чтобы быстро, а оно не может.
#52 by HeroShima
Не лечится только то, что ограничено gil. Второй вопрос: структуры в си, дающие аналогичную гибкость, будут работать с какой скоростью?
#53 by Ненавижу 1С
прочел, получается байт-код, но он же вроде медленнее машинного?
#54 by HeroShima
нет, там трансляция python - c++ - машинный код
#55 by User_Agronom
+ type Element = record       Value:integer;       DataTime:<Тип не помню((>      end var Tabl: array of Element;
#56 by HeroShima
это можно делать уже сейчас
#57 by Кирпич
это как?
#58 by HeroShima
на инфостарте статью вывалю
#59 by Ненавижу 1С
вываливай тут
#60 by HeroShima
+ если это мне
#61 by HeroShima
в доках цитона всё описано
#62 by Кирпич
шо ещё за ацетон?
#63 by Ненавижу 1С
он же уже про 1С
#64 by HeroShima
так.. мою ВК скачали?
#65 by Кирпич
пардон для
#66 by NS
Как минимум это не питон, а новый язык. И с производительностью у него не так хорошо, как хотелось бы.
#67 by HeroShima
Новый/старый.. Лишь бы работал. По производительности, предполагаю, не хуже чем у дельфи на llvm.
#68 by Ненавижу 1С
странный вопрос, я даже не знаю о ее существовании
#69 by Xapac
ыыы мы так делали. у нас дерево указатели хранило на документики хтмловские, которые были в памяти
#70 by HeroShima
-тут
#71 by NS
Учитывая что Делфи/fpc имеет примерно такое-же быстродействие как С/С++ компиляторы, то конечно-же cython медленней.
#72 by Ненавижу 1С
денег нет
#73 by HeroShima
cython с типами - это с/с++
#74 by HeroShima
Код страшный, но оптимизатор должен разгрызть.
#75 by Кирпич
вот ты парень умный. тебе задание. сделай  cython для 1с. чтобы язык 1с работал быстро, когда надо. а на питоне мы не хотим париться.
#76 by HeroShima
спасибо на добром слове, но это не ко мне, а к Ним)
#77 by NS
Если мы пишем питонный код, но с типизацией - то это не си. И быстродействие не как у си. Если писать сишный код, то какое отношение это имеет к питону?
#78 by Кирпич
Ним пофиг. Надо самим что-то делать.
#79 by HeroShima
Согласен, но приближенно по скорости. Если очень нужно, можно прямо си и вставлять.
#80 by Serginio1
TRec = packed record  case Boolean of    True: ( I: Integer; );    False: ( D: Double; );  end;  IsInteger:Bool; end
#81 by Bugmenot
- лолшто?
#82 by Кирпич
народ уже на мисту заходит просто клавиатуру проверить
#83 by NS
Лол то что написано. Несмотря что некоторые не в теме, быстродействие откомпилированного gcc/fpc/delphi кода примерно одинаково по быстродействию.
#84 by Bugmenot
- лолшто? и это самая плохая реализация компилятора C++ А теперь сравним с Visual C++. Зы. то, что 90% системного и прикладного ПО написано на C++, а не на Паскале как бэ намекает, да
#85 by NS
Ты исходники тестов смотрел? А потребляемую память? Это тесты не компилятора, а быстродействия String (который естественно если нужна оптимизация по скорости - никто не использует), и небуферизированного вывода при помощи writeln - который естественно никто никогда вообще не использует. А в реальных приложениях скорость примерно одинакова.
#86 by Bugmenot
- приведи мне пожалуйста пример сервера БД, который написан на Паскале. Ну выбрали этот язык, потомучто как ты говоришь "в реальных приложениях скорость одинакова"
#87 by Bugmenot
меня всегда удивляла "аргументация" "любителей" паскаля. Вот ведь все вокруг меня идиоты собрались - на С++ программируют, на Паскале, который гораздо лучше и такой же по быстрдействию - никто. Миллионы мух ошибаются ведь, да.
#88 by NS
При чем тут сервер БД? С/С++ намного более популярны, и имеют намного больше готовых библиотек. И пишется всё в основном на С/С++. Но речь то шла не о популярности, и не библиотеках, а о быстродействии. А быстродействие у них почти одинаково. Жава - да, действительно медленней. Если не учитывать совсем медленный ввод/вывод, то разница в скорости достигает 2 раз. А Паскаль - примерно так-же как и Си. Именно поэтому очень многие олимпиадные программисты писали на Паскале - скорость кода та-же, и в TL впихнуть так-же просто как и на Си. А популярность паскаля начала падать только после того как его стали убирать из списка доступных языков.
#89 by NS
Бред не неси. Я пишу и на С/С++, и на Паскале, и на Java. Мне пофик на чем писать.
#90 by Кирпич
ну быстродействие от языка мало зависит, если оба языка имеют примерно одинаковые возможности. зависит от умности компилятора и алгоритмов. LLVM всех уровняет. аминь.
#91 by Bugmenot
- на олимпиаднах используется паскаль, потому что перподы не хотят учить C/C++. Среди школоты и студентоты паскаЛь все еще популярен, пока не будет уволено старое поколение преподов. К быстродействию программ выбор ЯП на олимпиадах не имеет никакого отдношения. >При чем тут сервер БД? Потому что серверы БД - это "реальные приложения". 1С: Предприятие между прочим сам по себе тоже "реальное приложение". Но у меня такое ощущение, что у тебя под "реальностью" понимается форма с 2 EditBox-ами и 3-мя кнопками.
#92 by NS
Какое отношение преподы имеют к спортивным программистам? Которые пишут естественно на всех языках.
#93 by NS
Тебе объяснили почему серверы БД не пишут на паскале. Быстродействие тут не при чем.
#94 by HeroShima
Я работал в конторе, написавшей свою СУБД на дельфи. Со скорострельностью проблем не было.
#95 by H A D G E H O G s
СУБД?
#96 by Bugmenot
- сервер баз данных. Даже Firebird, популярный среди паскалистов, написан на C++ Угадайте почему?
#97 by H A D G E H O G s
Свои индексы, управление памятью, и.т.д.?
#98 by NS
По той-же причине почему мат. пакеты пишут на фортране. При чем тут быстродействие?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С