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

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


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

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

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

Выпуск № 1011
от 18.12.2007, 16:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 437, Экспертов: 56
В номере:Вопросов: 2, Ответов: 2


Вопрос № 113702: Решил покопаться в windows.pas и нашел такой фрагмент: tagWNDCLASSW = packed record style: UINT; lpfnWndProc: TFNWndProc; cbClsExtra: Integer; cbWndExtra: Integer; hInstance: HINST; hIcon: HICON; hCursor: HCURS...
Вопрос № 113775: Здравствуйте! Уважаемые, помогите, пожалуйста, как правильно построить набор тестов для этой абстракции? Как вообще их строить? Function SearchPodstr(str:string; obr:string): integer; Var i:integer; n:integer; Flag:BOOLEAN;<...

Вопрос № 113.702
Решил покопаться в windows.pas и нашел такой фрагмент:
tagWNDCLASSW = packed record
style: UINT;
lpfnWndProc: TFNWndProc;
cbClsExtra: Integer;
cbWndExtra: Integer;
hInstance: HINST;
hIcon: HICON;
hCursor: HCURSOR;
hbrBackground: HBRUSH;
lpszMenuName: PWideChar;
lpszClassName: PWideChar;
end;
Покопавшись еще, с удивлением обнаружил, что все поля записи 4-байтовые. Вопрос: кто-нибудь знает зачем писать packed, когда запись и без этого упакована?
Отправлен: 12.12.2007, 23:10
Вопрос задал: Ddogg (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Ddogg!

packed будет иметь значение, если установвить выравнивание на 8 байт. Кроме того, оригинальна, сишная версии этого файла - кроссплатформенная, и при этом для разных платформ размер типа Integer может отличаться - 2 байта в 16-битной среде (windows 3.1), 4 - в 32-битной.
Ответ отправил: Лукьяненко Алексей Валериевич (статус: 10-ый класс)
Ответ отправлен: 13.12.2007, 09:42
Оценка за ответ: 4
Комментарий оценки:
ответ неточный


Вопрос № 113.775
Здравствуйте! Уважаемые, помогите, пожалуйста, как правильно построить набор тестов для этой абстракции? Как вообще их строить?

Function SearchPodstr(str:string; obr:string): integer;
Var
i:integer;
n:integer;
Flag:BOOLEAN;
Begin
Flag:=false;
For i:=1 to Length(str)-Length(obr)+1 do
Begin
If str[i]=obr[1] then
For n:=1 to Length(obr)-1 do
Begin
Flag:=true;
if obr[n+1]<> str[i+n] then
Begin
Flag:=false;
break;
end;
end;
if Flag then begin Result:=i; exit; end;
end;
Result:=0;
end;
//пример использования функции
procedure TForm1.Button1Click(Sender: TObject);
Var
str:string;
obr:string;
begin
Edit1.Text:=Str;
Edit2.Text:=Obr;
label1.Caption:=inttostr(SearchPodstr('fghjgjgi','gh'));
end;
end.
// в данном примере ф-ия возвратит число 2

Отправлен: 13.12.2007, 11:55
Вопрос задала: Izolda (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: SHERRY
Здравствуйте, Izolda!
Если я вас правильно понял, Вы функцией

procedure TForm1.Button1Click(Sender: TObject);
Var
str:string;
obr:string;
begin
Edit1.Text:=Str;
Edit2.Text:=Obr;
label1.Caption:=inttostr(SearchPodstr('fghjgjgi','gh'));
end;
end.
// в данном примере ф-ия возвратит число 2

ищете подстроку? В Паскале есть стандартная функция, которая возвращает индекс вхожения строки (стр1) в подстроку (стр):

pos( стр1, стр );
---------
Наши программисты самые программистые программисты!..
Ответ отправил: SHERRY (статус: 5-ый класс)
Ответ отправлен: 13.12.2007, 12:12


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

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

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

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

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


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


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

В избранное