Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 51 из 116<  1 ... 48  49  50  51  52  53  54 ... 116  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 04.01.2004
Откуда: Владивосток
что ж.. мож кто поможет:
post1
я решил я все таки написать составитель расписаний.но всю сложность работы понял тока спустя неделю работы. перечислю сложности:а) у нас в лицее 7-11 классы, по 3 класса на параллеле, итого 15 классов.б) надо учитывать1)один учитель в один день не может вести урок у двух классов одновремеенно(так же некоторый учителя могут вести уроки как у одной параллели, так и у другой)2)некоторые уроки должный быть парами, некторые нет3)не должно быть дней, когда в расписании 2 физики, 2 алгебры, 2 русский, т.е. тяжелых дней(тут я решил ввести коэф сложности для каждого предмета)4)одиночный уроки, такие как черчение, химия, геометрия и т.ду одной параллели должны быть в один деньэто далеко не весь список, чем дальше, тем хуже...2 раза переписывал весь код.решил было сделать генератором. получилось составлять расписание на неделю для одого класса с учетом парный - непарных предметов, учитывается кол-во предметов в неделю, например, если в неделе одно черчение, то оно должно быть только одно.но позже понял, что если добавить еще 2 класса в параллели, то с генератором далеко не уедешь.. а если учесть, что потом бы пришлось добавлять 4 параллели..
post 2
значит так. занялся все же я этим и дальше.программа успешно составляла действительно хорошее расписание с учетом многих факторов на неделю для одного класса.если добавить еще параллель или несколько классов, то усложится программа не особо.но появилась трудность - мы не знаем сколько классов в параллели, сколько параллелей в школе всего.затем, нам надо где то хранить расписание на каждый день для каждого класса(если классы 1-11 и по 3 класса в параллели, то всего классов 33!!! ) + учителя, ведущие данный предмет + кабинет урока.но мы не знаем, сколько классов у той или иной школы, для которой генерируется расписание, поэтому хранить в массивах(кт надо указывать длину заранее..) вряд ли получится. хранить инфу в бд? бред, т.к при составлении расписания для одного класса, надо учитывать расписание другого, а работа с бд(постоянный многочиленный запросы в бд...) очень замедлит работу программы. хранение в stringlist ах или еще чем нить подобном - тоже плохой вариант, даже - невозможный..сложная задачка, однако..
post 3
для каждого урока нужно хранить: номер урока, само название урока + учитель.уроков у одного класса в день 6, в неделю - 36, а у всех параллелей 11 * 6 * 6 = 396 уроков в неделю.я не пойму, в чем хранить?если вопрос не понятен, то:возмем 9-10 классы.некоторые учителя ведут уроки как у 9, так и у 10 классов(например, русский ).вот я сгенерировал расписание для 9-х классов.вот я сгенерировал расписание для 10А класса.потом, когда я генерирую расписание для 10Б класса, мне уже надо учитывать расписание не только 10А , но и 9-х классов, т.е что б не получилось, что у одного учителя(здесь -учителя русского) в один час сразу два урока - у 9* и у 10Б класса.т.е. мне надо проверить всю параллель 9-х классов, нет ли у какого нить из них 3-м уроком в понедельник русского языка . если нет, то я могу добавить 10Б в понед третьим уроком русский, else опять перегенирировать расписание.это самое else встречается в алгоритме очень часто, т.е перебор будет очень большим(хотя меня это не волнует).как мне все это хранить, где? сейчас, когда прога генерили расисание для одного класса на всю недедлю, я храню так(переделывать прийдется точно.):weak:array[1..6, 1..6] of string;1-6 уроки1-6 дни неделимне пока не надо учитывать учителей, лишь что б одновременно уроко не было.но куда мне добавить учителей? по идее надо к каждому уроку прописывать3 урок / русский яз / анна викторовнаи, не торопитесь, нельзя забывать, что классов может быть 11*3=33!!! шт.а создавать 33 массива бред.(да и мож в какой нить школе нет 4 класса..)хранить в одной бд? гм. я не представляю как.проблему объяснил, как смог, по-другому не смогу.

а если учесть, что одни и те же учителя(например, биология, химия, черчение) ведут уроки у 7,8,9,10,11...продожить? или сами поняли, что прийдется перебирать все классы, начиная с 7 да 10В, что б добавить биологию в 11А:) и это только для одной биологии!!

_________________
*Cofradia Intel* <<<ATI>>>
P4 2.8@3.6/X800Pro/1024Mb/2*160gb WD1600JB/SyncMaster 932в/СВО/Xp SP2 + Asus P525



Партнер
 

Member
Статус: Не в сети
Регистрация: 05.12.2004
Помогите плиз, шестая делфя пару дней назад стала выдавать при запуске сообщение что "@sysutils@CheсkWin32Version точка входа в библиотеке rtl60.bpl не найдена"
Блин че только не делал, и сносил/переустанавливал, и переменные среды в винде менял, и реестр перекопал ничего не помогает.

ЗЫ Поиск юзал, ничего не нашел :(


 

Member
Статус: Не в сети
Регистрация: 02.03.2005
Откуда: Владивосток
Подскажите как в имеющейся таблице Dbase программно добавить и удалить поле. А то скока не искал - только создание новых таблиц, а вот изменение существующих ненашел.


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Aleksoid1978 тебе нужно сформировать запрос или как?

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 02.03.2005
Откуда: Владивосток
Daemon писал(а):
Aleksoid1978 тебе нужно сформировать запрос или как?


Да мне не важно как - можно Sql запрос, только такой, который TQuery тянет, а можно и с помощью TTable или еще как-то.


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Aleksoid1978 ну добавление допустим:
Код:
ALTER TABLE tbname
    ADD (tbfield int)

Удаление по аналогии.

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Здравствуйте, появилась пара вопросиков.
1. Нужно напечатать некий документ, предварительно подготовив его в соей программе (там и логотип и табличка с данными + еще разная фигня, но все расположено в определенном порядке с отступами и т.д.). Так вот, может кто-нибудь уже занимался чем-то подобным и может посоветовать наиболее подходящий для этого компонент, или способ.
2. Есть файл Excel, из него нужно прочитать пару столбцов, как это можно сделать?

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 02.03.2005
Откуда: Владивосток
Daemon писал(а):
Aleksoid1978 ну добавление допустим:
Код:
ALTER TABLE tbname
    ADD (tbfield int)

Удаление по аналогии.


Попробовал через TQuery1 - вылазит ошибка 'Error creating cursor handle' и портится табличка, поле создается но без указания типа(смог открыть тока через Database Desktop).
Добавлено спустя 9 минут, 37 секунд
Lord_of_Darkness писал(а):
Здравствуйте, появилась пара вопросиков.
2. Есть файл Excel, из него нужно прочитать пару столбцов, как это можно сделать?


Ну можно так:

Код:
Uses
  ...OleServer, Excel97, ComObj, Variants

Var
   MsExcel: Variant;
   WorkBooks, WorkSheets:OleVariant

try
  MsExcel := CreateOleObject('Excel.Application');
  except
  on E: Exception do
    begin
      ShowMessage('Невозможно запустить Microsoft Excel'+chr(13)+'Возможно программа не установлена!');
      Exit;
    end;
  end;
  MsExcel.Application.Visible:=1; // 1-показать, 0 - непоказывать
  MsExcel.Application.Workbooks.Open(FileName:=FileName,UpdateLinks:=0); // UpdateLinks:=0 чтобы не запрашивал при открытии об изменении связей
  WorkBooks:=MsExcel.Application.Workbooks[1];
  WorkSheets:=WorkBooks.Worksheets[1];
  // и читать данные так
  Value:=WorkSheets.Cells[i, k].Value; // Где i-строка, k-столбец
  // Закрытие
  WorkBooks.Close(False); // Чтобы не задавал вопросов при закрытиии, если конечно не было изменений - тогда сперва сохранить
  MsExcel.Quit;
  VarClear(WorkSheets);
  VarClear(WorkBooks);
  VarClear(MsExcel);


Удачи


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Aleksoid1978 Спасибо.
To All Насчет вопроса №2, я думал, думал и ничего лучше юзания TWebBrowser не придумал. Т.е. я динамически создаю вэб страничку с нужными табличками, логотипами и т.д. и потом ее печатаю. Имеет такой способ право на жизнь?
Если да, то как писать HTML код прямо в компонент, а не в файл с последующей загрузкой.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 02.03.2005
Откуда: Владивосток
Lord_of_Darkness писал(а):
Aleksoid1978 Спасибо.
To All Насчет вопроса №2, я думал, думал и ничего лучше юзания TWebBrowser не придумал. Т.е. я динамически создаю вэб страничку с нужными табличками, логотипами и т.д. и потом ее печатаю. Имеет такой способ право на жизнь?
Если да, то как писать HTML код прямо в компонент, а не в файл с последующей загрузкой.


Тогда лучше вместо TWebBrowser юзай TEmbeddedWB(можеш дать почту - вышлю), так там есть такая функция LoadFromStrings(TStrings) - загружает страницу из строк. Код можно создавать динамически или хранить в TMemo.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Lord_of_Darkness Вполне нормальный вариант, тем более что для его работы особо извращатся не придется


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Aleksoid1978 Мыл в профиле. Спасибо за помощь.
Ray Adams Я так и думал :) Просто я прикинул каково это все будет на канве рисовать... :rip:

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 26.05.2004
Откуда: Kharkov.UA
Lord_of_Darkness
Можно поюзать репорты, например Free Report http://www.fast-report.com/en/products/ ... php?BID=27
Шаблоны можно править прямо в рантайме, опять же печать там встроенная, не надо самому делать.


 

Member
Статус: Не в сети
Регистрация: 14.08.2004
Откуда: Москва
Приветы :)
Помогите пожалуйста разобраться с одной прогой. Вобщем пишу консольное приложение... Цель - считать текстовый файл, проанализировать строку и выдать тот или иной результат... Вобщем то всё работает кроме одного: выходной файл заполняется на 48 кб и всё, программа заканчивается... Почему так и как этого избежать, объясните пожалста...
если что - вот сам код:
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var a,s:widestring;
i:integer;
begin
assign(input,'in.txt');
reset(input);
assign(output,'out.txt');
rewrite(output);
a:='';
while a<>'zxczxczxc' do
begin
  readln(a);
  s:='';
  for i:=1 to 15 do
    s:=s+a[i]; {Смотрю на первые 15 символов строки}
  if s='Date and Time: ' then {Если эти 15 символов дают 'Date and Time: ', то...}
  begin
    for i:=16 to length(a) do  {... то выводи всю оставшуюся строку с 16 символа}
     write(a[i]);
  end
  else write(a); {Если нет, то выводи всё как есть}
  writeln;
end;
close(input);
close(output);
end.

Заранее пасиб :)
Добавлено спустя 38 минут, 4 секунды
ЗЫ строка а не принимает значение 'zxczxczxc' когда прога заканчивается.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
А что мешает работать как с нормальными текстовыми файлами то?


 

Member
Статус: Не в сети
Регистрация: 14.08.2004
Откуда: Москва
Ray Adams
Всмысле???
Хотя, раз задаю такой вопрос, наверное недостаток знаний :( ... а так то почему не работает?


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Ну во-первых объявить текстовые файлы:
Код:
a, b: TextFile;

Ну а работать с ними через AssignFile, CloseFile, чтение/запись соответственно Readln/Writeln

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 14.08.2004
Откуда: Москва
Daemon
Бесполезно :(... всё одно и то же... теперь пишу так:
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var a,s:widestring;
i:integer;
v,b:TextFile;
begin
assignfile(v,'in.txt');
reset(v);
assignfile(b,'out.txt');
rewrite(b);
a:='';

while a<>'zxczxczxc' do
begin
  readln(v,a);
  s:='';
  for i:=1 to 15 do
    s:=s+a[i];
  if s='Date and Time: ' then
  begin
    for i:=16 to length(a) do 
     write(b,a[i]);

  end
  else write(b,a);
  writeln(b);
end;
closefile(v);
closefile(b);
end.

Результат тот же... 48 кб и конец проги :(


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Мда, ну попробуй зделать так, авось что получиться:
Код:
  closefile(b);
  append(b);
  for i:=16 to length(a) do 
    write(b,a[i]);
Ну или нечто в этом роде :-)

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 14.08.2004
Откуда: Москва
Daemon
Попробовал так - ни фига... менял везде... там чё 48 кб под выходной файл и не больше что ли?


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 51 из 116<  1 ... 48  49  50  51  52  53  54 ... 116  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan