Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» проблемы Turbo Pascal

Автор: ShIvADeSt
Дата сообщения: 03.08.2005 00:55
VictorNik

Цитата:
Как бы в курсе. Но задачи мелкие, а библиотека Дельфи большая.
Мне не писать туда, не модифицировать. Только прочитать.
Все равно, потом, работать с командной строки.

В таком случае я тем более не вижу никаких препятсвий, чтобы сделать эту задачу в Дельфи. Просто возьми и перенеси содержимое из своего pas файла в файл dpr Дельфи, убери uses которые не используются в дельфи (например Crt) и откомпилируй. Работать будет всяко быстрее под виндой, так как не придется вызывать VMM. А
Цитата:
паскаль не работает с Excel'ем....
единственный для тебя вариант в случае с паскалем, это выгружать таблицу в cvs формате (обычный текстовый, но это ручками придется делать, ибо Паскаль не работает с Екселем ) и потом на паскале парсить его.
Автор: VictorNik
Дата сообщения: 04.08.2005 12:32
2 All

Четыре года назад накопал либу какого-то немца
для работы в Excel 5.0 Проблем не стало.
Теперь народ в губерне поменял компы / проги
и так как я не программер,а пишу только когда
прижмут обстоятельства то Дельфи для меня...
Мне показалось что обьектность там не такая
как в Паскале. Задавила нерешительность.

Автор: Dim2004
Дата сообщения: 04.08.2005 14:31
VictorNik

Цитата:
Мне показалось что обьектность там не такая как в Паскале.

А что значит "не такая"? По мне, так очень даже "такая" . Кроме того, есть ещё один аспект - TP, как бы он ни был хорош, уже давно "вышел в тираж". Я не призываю кидаться на все новейшие поделки типа .Net-а, но и безбожно отставать от времени тоже не стОит .
Автор: VictorNik
Дата сообщения: 04.08.2005 23:08
2 Dim2004

Ну прямо Цицерон. Уговорил. Буду пробывать.
И ежели не влом - ткни носом в пример.
Задачи простые - вытащить три-пять полей, сортировка по трем полям
+ дальше раскидать по своим критериям. Последние два задачи - не
проблема, но вот как и с чего начать? На Дельфях баловался, но в
рамках нескольких первых страниц Фигурнова.

Автор: VictorNik
Дата сообщения: 05.08.2005 07:47
Звиняйте!!
Кто такой Фигурнов, почему не знаю?
Конечно же Фаронова. Там где про Дельфи.
Автор: lamer666
Дата сообщения: 06.08.2005 22:51
Уважаемые! Такая проблема: при использовании модуля Crt на быстрых машинах программа компилируется, но при запуске выдается ошибка этапа выполнения с кодом 200 (деление на 0). Давным-давно нарыл кем-то пропатченный Crt_ii.tpu (типа для Пентиум II ), для реального режима. Может быть, у кого-то есть .tpp? Или знаете другое средство?
Заранее благодарен.

З.Ы. А дома (Атлон 2500@3200) и Crt_ii время от времени глючит, все тот же Error code 200
Автор: Dim2004
Дата сообщения: 08.08.2005 17:23
VictorNik

Цитата:
И ежели не влом - ткни носом в пример.

Поищу, пример где-то бегал .

lamer666

Цитата:
Или знаете другое средство?

Загляни сюда, может, чего присмотришь. Мне и пробовать-то не на чем .
Автор: lamer666
Дата сообщения: 08.08.2005 18:22
Dim2004
Вроде то что надо. Дома попробую. Спасибо!
Автор: Dim2004
Дата сообщения: 09.08.2005 10:46
lamer666

Цитата:
Дома попробую. Спасибо!

Завсегда пожалуйста . Если что-то заработает - поделись опытом .

VictorNik

Цитата:
Ну прямо Цицерон. Уговорил.

Это я? Да я никогда никого не уговаривал, это тебе показалось .


Цитата:
И ежели не влом - ткни носом в пример.

Вот, кусок собственноручно написанной поделки. Выкидывает в Excel содежимое SGList, рисует шапку и проч., использует позднее связывание.


Код: procedure TFrmMain.BtnSaveClick(Sender: TObject);
var i: integer;
FName: String;
XL: Variant;
begin
FName := ExtractFilePath(Application.Exename) + 'Stat.xls';
XL := CreateOleObject('Excel.Application.8');
XL.Visible := True;
XL.Workbooks.Add(-4167);

XL.Workbooks[1].ActiveSheet.Cells.Font.Size := 8;
XL.Workbooks[1].ActiveSheet.PageSetup.Orientation := 2;
XL.Workbooks[1].ActiveSheet.PageSetup.LeftMargin := XL.Workbooks[1].Application.CentimetersToPoints(1);
XL.Workbooks[1].ActiveSheet.PageSetup.RightMargin := XL.Workbooks[1].Application.CentimetersToPoints(0.5);
XL.Workbooks[1].ActiveSheet.PageSetup.TopMargin := XL.Workbooks[1].Application.CentimetersToPoints(1);
XL.Workbooks[1].ActiveSheet.PageSetup.BottomMargin := XL.Workbooks[1].Application.CentimetersToPoints(1);

XL.Workbooks[1].ActiveSheet.Columns[1].ColumnWidth := 3;
XL.Workbooks[1].ActiveSheet.Columns[2].ColumnWidth := 4.3;
XL.Workbooks[1].ActiveSheet.Columns[3].ColumnWidth := 14;
XL.Workbooks[1].ActiveSheet.Columns[4].ColumnWidth := 20;
XL.Workbooks[1].ActiveSheet.Columns[5].ColumnWidth := 3;
XL.Workbooks[1].ActiveSheet.Columns[6].ColumnWidth := 5;
XL.Workbooks[1].ActiveSheet.Columns[7].ColumnWidth := 5;
XL.Workbooks[1].ActiveSheet.Columns[8].ColumnWidth := 5;
XL.Workbooks[1].ActiveSheet.Columns[9].ColumnWidth := 5;
XL.Workbooks[1].ActiveSheet.Columns[10].ColumnWidth := 5;
XL.Workbooks[1].ActiveSheet.Columns[11].ColumnWidth := 5;
XL.Workbooks[1].ActiveSheet.Columns[12].ColumnWidth := 6;
XL.Workbooks[1].ActiveSheet.Columns[13].ColumnWidth := 20;
XL.Workbooks[1].ActiveSheet.Columns[14].ColumnWidth := 8;
XL.Workbooks[1].ActiveSheet.Columns[15].ColumnWidth := 20;

XL.Workbooks[1].ActiveSheet.Rows[3].RowHeight := 3;
XL.Workbooks[1].ActiveSheet.Rows[5].RowHeight := 4;
XL.Workbooks[1].ActiveSheet.Rows[7].RowHeight := 3;

XL.Workbooks[1].ActiveSheet.Cells[1,13].Value := 'Президент ЗАО "Paranoid UnLimited"';
XL.Workbooks[1].ActiveSheet.Cells[2,14].Value := 'Dim2004';
XL.Workbooks[1].ActiveSheet.Cells[4,13].Value := '" " _________ 200_ года';
XL.Workbooks[1].ActiveSheet.Cells[6,1].Value := 'Таблица по расчету заработной платы';

XL.Workbooks[1].ActiveSheet.Range['A6:O6'].WrapText := True;
XL.Workbooks[1].ActiveSheet.Range['A6:O6'].Orientation := 0;
XL.Workbooks[1].ActiveSheet.Range['A6:O6'].IndentLevel := 0;
XL.Workbooks[1].ActiveSheet.Range['A6:O6'].ShrinkToFit := False;
XL.Workbooks[1].ActiveSheet.Range['A6:O6'].MergeCells := True;
XL.Workbooks[1].ActiveSheet.Range['A6:O6'].Font.Bold := TRUE;
XL.Workbooks[1].ActiveSheet.Range['A6:O6'].HorizontalAlignment := -4108;

XL.Workbooks[1].ActiveSheet.Cells[8,1].Value := '№';
XL.Workbooks[1].ActiveSheet.Range['A8:A11'].WrapText := True;
XL.Workbooks[1].ActiveSheet.Range['A8:A11'].Orientation := 0;
XL.Workbooks[1].ActiveSheet.Range['A8:A11'].IndentLevel := 0;
XL.Workbooks[1].ActiveSheet.Range['A8:A11'].ShrinkToFit := False;
XL.Workbooks[1].ActiveSheet.Range['A8:A11'].MergeCells := True;
XL.Workbooks[1].ActiveSheet.Range['A8:A11'].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['A8:A11'].VerticalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Cells[8,2].Value := 'Должность';
XL.Workbooks[1].ActiveSheet.Range['B8:B11'].WrapText := True;
XL.Workbooks[1].ActiveSheet.Range['B8:B11'].Orientation := 0;
XL.Workbooks[1].ActiveSheet.Range['B8:B11'].IndentLevel := 0;
XL.Workbooks[1].ActiveSheet.Range['B8:B11'].ShrinkToFit := False;
XL.Workbooks[1].ActiveSheet.Range['B8:B11'].MergeCells := True;
XL.Workbooks[1].ActiveSheet.Range['B8:B11'].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['B8:B11'].VerticalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['B8:B11'].Borders[7].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['B8:B11'].Borders[7].Weight := 2;
XL.Workbooks[1].ActiveSheet.Range['B8:B11'].Borders[10].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['B8:B11'].Borders[10].Weight := 2;
XL.Workbooks[1].ActiveSheet.Cells[8,3].Value := 'ФИО';
XL.Workbooks[1].ActiveSheet.Range['C8:C11'].WrapText := True;
XL.Workbooks[1].ActiveSheet.Range['C8:C11'].Orientation := 0;
XL.Workbooks[1].ActiveSheet.Range['C8:C11'].IndentLevel := 0;
XL.Workbooks[1].ActiveSheet.Range['C8:C11'].ShrinkToFit := False;
XL.Workbooks[1].ActiveSheet.Range['C8:C11'].MergeCells := True;
XL.Workbooks[1].ActiveSheet.Range['C8:C11'].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['C8:C11'].VerticalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['C8:C11'].Borders[10].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['C8:C11'].Borders[10].Weight := 2;
XL.Workbooks[1].ActiveSheet.Cells[8,4].Value := StatPeriod;
XL.Workbooks[1].ActiveSheet.Range['D8:K8'].WrapText := True;
XL.Workbooks[1].ActiveSheet.Range['D8:K8'].Orientation := 0;
XL.Workbooks[1].ActiveSheet.Range['D8:K8'].IndentLevel := 0;
XL.Workbooks[1].ActiveSheet.Range['D8:K8'].ShrinkToFit := False;
XL.Workbooks[1].ActiveSheet.Range['D8:K8'].MergeCells := True;
XL.Workbooks[1].ActiveSheet.Range['D8:K8'].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['D8:K8'].Borders[9].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['D8:K8'].Borders[9].Weight := -4138;
XL.Workbooks[1].ActiveSheet.Cells[9,4].Value := 'Часы';
XL.Workbooks[1].ActiveSheet.Range['D9:D11'].WrapText := True;
XL.Workbooks[1].ActiveSheet.Range['D9:D11'].Orientation := 0;
XL.Workbooks[1].ActiveSheet.Range['D9:D11'].IndentLevel := 0;
XL.Workbooks[1].ActiveSheet.Range['D9:D11'].ShrinkToFit := False;
XL.Workbooks[1].ActiveSheet.Range['D9:D11'].MergeCells := True;
XL.Workbooks[1].ActiveSheet.Range['D9:D11'].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['D9:D11'].VerticalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Cells[9,5].Value := 'Тар. ставка';
XL.Workbooks[1].ActiveSheet.Range['E9:E11'].WrapText := True;
XL.Workbooks[1].ActiveSheet.Range['E9:E11'].Orientation := 0;
XL.Workbooks[1].ActiveSheet.Range['E9:E11'].IndentLevel := 0;
XL.Workbooks[1].ActiveSheet.Range['E9:E11'].ShrinkToFit := False;
XL.Workbooks[1].ActiveSheet.Range['E9:E11'].MergeCells := True;
XL.Workbooks[1].ActiveSheet.Range['E9:E11'].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['E9:E11'].Borders[7].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['E9:E11'].Borders[7].Weight := 2;
XL.Workbooks[1].ActiveSheet.Range['E9:E11'].Borders[10].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['E9:E11'].Borders[10].Weight := 2;
XL.Workbooks[1].ActiveSheet.Cells[9,6].Value := 'День';
XL.Workbooks[1].ActiveSheet.Cells[9,6].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Cells[10,6].Value := '08:00-20:00';
XL.Workbooks[1].ActiveSheet.Range['F10:G10'].WrapText := True;
XL.Workbooks[1].ActiveSheet.Range['F10:G10'].Orientation := 0;
XL.Workbooks[1].ActiveSheet.Range['F10:G10'].IndentLevel := 0;
XL.Workbooks[1].ActiveSheet.Range['F10:G10'].ShrinkToFit := False;
XL.Workbooks[1].ActiveSheet.Range['F10:G10'].MergeCells := True;
XL.Workbooks[1].ActiveSheet.Range['F10:G10'].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['F10:G10'].Borders[9].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['F10:G10'].Borders[9].Weight := 2;
XL.Workbooks[1].ActiveSheet.Cells[11,6].Value := 'Сообщ.';
XL.Workbooks[1].ActiveSheet.Cells[11,6].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['F11:F11'].Borders[10].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['F11:F11'].Borders[10].Weight := 2;
XL.Workbooks[1].ActiveSheet.Cells[11,7].Value := '$$';
XL.Workbooks[1].ActiveSheet.Cells[11,7].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Cells[9,8].Value := 'Вечер';
XL.Workbooks[1].ActiveSheet.Cells[9,8].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Cells[10,8].Value := '20:00-24:00';
XL.Workbooks[1].ActiveSheet.Range['H10:I10'].WrapText := True;
XL.Workbooks[1].ActiveSheet.Range['H10:I10'].Orientation := 0;
XL.Workbooks[1].ActiveSheet.Range['H10:I10'].IndentLevel := 0;
XL.Workbooks[1].ActiveSheet.Range['H10:I10'].ShrinkToFit := False;
XL.Workbooks[1].ActiveSheet.Range['H10:I10'].MergeCells := True;
XL.Workbooks[1].ActiveSheet.Range['H10:I10'].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['H10:I10'].Borders[9].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['H10:I10'].Borders[9].Weight := 2;
XL.Workbooks[1].ActiveSheet.Cells[11,8].Value := 'Сообщ.';
XL.Workbooks[1].ActiveSheet.Cells[11,8].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['H11:H11'].Borders[10].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['H11:H11'].Borders[10].Weight := 2;
XL.Workbooks[1].ActiveSheet.Cells[11,9].Value := '$$';
XL.Workbooks[1].ActiveSheet.Cells[11,9].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Cells[9,10].Value := 'Ночь';
XL.Workbooks[1].ActiveSheet.Cells[9,10].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Cells[10,10].Value := '00:00-08:00';
XL.Workbooks[1].ActiveSheet.Range['J10:K10'].WrapText := True;
XL.Workbooks[1].ActiveSheet.Range['J10:K10'].Orientation := 0;
XL.Workbooks[1].ActiveSheet.Range['J10:K10'].IndentLevel := 0;
XL.Workbooks[1].ActiveSheet.Range['J10:K10'].ShrinkToFit := False;
XL.Workbooks[1].ActiveSheet.Range['J10:K10'].MergeCells := True;
XL.Workbooks[1].ActiveSheet.Range['J10:K10'].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['J10:K10'].Borders[9].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['J10:K10'].Borders[9].Weight := 2;
XL.Workbooks[1].ActiveSheet.Cells[11,10].Value := 'Сообщ.';
XL.Workbooks[1].ActiveSheet.Cells[11,10].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['J11:J11'].Borders[10].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['J11:J11'].Borders[10].Weight := 2;
XL.Workbooks[1].ActiveSheet.Cells[11,11].Value := '$$';
XL.Workbooks[1].ActiveSheet.Cells[11,11].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['H9:I11'].Borders[7].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['H9:I11'].Borders[7].Weight := 2;
XL.Workbooks[1].ActiveSheet.Range['H9:I11'].Borders[10].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['H9:I11'].Borders[10].Weight := 2;
XL.Workbooks[1].ActiveSheet.Cells[8,12].Value := 'Всего $$';
XL.Workbooks[1].ActiveSheet.Range['L8:L11'].WrapText := True;
XL.Workbooks[1].ActiveSheet.Range['L8:L11'].Orientation := 0;
XL.Workbooks[1].ActiveSheet.Range['L8:L11'].IndentLevel := 0;
XL.Workbooks[1].ActiveSheet.Range['L8:L11'].ShrinkToFit := False;
XL.Workbooks[1].ActiveSheet.Range['L8:L11'].MergeCells := True;
XL.Workbooks[1].ActiveSheet.Range['L8:L11'].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['L8:L11'].VerticalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Cells[8,13].Value := 'Доплата $$';
XL.Workbooks[1].ActiveSheet.Range['M8:M11'].WrapText := True;
XL.Workbooks[1].ActiveSheet.Range['M8:M11'].Orientation := 0;
XL.Workbooks[1].ActiveSheet.Range['M8:M11'].IndentLevel := 0;
XL.Workbooks[1].ActiveSheet.Range['M8:M11'].ShrinkToFit := False;
XL.Workbooks[1].ActiveSheet.Range['M8:M11'].MergeCells := True;
XL.Workbooks[1].ActiveSheet.Range['M8:M11'].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['M8:M11'].VerticalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Cells[8,13].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Cells[8,14].Value := 'Итого $$';
XL.Workbooks[1].ActiveSheet.Range['N8:N11'].WrapText := True;
XL.Workbooks[1].ActiveSheet.Range['N8:N11'].Orientation := 0;
XL.Workbooks[1].ActiveSheet.Range['N8:N11'].IndentLevel := 0;
XL.Workbooks[1].ActiveSheet.Range['N8:N11'].ShrinkToFit := False;
XL.Workbooks[1].ActiveSheet.Range['N8:N11'].MergeCells := True;
XL.Workbooks[1].ActiveSheet.Range['N8:N11'].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['N8:N11'].VerticalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Cells[8,15].Value := 'Примечание';
XL.Workbooks[1].ActiveSheet.Range['O8:O11'].WrapText := True;
XL.Workbooks[1].ActiveSheet.Range['O8:O11'].Orientation := 0;
XL.Workbooks[1].ActiveSheet.Range['O8:O11'].IndentLevel := 0;
XL.Workbooks[1].ActiveSheet.Range['O8:O11'].ShrinkToFit := False;
XL.Workbooks[1].ActiveSheet.Range['O8:O11'].MergeCells := True;
XL.Workbooks[1].ActiveSheet.Range['O8:O11'].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['O8:O11'].VerticalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['A8:O11'].Borders[7].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['A8:O11'].Borders[7].Weight := 4;
XL.Workbooks[1].ActiveSheet.Range['A8:O11'].Borders[8].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['A8:O11'].Borders[8].Weight := 4;
XL.Workbooks[1].ActiveSheet.Range['A8:O11'].Borders[10].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['A8:O11'].Borders[10].Weight := 4;
XL.Workbooks[1].ActiveSheet.Range['A8:O11'].Borders[9].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['A8:O11'].Borders[9].Weight := 2;
XL.Workbooks[1].ActiveSheet.Range['L8:O11'].Borders[7].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['L8:O11'].Borders[7].Weight := 2;
XL.Workbooks[1].ActiveSheet.Range['L8:O11'].Borders[11].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['L8:O11'].Borders[11].Weight := 2;
XL.Workbooks[1].ActiveSheet.Cells[12,1].Value := 'Зал';
XL.Workbooks[1].ActiveSheet.Range['A12:O12'].WrapText := True;
XL.Workbooks[1].ActiveSheet.Range['A12:O12'].Orientation := 0;
XL.Workbooks[1].ActiveSheet.Range['A12:O12'].IndentLevel := 0;
XL.Workbooks[1].ActiveSheet.Range['A12:O12'].ShrinkToFit := False;
XL.Workbooks[1].ActiveSheet.Range['A12:O12'].MergeCells := True;
XL.Workbooks[1].ActiveSheet.Range['A12:O12'].HorizontalAlignment := -4108;
XL.Workbooks[1].ActiveSheet.Range['A12:O12'].Borders[7].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['A12:O12'].Borders[7].Weight := 4;
XL.Workbooks[1].ActiveSheet.Range['A12:O12'].Borders[8].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['A12:O12'].Borders[8].Weight := 4;
XL.Workbooks[1].ActiveSheet.Range['A12:O12'].Borders[10].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['A12:O12'].Borders[10].Weight := 4;
XL.Workbooks[1].ActiveSheet.Range['A12:O12'].Borders[9].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range['A12:O12'].Borders[9].Weight := 2;

XL.Workbooks[1].ActiveSheet.Cells[9,7].Value := FormatFloat('0.000', Day);
XL.Workbooks[1].ActiveSheet.Cells[9,9].Value := FormatFloat('0.000', Evening);
XL.Workbooks[1].ActiveSheet.Cells[9,11].Value := FormatFloat('0.000', Night);

for i:=1 to SGList.RowCount-1 do begin
XL.Workbooks[1].ActiveSheet.Cells[i+12,1].Value := SGList.Cells[0, i];
XL.Workbooks[1].ActiveSheet.Cells[i+12,3].Value := SGList.Cells[1, i];
XL.Workbooks[1].ActiveSheet.Cells[i+12,6].Value := SGList.Cells[2, i];
XL.Workbooks[1].ActiveSheet.Cells[i+12,7].Formula := '=RC[-1]*R9C7';
XL.Workbooks[1].ActiveSheet.Cells[i+12,8].Value := SGList.Cells[4, i];
XL.Workbooks[1].ActiveSheet.Cells[i+12,9].Formula := '=RC[-1]*R9C9';
XL.Workbooks[1].ActiveSheet.Cells[i+12,10].Value := SGList.Cells[6, i];
XL.Workbooks[1].ActiveSheet.Cells[i+12,11].Formula := '=RC[-1]*R9C11';
XL.Workbooks[1].ActiveSheet.Cells[i+12,12].Formula := '=RC[-5]+RC[-3]+RC[-1]';
end;
XL.Workbooks[1].ActiveSheet.Range[XL.Workbooks[1].ActiveSheet.Cells[13, 1], XL.Workbooks[1].ActiveSheet.Cells[SGList.RowCount+11, 15]].Borders[7].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range[XL.Workbooks[1].ActiveSheet.Cells[13, 1], XL.Workbooks[1].ActiveSheet.Cells[SGList.RowCount+11, 15]].Borders[7].Weight := 4;
XL.Workbooks[1].ActiveSheet.Range[XL.Workbooks[1].ActiveSheet.Cells[13, 1], XL.Workbooks[1].ActiveSheet.Cells[SGList.RowCount+11, 15]].Borders[8].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range[XL.Workbooks[1].ActiveSheet.Cells[13, 1], XL.Workbooks[1].ActiveSheet.Cells[SGList.RowCount+11, 15]].Borders[8].Weight := 2;
XL.Workbooks[1].ActiveSheet.Range[XL.Workbooks[1].ActiveSheet.Cells[13, 1], XL.Workbooks[1].ActiveSheet.Cells[SGList.RowCount+11, 15]].Borders[10].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range[XL.Workbooks[1].ActiveSheet.Cells[13, 1], XL.Workbooks[1].ActiveSheet.Cells[SGList.RowCount+11, 15]].Borders[10].Weight := 4;
XL.Workbooks[1].ActiveSheet.Range[XL.Workbooks[1].ActiveSheet.Cells[13, 1], XL.Workbooks[1].ActiveSheet.Cells[SGList.RowCount+11, 15]].Borders[9].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range[XL.Workbooks[1].ActiveSheet.Cells[13, 1], XL.Workbooks[1].ActiveSheet.Cells[SGList.RowCount+11, 15]].Borders[9].Weight := 4;
XL.Workbooks[1].ActiveSheet.Range[XL.Workbooks[1].ActiveSheet.Cells[13, 1], XL.Workbooks[1].ActiveSheet.Cells[SGList.RowCount+11, 15]].Borders[11].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range[XL.Workbooks[1].ActiveSheet.Cells[13, 1], XL.Workbooks[1].ActiveSheet.Cells[SGList.RowCount+11, 15]].Borders[11].Weight := 2;
XL.Workbooks[1].ActiveSheet.Range[XL.Workbooks[1].ActiveSheet.Cells[13, 1], XL.Workbooks[1].ActiveSheet.Cells[SGList.RowCount+11, 15]].Borders[12].LineStyle := 1;
XL.Workbooks[1].ActiveSheet.Range[XL.Workbooks[1].ActiveSheet.Cells[13, 1], XL.Workbooks[1].ActiveSheet.Cells[SGList.RowCount+11, 15]].Borders[12].Weight := 2;

XL.Workbooks[1].ActiveSheet.Name := 'Статистика';
XL.Workbooks[1].SaveAs(FName);
XL.DisplayAlerts := False;
XL.Quit;
MessageDlg('Статистика была сохранена в файл ' + FName, mtInformation, [mbOk], 0)
end;
Автор: lamer666
Дата сообщения: 17.08.2005 17:25
Dim2004
по поводу runtime error 200:
на http://www.merlyn.demon.co.uk/pas-r200.htm много чего есть, я себе скачал bp7patc2.zip (http://www.merlyn.demon.co.uk/20010716/bp7patc2.zip). Патчит turbo.tpl и tpp.tpl, после этого никаких проблем на моем Athlon 2500@3200. А с crt_ii.tpu иногда возникали, а уж если в программе прямо вызвать процедуру delay - runtime error 200. Так что всем рекомендую. Правда, реально delay(1000) после патча у меня в досе (Win98, режим командной строки) длится 0,6 сек., ну так раньше вообще вываливалось! Там же есть другие патчи, напр., позволяющие оттестить в программе длительность delay, но использующие инструкции I386. Но ведь это уже не Borland Pascal! Впрочем, кому что надо...
Автор: SergeBS
Дата сообщения: 18.08.2005 12:07
lamer666
Что-то ты не то накопал. Я как в 1999 году Паскаль пропатчил от RT Error 200, так с тех пор и не делаю с ним ничего. Везде работает, и delay правильный. И Паскаль остается борландовским.
Автор: lamer666
Дата сообщения: 18.08.2005 20:27
SergeBS

