Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 1057
от 07.02.2008, 13:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 441, Экспертов: 59
В номере:Вопросов: 4, Ответов: 7

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 121180: Мир вам, уважаемые эксперты! Помогите добрым советом. Передо мной стоит задача согласовать написанное на фортране ядро с оболочкой на Дельфи. Другими словами открыть файл записанный программой, написанной на фортране. (В приложении описано, к...
Вопрос № 121217: Уважаемые Эксперты. Как можно (если вообще возможно) использовать функцию(процедуру), описанную в main_unit из фрейм юнита если известно, что рейм юнит добавляется на main_form(main_unit). Задача следующая - на форме должно быть от 1г...
Вопрос № 121229: Как в программе например вычисление дискриминанта, задавать не целые цифры например 1-2-3 а 1.1 или 1.5 и тд. А то программа ругается при нажатии на кнопку вычислить. '1.5' is not a valid integer value...
Вопрос № 121273: Есть несколько картинок кнопок и картинка главного окна. Как "одеть" форму в такой "скин"? З.Ы. У меня 7ой...

Вопрос № 121.180
Мир вам, уважаемые эксперты!
Помогите добрым советом.
Передо мной стоит задача согласовать написанное на фортране ядро с оболочкой на Дельфи. Другими словами открыть файл записанный программой, написанной на фортране. (В приложении описано, как фортран записывает нетипизированные файлы, если это кому интересно)
В настоящее время я решил задачу чтением файла "в сырую" вот так:
var f: file;
Reset(f,1);
BlockRead(f,i4,4);
BlockRead(f,i2,2);
BlockRead(f,r4,4);
...
Все работает, но проблема в том, что чтение происходит очень медленно (20МБ файл загружается свыше 10 секунд). То же самое наблюдается и при записи с помощью BlockWrite.
Можно ли как-нибудь ускорить этот процесс?
С уважением, Лука.

Приложение:

Отправлен: 01.02.2008, 13:49
Вопрос задал: Лука (статус: Студент)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Selya
Здравствуйте, Лука!
Попробуйте читать файл используя TFileStream
Это работает значительно быстее, чем через чтение AssignFile(F, FileName) и т.д.
В справке всё доходчиво описано.
Ответ отправил: Selya (статус: 5-ый класс)
Ответ отправлен: 01.02.2008, 14:33
Оценка за ответ: 5
Комментарий оценки:
Попробую.
Просто я где-то читал, что именно доступ через BlockRead считается самым быстрым и надеялся, что мне подскажут как правильно пользоваться размером буфера. Думаю где-то в этой области закавыка.


Вопрос № 121.217
Уважаемые Эксперты.
Как можно (если вообще возможно) использовать функцию(процедуру),
описанную в main_unit из фрейм юнита если известно, что рейм юнит
добавляется на main_form(main_unit).
Задача следующая - на форме должно быть от 1го до (предположительно)
50ти частей одинаковой "структуры". Самое узкое (для меня) место
заключается в том, что в состав "структуры" входит кнопка.
Если у кого есть какие сооражения поделитесь, у меня очень сильное
ощущение того, что я выбрал неправильный путь.

Приложение:

Отправлен: 01.02.2008, 18:09
Вопрос задал: Mastela (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Selya
Здравствуйте, Mastela!
Очень сумбурно.
В модуле main_unit в секции uses надо прописать имя модуля, где у вас фрейм.
Затем просто используйте вашу процедуру (функцию). Если это метод какого-то класса, то так же:
unit MainUnit;
...
uses
Unit2;
...
Form2.SomeProcedure();
Ответ отправил: Selya (статус: 5-ый класс)
Ответ отправлен: 01.02.2008, 19:03
Оценка за ответ: 2
Комментарий оценки:
Это работает в случиииспользования процедуры(функции) из фрейма. Задача стоит полностью противопроложная.


Вопрос № 121.229
Как в программе например вычисление дискриминанта, задавать не целые цифры например 1-2-3 а 1.1 или 1.5 и тд. А то программа ругается при нажатии на кнопку вычислить.

'1.5' is not a valid integer value

Приложение:

Отправлен: 01.02.2008, 20:25
Вопрос задал: Ибатуллин Дамир Дарвинович (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Ибатуллин Дамир Дарвинович!
Используйте для коэффициентов уравнения тоже вещественные числа: A,B,C:real.
Для преобразования строки в вещественное число используйте функцию StrToFloat.

Удачи!
Ответ отправил: Николай Владимирович / Н.В. (статус: Специалист)
Ответ отправлен: 01.02.2008, 20:41
Оценка за ответ: 5

Отвечает: Drbear
Здравствуйте, Ибатуллин Дамир Дарвинович!

для использования чисел с плавающей запятой можно использовать Extended и StrToFloat
вот пример:

var
floatValue : Extended;
begin
floatValue := StrToFloat(Edit1.Text);
end;
Ответ отправил: Drbear (статус: 6-ой класс)
Ответ отправлен: 01.02.2008, 20:42
Оценка за ответ: 5

Отвечает: DimonSoft
Здравствуйте, Ибатуллин Дамир Дарвинович!

В своей процедуре Вы используете функцию IntToStr(), которая по переданной её строке возвращает соответствующее целое число. К сожалению, если аргумент содержит что-нибудь отличное от текстового представления целого числа, выбрасывается исключение. Для решения проблемы можно пользоваться функцией FloatToStr(), но это Вам уже посоветовали.

С уважением, DimonSoft.
Ответ отправил: DimonSoft (статус: 3-ий класс)
Ответ отправлен: 01.02.2008, 21:18
Оценка за ответ: 5

Отвечает: Genia007
Здравствуйте, Ибатуллин Дамир Дарвинович!
ВЫ используете функцию StrToInt(Edit1.Text), которая преобразует строку в целое число, где у вас и возникает ошибка, если вы вводите вещественное число. Используйте функцию StrToFloat, которая преобразует строку в вещественное число и у вас всё заработает.
Ответ отправил: Genia007 (статус: 5-ый класс)
Ответ отправлен: 02.02.2008, 12:53


Вопрос № 121.273
Есть несколько картинок кнопок и картинка главного окна. Как "одеть" форму в такой "скин"?
З.Ы. У меня 7ой
Отправлен: 02.02.2008, 01:17
Вопрос задала: Екатерина Ходеева (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 9)

Отвечает: Drbear
Здравствуйте, Екатерина Ходеева!

Почитайте http://delphiworld.narod.ru/base/skins.html,
должно помочь
Ответ отправил: Drbear (статус: 6-ой класс)
Ответ отправлен: 02.02.2008, 13:38
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Но хотелось бы сразу увидеть ответ, а не лазить по сайтам. В следующий раз будет 3.


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.70 от 17.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное