Borland C++ Builder 5.0

Ortodocs

Житель мегаполиса
#41
теперь как упорядочить.....
метод пузырька тебе в руки. а то что у тебя массив именно значений твоего класса, а не строк как тебе хотелось бы, то разве это может стать проблемой - в методе с пузырьком получай значения поля с фамилией студента, сравнивай их, и в соответствии с результатом сравнения переставляй соответствующих "студентов" в массиве STUD1

На счёт "огрызка". На будущее. Имей привычку сразу убирать галки с "Build with runtime packages" и "Use dynamic RTL". Сам знаешь для чего. Соответственно работу проги не смотрел, т.к. на работе у меня 5-й билдер, т.к. другой здесь не нужен. Код смотрел, хотя зачем смотрел даже не знаю ты же ведь и не просил. Есть вопросы спрашивай.
 

shilov

Житель окраин
#44
не по теме, но все-таки... ( Win2000, Builder 5 )

столкнулся с такой траблой: некорректная инициализация потоков при работе приложения на многоядерных процессорах. что самое паршивое - не всегда, от случа к случаю... Дебагером дойти то точки невозврата - невозможно... инициализация потоков происходит в конструкторе main-формы... и все виснет еще до вызова Paint формы... результат: окна нет, процесс создан, потоки созданы, память выделена, НО - все стоит...)

кто что думает?
 

shilov

Житель окраин
#46
Автор сообщения Mr. Пронька
shilov, я думаю, уже пора сменить Билдер5 на что-нибудь посовременний. Не находишь? ;)
сменил бы... лень все проекты перетаскивать... )
да и альтернатива какая?
билдер, в принципе, устраивает для решения моих задач, пока...
 

Canniballissimo

Житель центра
#47
Олег, ну хотя бы на 6-м! Я когда в никциме работал, ещё на раннем этапе пробовал в 6-м. Вроде всё на многоядерном проце (эт дома) работало с потоками. Так что даже не знаю что именно у тебя за трабл может быть. Пока не попробуешь на нескольких системах, никакого диагноза не будет ;)

п.с. Ваще не по теме. Вчера регнулся на одном сайте. Вроде подтвердил регистрацию по мылу, всё как положено. Но не заходит, зараза! Попробовал на других браузерах - не заходит! У других людей поспрашивал - у всех работает, а у меня нет! Вот и что мне делать? Осталось только откатить систему на ранний этап установки и попробовать там.
 

shilov

Житель окраин
#48
to Mr. Пронька

в ХР и Vistа - та же песня...
неее... на 6-й если и перелезу то не раньше нового года ))
...ничего, будем искать...))
...попробую пока, побаловаться с конструктором потока...
 

shilov

Житель окраин
#49
с потоками, с горем пополам, разобрался: пришлось "тормозить" конструкторы объектов...
такое впечатление, что инициализация объектов на 2-х ядерных процах - может происходить параллельно ))
ОС, похоже, явно нихрена за этим не следит...)

Вот вопрос:

купил CodeGear Rad Studio 2009, в смысле, что в пакете есть версия Builder 2009 - кто нить уже юзал ? Впечатления...??
 

GeneraL

Житель окраин
#50
да макс ... пора бы уже завязывать с пионерией и не придумывать себе искуственных трудностей
 

shilov

Житель окраин
#51
GeneraL написал(а):
да макс ... пора бы уже завязывать с пионерией и не придумывать себе искуственных трудностей

о как! ))

а поподробней... ?
нууу.., чем "заменить", на что переориентироваться ?...
 

shilov

Житель окраин
#53
Pagan написал(а):
VC++, VC# а там выбирай что лучше для твоих задач подходит
ага... : я - знаю VC - ты должен знать VC !!! ))

не вижу принц. разницы в средах, кроме как, что пользовательский интерфейс лепить в VC - сплошной гемор!
у меня задачи - реального времени, сопряженные с регистрацией больших массивов данных и их обработкой "на лету"...
в промышленности есть свой узаконенный стиль оформления, так что а-ля Nero или там а-ля Office - не нужны... а чем VC "хорош" - так это этим, лепи свои кнопульки и ползунки... )

а вот, по существу, был бы признателен услышать мысли: почему потоки при инициализации на многоядерных процах могут "уходить" в никуда...?
потому как проблема снова выползла: на 4-х ядерных процах мои потоки опять нихрена не текут... ))...
 

Pagan

Житель окраин
#54
Разница не в средах разница в компиляторах прежде всего, VC++ наилчший компилятор для данного языка для платформы Windows.

Гуя в VC++ всегда была гиморам не спорю поэтому в свое время использловали свзяку басик для гуи логика на VC++, шас часто для этих целей используют шарп там с гуей все же попроше. Впринципи с другой стороны если придерживаться стандартного юзабилите от мясников то VC++ хватате за глаза ну единесвено да приходиться какойто время уделять для рихтовки контролов не без этого.

Если у тебя задачи реального времени то сама Windows не совсем для этого подходят (где то в мсдн я даже офицально заявелине видил что система не реального времени поэтому нехер на ней лепеть задачи реального времени типа никакх гарантий), для задача реального есть свои оси и свои среды.

"а вот, по существу, был бы признателен услышать мысли: почему потоки при инициализации на многоядерных процах могут "уходить" в никуда...?
потому как проблема снова выползла: на 4-х ядерных процах мои потоки опять нихрена не текут... ))..."
ты бы подробней расказал а то так не понятно че за нитки чем они занимаються как блокриуються итд. а то так сказать нечего нельзя. сколько работал с потоками проблемы бывают тока в одно случае если с синхронизации что то не так а так всегда нитки работали четко без всяких закидано и разницы между одноядерным и двух ядерными процами не замечал.
 

shilov

Житель окраин
#55
void __fastcall TSLTimer::Execute()
{
do{
if( isActive )
{
Priority=tpTimeCritical;
SleepEx( Interval, false ); //--- waite
Synchronize( OwnSLTimer->Timer );
}
else
{
Priority=tpNormal;
SleepEx( 20 , false );
}

Synchronize( OwnSLTimer->Enable );

}while( !Terminated );

}

--------------------

__fastcall TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{

Tm= new TSLThredTimer;
TmLink= new TSLThredTimer; //--- going without return........... !!!!!!!!
Tm->SetInterval( 100 );
TmLink->SetInterval( 100 );
Tm->SetEventFunc( &TmTimer );
Tm->SetActive( true );
TmLink->SetEventFunc( &TmLinkTimer );
TmLink->SetACtive( true );
.........
}

причем, уходит куда-то далекооооо.... ))))
да так, что до прорисовки формы даже дело не доходит, хотя все дескрипторы создаются, все в памяти висит мертвым грузом и ..... тишинааа... )
 

Pagan

Житель окраин
#56
Мда честно говоря код света для меня не проилил единсвено что тут сразу смушает обильно влкчение слова таймер, а это имено тамеры или что и для чего они у тебя используеться. Потом можеш сказать в двух словах какие нити зачем создаеться и что они должны делать. Потом ты говориш что до перерисовки дело не доходит, получаеть что то с очередь месаг не так если не вдавать в код можно попробывать всзять спай типа Spy++ надтровить на окно и посмотреть вообше шлеться ему месаги и какие. Перерисвока у тебя я так понимаю происходи в главно форме и в главно нитки. Нитаки у тебя что делает и как они обмениюваться с основнйо ниткой и между собой данными ?
А вообше в силу того что бы испольузеш либу а не апишник то может быть ошибка в саомй либе в свою бытность как я начинал на делфики либу тарашила часто густо очень плотно на пустом месте но это было 8 лет назад.
 

shilov

Житель окраин
#57
вообщем, если кому интересно сообщаю о результатах...

отличие многоядерных процев - код может исполняться не атомарно ( как все привыкли ),
отсюда возможны такие вещи, как инициализация объектов - одновременно..., вход в код объекта с двух сторон....
все что смог придумать - тормозить конструкторы потоковых объектов с одновременным прогоном очереди сообщения системы...
теперь - все работает, и на 2-х, и на - 4-х ядрах...
 

shilov

Житель окраин
#58
вот такая просьба: подскажите хороший класс ( компонент ) - график, чтобы не хуже был TCharta родного...
а может кто - возьмется написать ?..)