Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2009, 01:42   #1
SnowFall
Пользователь
 
Регистрация: 13.03.2009
Сообщений: 13
Стрелка Delphi. Как правильно подключить модуль?

вот в этой части проги подчёркивает модуль DateBase, он правильно написан, но как сделать что бы он заработал? может в папке с прогой надо какой нить файл создать? помогите пожалуйста, до завтрашнего утра надо(

Код:
uses
  SysUtils,
  StrUtils,
  DataBase;

Var
  Nomer:Integer;

begin
  n:=0;
  Repeat
    {$I-}
    Repeat
      WriteLn('[1]. Zagruzit'); 
      WriteLn('[2]. Prosmotret');
      WriteLn('[3]. Dobavit');
      WriteLn('[4]. Sohranit');
      Writeln('[5]. Poisk');
      WriteLn('[6]. Exit');
      ReadLn(Nomer);
    Until (IOResult=0)and(Nomer>=1)and(Nomer<=5);
    {$I+}
    Case nomer of
      1: if not LoadFromFile then WriteLn('Error');
      2: PrintOtdel;
      3: if not AddZapis then WriteLn('Error');
      4: if not SaveToFile then WriteLn('Error');
      5: Poisk;
    end;
  Until Nomer=6;
  WriteLn('Press [Enter] to exit');
  ReadLn;
end.


unit DataBase;
тут код модуля и остальная прога

Последний раз редактировалось SnowFall; 12.05.2009 в 01:44.
SnowFall вне форума Ответить с цитированием
Старый 12.05.2009, 01:54   #2
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

вроде unit DataBase; должно быть самой первой строчкой.. вообще код больше на паскаль смахивает, а не на обжект паскаль
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 12.05.2009, 02:16   #3
SnowFall
Пользователь
 
Регистрация: 13.03.2009
Сообщений: 13
По умолчанию

Вот код, как тут тогда поменять местами?

Код:
program Project_DB;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  StrUtils,
  DataBase;

Var
  Nomer:Integer;

begin
  n:=0;
  Repeat
    {$I-}
    Repeat
      WriteLn('[1]. Zagruzit');
      WriteLn('[2]. Prosmotret');
      WriteLn('[3]. Dobavit');
      WriteLn('[4]. Sohranit');
      Writeln('[5]. Poisk');
      WriteLn('[6]. Exit');
      ReadLn(Nomer);
    Until (IOResult=0)and(Nomer>=1)and(Nomer<=5);
    {$I+}
    Case nomer of
      1: if not LoadFromFile then WriteLn('Error');
      2: PrintOtdel;
      3: if not AddZapis then WriteLn('Error');
      4: if not SaveToFile then WriteLn('Error');
      5: Poisk;
    end;
  Until Nomer=6;
  WriteLn('Press [Enter] to exit');
  ReadLn;
end.

unit DataBase;
interface

uses StrUtils;

type
  TOtdel=Record
           Fam,Imya,Otch,Gor,Ul,RVo: string[30];
           Dom,Kv,Rgu,ROd,ROb:Integer;
           DRoz,DPr: string[30];
         end;
var
    OtdelList:array[1..1000] of TOtdel;
    N:Integer;

function LoadFromFile:Boolean;
function SaveToFile:Boolean;
function AddZapis:Boolean;
procedure Poisk;
procedure PrintOtdel;

implementation

Procedure PrintOtdel;
var
  i:Integer;
begin
  Writeln(DupeString('-',80));
  Writeln('N':2,'|','god rozdenia':15,'|','FIO sluzashego':15,'|',
  'DataPriziva':12,'|','Gorod':12,'|','Ul':10,'|','Dom':3,'|','Kv':3);
  Writeln(DupeString('-',80));
  for i:=1 to n do
  with otdellist[i] do
  Begin
    Writeln(i:2,'|',DRoz:15,'|',Fam:15,'|',
    DPr:12,'|',Gor:12,'|',Ul:10,'|',Dom:3,'|',Kv:3);
    Writeln(i:2,'|',Rgu:15,'|',Imya:15,'|',
    '':12,'|','':12,'|','':10,'|','':3,'|','':3);
    Writeln(i:2,'|',ROd:15,'|',Otch:15,'|',
    '':12,'|','':12,'|','':10,'|','':3,'|','':3);
  end;
  WriteLn(DupeString('-',80));
end;

function LoadFromFile:Boolean; 
var
  f:file of Totdel;
begin
  Result := False;
  n:=0;
              begin
                AssignFile(f,'stat.dat');
                Reset(f);
                while not eof(f) do
                  begin
                    Inc(n);
                    Read(f,OtdelList[n]);
                  end;
                CloseFile(f);
                Result := True;
              end;
end;

function SaveToFile:Boolean;
var
  f:file of TOtdel;
  i:Integer;
begin
  AssignFile(f,'stat.dat');
  {$I-}
  Rewrite(f);
  Result:=IOResult=0;
  {$I+}
  if Result then
    begin
      i:=1;
      while(i<=N) do
      begin
        write(f,OtdelList[i]);
        Inc(i);
      end;
      CloseFile(f);
    end;
end;

function AddZapis:Boolean;
var
  Zapis:TOtdel;
  Key:Char;
  t:string;
begin
  Result:=False;
//  N:=N+1;
  Writeln('dlya dobavleniya zapisi nazhmite [S]');
  Writeln('dlya prodolzheniya nazhmite lubuu klavishu');
  Readln(Key);
  Result:=UpCase(Key)='S';
  if Result
    then begin
           {$I-}
           Repeat
             Writeln('familiya: ');
             Readln(Zapis.Fam);
           Until(IOResult=0) and (zapis.Fam<>'');
           Repeat
             Writeln('imya: ');
             Readln(Zapis.Imya);
           Until(IOResult=0) and (zapis.Imya<>'');
           Repeat
             Writeln('otchestvo: ');
             Readln(Zapis.Otch);
           Until(IOResult=0) and (zapis.Otch<>'');

           Repeat
             Writeln('data rozdenia: ');
             Readln(Zapis.DRoz);
           Until(IOResult=0);
           Repeat
             Writeln('data priziva: ');
             Readln(Zapis.DPr);
           Until(IOResult=0);

           Repeat
             Writeln('Gorod: ');
             Readln(Zapis.Gor);
           Until(IOResult=0) and (zapis.Gor<>'');
           Repeat
             Writeln('ulica: ');
             Readln(Zapis.ul);
           Until(IOResult=0) and (zapis.Ul<>'');
           Repeat
             Writeln('nomer doma: ');
             Readln(Zapis.Dom);
          Until(IOResult=0);
           Repeat
             Writeln('kvartira: ');
             Readln(Zapis.kv);
           Until(IOResult=0);
           Repeat
             Writeln('Razmer golovnogo ubora: ');
             Readln(Zapis.Rgu);
           Until(IOResult=0);
           Repeat
             Writeln('Razmer odezdi: ');
             Readln(Zapis.ROd);
           Until(IOResult=0);
SnowFall вне форума Ответить с цитированием
Старый 12.05.2009, 02:16   #4
SnowFall
Пользователь
 
Регистрация: 13.03.2009
Сообщений: 13
По умолчанию

Код:
Repeat
             Writeln('Razmer obuvi: ');
             Readln(Zapis.ROb);
           Until(IOResult=0);
           Repeat
             Writeln('rod voysk: ');
             Readln(Zapis.RVo);
           Until(IOResult=0) and (zapis.RVo<>'');
           {$I+}
           inc(n);
           OtdelList[n]:=Zapis;
         end;
end;

procedure WriteRec(Rec: TOtdel; n: integer);
begin
  Writeln;
  Writeln('Resulatati poiska');
  Writeln('Nomer zapisi:   ', n);
  WriteLn('Imya:           ', Rec.Imya);
  WriteLn('Familia:        ', Rec.Fam);
  WriteLn('Otchestvo:      ', Rec.Otch);
  WriteLn('Data rojdenia:  ', Rec.DRoz);
  Writeln('God proziva:    ', Rec.DPr);
  Writeln('Gorod:          ', Rec.Gor);
  WriteLn('Ulica:          ', Rec.Ul);
  Writeln('Nomer doma:     ', Rec.Dom);
  WriteLn('Razmer golovi:  ', Rec.Rgu);
  WriteLn('Razmer obuvi:   ', Rec.ROb);
  WriteLn('Razmer odejdi:  ', Rec.ROd);
  Writeln('Rod voisk:      ', Rec.RVo);
  Writeln('________________________________________');

end;

procedure Poisk;
var
  f:file of TOtdel;
  rec : TOtdel;
  Slovo : string;
  Chislo, kol, kol_naidennich, nomer: Integer;
  mSearch : array[1..1000] of TOtdel;
begin
  Writeln('Viberite pole dla poiska: ');
  WriteLn('[1]. Imya');
  WriteLn('[2]. Familia');
  WriteLn('[3]. Otchestvo');
  WriteLn('[4]. Data rojdenia');
  Writeln('[5]. God proziva');
  Writeln('[6]. Gorod');
  WriteLn('[7]. Ulica');
  Writeln('[8]. Nomer doma');
  WriteLn('[9]. Razmer golovnogo ubora');
  WriteLn('[10]. Razmer obuvi');
  WriteLn('[11]. Razmer odejdi');
  Writeln('[12]. Rod voisk');
  Readln(nomer);
  Writeln('Vvedite slovo dla poiska');
  if (nomer>7)and(nomer < 12) then
  Readln(Chislo)
  else if nomer < 13 then readln(Slovo);
  if nomer >12  then begin Writeln('Ошибка ввода');exit; end;
  AssignFile(f, 'stat.dat');
  Reset(f);
  kol := 0;
  kol_naidennich := 0;
  while not (eof (f)) do
  begin
    Read(f, rec);
    inc(kol);
SnowFall вне форума Ответить с цитированием
Старый 12.05.2009, 02:17   #5
SnowFall
Пользователь
 
Регистрация: 13.03.2009
Сообщений: 13
По умолчанию

Код:
case nomer of
      1: if rec.Imya = Slovo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      2: if rec.Fam = Slovo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      3: if rec.Otch = Slovo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      4: if rec.DRoz = Slovo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      5: if rec.DPr = Slovo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      6: if rec.Gor = Slovo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      7: if rec.Ul = Slovo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      8: if rec.Dom = Chislo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      9: if rec.Rgu = Chislo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      10: if rec.ROb = Chislo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      11: if rec.ROd = Chislo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      12: if rec.RVo = Slovo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
    end;
  end;

  WriteLn('Kol-vo naidennich: ', kol_naidennich);
  writeln;
end;
end.

             Writeln('nomer doma: ');
             Readln(Zapis.Dom);
           Until(IOResult=0);
           Repeat
             Writeln('kvartira: ');
             Readln(Zapis.kv);
           Until(IOResult=0);
           Repeat
             Writeln('Razmer golovnogo ubora: ');
             Readln(Zapis.Rgu);
           Until(IOResult=0);
           Repeat
             Writeln('Razmer odezdi: ');
             Readln(Zapis.ROd);
           Until(IOResult=0);
           Repeat
             Writeln('Razmer obuvi: ');
             Readln(Zapis.ROb);
           Until(IOResult=0);
           Repeat
             Writeln('rod voysk: ');
             Readln(Zapis.RVo);
           Until(IOResult=0) and (zapis.RVo<>'');
           {$I+}
           inc(n);
           OtdelList[n]:=Zapis;
         end;
end;

procedure WriteRec(Rec: TOtdel; n: integer);
begin
  Writeln;
  Writeln('Resulatati poiska');
  Writeln('Nomer zapisi:   ', n);
  WriteLn('Imya:           ', Rec.Imya);
  WriteLn('Familia:        ', Rec.Fam);
  WriteLn('Otchestvo:      ', Rec.Otch);
  WriteLn('Data rojdenia:  ', Rec.DRoz);
  Writeln('God proziva:    ', Rec.DPr);
  Writeln('Gorod:          ', Rec.Gor);
  WriteLn('Ulica:          ', Rec.Ul);
  Writeln('Nomer doma:     ', Rec.Dom);
  WriteLn('Razmer golovi:  ', Rec.Rgu);
  WriteLn('Razmer obuvi:   ', Rec.ROb);
  WriteLn('Razmer odejdi:  ', Rec.ROd);
  Writeln('Rod voisk:      ', Rec.RVo);
  Writeln('________________________________________');
end;

procedure Poisk;
var
  f:file of TOtdel;
  rec : TOtdel;
  Slovo : string;
  Chislo, kol, kol_naidennich, nomer: Integer;
  mSearch : array[1..1000] of TOtdel;
begin
  Writeln('Viberite pole dla poiska: ');
  WriteLn('[1]. Imya');
  WriteLn('[2]. Familia');
  WriteLn('[3]. Otchestvo');
  WriteLn('[4]. Data rojdenia');
  Writeln('[5]. God proziva');
  Writeln('[6]. Gorod');
  WriteLn('[7]. Ulica');
  Writeln('[8]. Nomer doma');
  WriteLn('[9]. Razmer golovnogo ubora');
  WriteLn('[10]. Razmer obuvi');
  WriteLn('[11]. Razmer odejdi');
  Writeln('[12]. Rod voisk');
  Readln(nomer);
  Writeln('Vvedite slovo dla poiska');
  if (nomer>7)and(nomer < 12) then
  Readln(Chislo)
  else if nomer < 13 then readln(Slovo);
  if nomer >12  then begin Writeln('Ошибка ввода');exit; end;
  AssignFile(f, 'stat.dat');
  Reset(f);
  kol := 0;
  kol_naidennich := 0;
  while not (eof (f)) do
  begin
    Read(f, rec);
    inc(kol);
    case nomer of
      1: if rec.Imya = Slovo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      2: if rec.Fam = Slovo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      3: if rec.Otch = Slovo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      4: if rec.DRoz = Slovo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      5: if rec.DPr = Slovo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      6: if rec.Gor = Slovo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      7: if rec.Ul = Slovo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      8: if rec.Dom = Chislo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      9: if rec.Rgu = Chislo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      10: if rec.ROb = Chislo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      11: if rec.ROd = Chislo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
      12: if rec.RVo = Slovo then begin WriteRec(Rec, kol); inc(kol_naidennich); end;
    end;
  end;
  WriteLn('Kol-vo naidennich: ', kol_naidennich);
  writeln;
end;
end.
SnowFall вне форума Ответить с цитированием
Старый 12.05.2009, 02:20   #6
qpokyc
Форумчанин
 
Аватар для qpokyc
 
Регистрация: 07.04.2009
Сообщений: 117
По умолчанию

Эхь... А чо пишет-то, когда подчеркивает? (в смысле внизу)
Случайно, не это:
Цитата:
[Fatal Error] DataBase.pas(7): File not found: 'DataBase.dcu'
В таком случае, надо написать так:
Код:
program Project_DB;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  StrUtils,
  DataBase in '<путь к исходнику, т.е. к DataBase.pas>';
...
Дальше все как и было..
Поясняю: модуля DataBase нет среди стандартных модулей, значит либо он должен существовать в откомплированном виде (*.dcu), либо нужно указать путь к его исходнику, тогда он будет компилироваться вместе с программой (как здесь).

PS: В дельфях есть кнопка на панели инструментов "Добавить к проекту" (Add file to project). Нажмите ее и выберите файл, а дальше все автоматом пропишется.
Copyright © qpokyc (qpy[the dog]bk.ru), 2008-2009 г.

Последний раз редактировалось qpokyc; 12.05.2009 в 02:36.
qpokyc вне форума Ответить с цитированием
Старый 12.05.2009, 02:34   #7
SnowFall
Пользователь
 
Регистрация: 13.03.2009
Сообщений: 13
По умолчанию

ок. спасибо
SnowFall вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать и подключить датчик к ПК с помощью DELPHI ? Sergey13666 Общие вопросы Delphi 11 06.05.2009 10:21
Как подключить к проекту модуль ras.pas Михаил Юрьевич Общие вопросы Delphi 3 14.03.2009 15:45
delphi for php как подключить curl OkeaH PHP 5 03.02.2009 01:48
как подключить новый модуль без формы к проекту?? Yala Общие вопросы Delphi 1 04.05.2008 08:01
Unable to open unclude file 'Stdio.h' Как правильно его подключить? Exclusive Помощь студентам 6 28.01.2008 17:24