Цитата:
Что-то ты не то накопал

Если есть другой патч, позволяющий работать на быстрых машинках и чтоб
Цитата:
delay правильный
был - поделись, плиз! И чтоб на древних машинах типа AT286 тоже пахал
Автор: SergeBS
Дата сообщения: 19.08.2005 11:55
Еще раз: какая машина - пофиг. Что P-2400, что 486 - работает. У меня одна программа с 2001 г. без переделок молотит. Ну по крайней мере месяц назад кто-то про нее какую-то фигню спрашивал. Я отбрехался что давно делал - не помню, пусть на следующий день позвонит - я пока исходники посмотрю. Не позвонил .
На 386,286 - не помню, пробовал или нет. Попробуешь - расскажешь.
BP_PATCH.ARJ - 5.4 Кб.
Ограничения: 1. BP_PATCH работает только для BP 7.0
2. DELAY не будет работать на компьютерах ниже 286
3. TURBO.TPP пока не обработан. А модет быть, в защищенном
режиме такой проблемы нет вообще.
Куда кидать?
Если я здесь, как в Фидо бывалоча, ЮЮкну, модератор меня прихлопнет.
Да, ежели вдруг я что перепутал и что не так - ну свои BPL кину. Или другой патч .
Автор: lamer666
Дата сообщения: 19.08.2005 22:07
SergeBS
Кинь на мыло плиз lamer666@inbox.ru
Автор: SergeBS
Дата сообщения: 22.08.2005 12:56
Кинул кое-как: Bat дурит - но вроде прошло. Черкни результат.
Автор: lamer666
Дата сообщения: 22.08.2005 18:33
SergeBS
Поймал, спасибо! Дома гляну - черкну...
Автор: ShIvADeSt
Дата сообщения: 23.08.2005 00:51
lamer666
SergeBS
Предупреждение. Личная переписка через ПМ.
Автор: Physician
Дата сообщения: 26.08.2005 23:20
Ищем в exe файле последовательность B9 37 00 F7 F1 и заменяем
последние 2 байта на 90 90. После этого всё везде pаботатет.

