|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
||||
|
||||
Цитата:
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#17
|
||||
|
||||
Цитата:
Функционал проги должен быть примерно как у 1С. Использовать 1С при этом начальство отказалось. Так как программер я не ахти, чую прога получится тяжелая для понимания компьютером ) Вот и пытаюсь сделать все для облегчения сразу... Чтобы потом не переделывать много в этом направлении ) |
#18
|
||||
|
||||
Не в тех местах ты экономишь.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#19
|
||||
|
||||
Цитата:
Константа это то, что жёстко задано ещё при компиляции программы. Если так, то TStringArray у тебя становится статическим массивом и не нужно никаких SetLength(FRecs.[i].Vars,A) Если же FRecs изменяется в процессе работы программы, то это никакая не константа, из чего вытекает использование динамических массивов, SetLength и т.п. Другими словами, если компилятор знает размер массива, то работу по распределению памяти под этот массив он берёт на себя, если же не знает, тогда придётся "вручную" SetLength, GetMem и т.п. Одно из двух - а как же иначе? |
#20
|
||||
|
||||
Цитата:
Цитата:
Я уже сделал через SetLength, но вопрос не решен. Я помню в бейсике объявить переменную/массив можно было в любой части программы. Понимаю, паскаль не бейсик, но, возможно, есть какие-либо ухищрения. |
#21
|
|||
|
|||
Цитата:
Есть, но ты там ничего по скорости не выиграешь. Я тебе дал код, который сразу один раз выделяет нужное кол-во памяти при вызове конструктора по переданному ему значению. В принципе, можно использовать связанный список, храня указатели и на голову списка, и на хвост (для быстрого добавления новых ячеек). Однако все-равно распределение памяти под конкретную ячейку останется. Зато получишь долгий проход по списку для поиска конкретной ячейки. А вообще, если пишешь нечто бугалтерское, то сам бог велел разобраться с базами данных (кстати, саму БД можно "выкинуть" на другую машину-сервер). Помнится, когда компы в массе были такие, что с трудом тянули NT, программа на Delphi на клиентской Win95/98 летала, хотя саму Delphi на такой комп ставить было бессмысленно - просто не хватило бы ресурсов для нормальной работы. А так, по мне ты фигней занимаешься. Сначала напиши весь код, потом просто профайлером пройдешься и посмотришь где реально узкие места, вот там и будешь оптимизировать. |