Если данную замену сделать в файлах TURBO.TPL и TPP.TPL, то откомпилированные после этого файлы exe править будет уже не надо - всё будет работать.
Автор: AterVeneficus
Дата сообщения: 28.08.2005 06:58

Цитата:
чтоб
Цитата:
delay правильный
был можно написать процедуру, использующую gettime (dos)
Автор: SergeBS
Дата сообщения: 30.08.2005 16:14
Physician
AterVeneficus

Не изобретайте велосипед. Это _давно_ сделано (см. ниже).

BP_PATCH.ARJ - 5.4 Кб.

Цитата:

BP_PATCH Vers 1.0 от 9-11-98 ■ Copyright (c) 1998 by Dub Corp

1. Что это за программа?

Наверное, владельцы Pentium-II заметили, что программы,
откомпилированные в Borland Pascal 7.0 (видимо и более ранними
версиями тоже) , запускаются с сообщением Runtime Error 200 at
xxxx:xxxx . BP_PATCH пытается цивилизованно решить эту проблему.

2. Почему это происходит?

Все дело в том, что при подключении библиотеки CRT, паскаль
пытается определить быстродействие компьютера для нормальной работы
функции DELAY. Паскаль подсчитывает количество выполнений некоторого
цикла за один тик таймера. В ходе расчетов там используется операция
деления и на "слишком" быстрых компьютерах происходит элементарное
переполнение.

3. Как это лечить?

Первично появилась программа "patchpas" by Basil V. Vorontsov .
Именно она вдохновила автора на написание BP_PATCH, за что ему
(Воронцову) выражается огромное спасибо. Его программа позволяла
патчить уже готовые EXE-файлы. Грубо говоря, в них отключался расчет
этой константы "медлительности". Видим два минуса: 1. после каждой
компиляции надо выполнять дополнительное действие и 2. функция DELAY
после этого не работает.

BP_PATCH предлагает несколько другое решение проблемы. Во первых,
необходимые изменения раз и навсегда прописываются в TURBO.TPL. Во
вторых, функция DELAY изменена и работает уже через средства
операционной системы (INT 15, ф-ция 86) .
Результат:
1. Функция DELAY будет более корректно функционировать в
многозадачных средах
2. Перекомпилированные программы будут запускаются в среднем на
1/9 секунды быстрее, т.к. отключается расчет константы
"медлительности".

Ограничения: 1. BP_PATCH работает только для BP 7.0
2. DELAY не будет работать на компьютерах ниже 286
3. TURBO.TPP пока не обработан. А модет быть, в защищенном
режиме такой проблемы нет вообще.

4. Как пользоваться программой?

Скопировать BP_PATCH в директорию, содержаищую TURBO.TPL (обычно
BIN) и запустить.

5. Предъявлять претензии: Anatoly Dubinsky
Fidonet 2:5020/801.2
E-Mail: adub@orc.ru


Автор: mrdeath
Дата сообщения: 19.09.2005 10:18
Скажите, как извлечь корень 4 степени и возвести синус в квадрат.
Автор: OdesitVadim
Дата сообщения: 19.09.2005 19:19
mrdeath
sqrt(x) - это корень квадратный
sqrt(sqrt(x)) - будет 4
синус в квадрат возвести нельзя, можно значение возвести, например так
sin(x)*sin(x)
Автор: ShIvADeSt
Дата сообщения: 20.09.2005 01:08
OdesitVadim

Цитата:
sqrt(x) - это корень квадратный
sqrt(sqrt(x)) - будет 4
синус в квадрат возвести нельзя, можно значение возвести, например так
sin(x)*sin(x)

Или так
Exp(n*ln(x)) это возведение полож числа х в степень n, где если n=1/4 то будет извлечение корня 4 степени.
sqr(sin(x)) возведение в квадрат.
Автор: Pinocchio
Дата сообщения: 20.09.2005 08:30

Цитата:
2. DELAY не будет работать на компьютерах ниже 286

Глупость какая-то. Это ещё в 96-ом можно было сделать так,
чтобы работало и на пнях и на XT.

Добавлено:
SergeBS
Извини дарагой, просто порадовал.

Страницы: 1234

Предыдущая тема: Оптимизация парсинга строк в C#


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.