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




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 7 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Вот взял с этого сайта прогу: база данных оверклокеров на Borland Pascal 7!
дык почему то когда создаешь базу ее можно только редоктировать исправлять и т.д, но саму таблицу посматреть нельзя!! и еще нужно подключить к ней курсор и вместо выбора цыфрами что делать с базой данных нужно сделать кнопки, на которые можно было нажимать курсором!!!
Код:
uses crt;
const
  DefoultUsersCount = 200;
  CPUVendorsCount = 2;
  CPUModelsCount = 5;
  CurrentFileName = 'OverBase.odb';
type
  TUser = record
    CPUVendor : byte; {(Authletic_AMD,Intel);}
    CPUModel : byte; {(Pentium_4,Celeron,Athlon_XP,Sempron,Athlon_64);}
    StockFreq, OverclockFreq  : WORD;
    VideoCard : string[20];
    Cooling : string[40];
    VCore : real;
    MaxTemp : integer;
  end;

var
  UsersCount: word;
  Users, FoundUsers : array [1..DefoultUsersCount] of TUser;
  CPUVendors: array [1..CPUVendorsCount] of string[25];
  CPUModels: array [1..CPUModelsCount] of string[25];

procedure FillVenModels;
begin
  CPUVendors[1] := 'Advanced Micro Device AMD';
  CPUVendors[2] := 'Intel';

  CPUModels[1] := 'Sempron';
  CPUModels[2] := 'Athlon XP';
  CPUModels[3] := 'Athlon 64';
  CPUModels[4] := 'Celeron';
  CPUModels[5] := 'Pentium 4';
end;

procedure OutHead;
begin
   {  writeln('╔═╦ ╗');
  { ╣ ╚ ═ ║  }
end;

procedure OutPutUserInfo(Index : word);
begin
  with Users[index] do
  begin
    writeln('CPUVendor ',CPUVendors[CPUVendor]);
    writeln('CPUModel ',CPUModels[CPUModel]);
    writeln('StockFreq ',StockFreq);
    writeln('OverclockFreq ',OverclockFreq);
    writeln('VideoCard ',VideoCard);
    writeln('Cooling ',Cooling);
    writeln('VCore ',VCore:3:2);
    writeln('MaxTemp ',MaxTemp);
  end;
end;

function FileExists(FileName: String): Boolean;
var
  F: file;
begin
  {$I-}
  Assign(F, FileName);
  Reset(F);
  Close(F);
  {$I+}
  FileExists := (IOResult = 0) and (FileName <> '');
end;

function LoadBase(DBFileName : string): boolean;
var
  OverBase: file of TUser;
  i: word;
begin
  DBFileName:=CurrentFileName;
  if not FileExists(DBFileName) then
  begin
    LoadBase := false;
    Exit;
  end;
  UsersCount := 0;
  Assign(OverBase, DBFileName);
  Reset(OverBase);
  while not eof(OverBase) do
  begin
    inc(UsersCount);
    read(OverBase,Users[UsersCount]);
  end;
  LoadBase := true;
end;

function SaveBase(DBFileName : string): boolean;
var
  OverBase: file of TUser;
  i: word;
begin
  DBFileName:=CurrentFileName;
  Assign(OverBase, DBFileName);
  Rewrite(OverBase);
  for i:=1 to UsersCount do
  begin
    write(OverBase,Users[i]);
  end;
end;

procedure EditUserInfo( const i : word ; Mode : byte { (1 - Creating, 2 - Editing)});
var
  j, index: integer;
begin


    clrscr;
    writeln('Фирма-производитель процессора');
    writeln;
    for j:=1 to CPUVendorsCount do
      writeln(j,'. ',CPUVendors[j]);
    writeln;
    write('Ваш выбор : ');

    if mode=2 then
    begin
      writeln(Users[i].CPUVendor);
      writeln('ПРОБЕЛ - следующее поле, ВВОД (or any key) - редактировать');
      if not (readkey = #32) then
         readln(Users[i].CPUVendor);
    end
    else
    begin
      repeat
        readln(index);
        if not ((index=1) or (index=2)) then write('Введите 1 или 2');
      until (index=1) or (index=2);
      Users[i].CPUVendor := index;
    end;

    clrscr;
    writeln('Модель процессора:');
    writeln;
    for j:=1 to CPUModelsCount do
      writeln(j,'. ',CPUModels[j]);

    writeln;
    write('Ваш выбор : ');
    if mode=2 then
    begin
      writeln(Users[i].CPUModel);
      writeln('ПРОБЕЛ - следующее поле, ВВОД (or any key) - редактировать');
      if not (readkey = #32) then
         readln(Users[i].CPUModel);
    end
    else
    begin
      repeat
        readln(index);
        if not ((index>=1) or (index<=CPUModelsCount)) then write('Введите 1 или 2');
      until (index>=1) or (index<=CPUModelsCount);
      Users[i].CPUModel := index;
    end;

    clrscr;
    if mode=2 then
    begin
      writeln('штатнуая частота процессора : ',Users[i].StockFreq);
      writeln('ПРОБЕЛ - следующее поле, ВВОД (or any key) - редактировать');
      if not (readkey = #32) then
         readln(Users[i].StockFreq);
    end
    else
    begin
      write('Введите штатную частоту процессора : ');
      readln(Users[i].StockFreq);
    end;

    clrscr;
    if mode=2 then
    begin
      writeln('частота разогнанного процессора : ',Users[i].OverclockFreq);
      writeln('ПРОБЕЛ - следующее поле, ВВОД (or any key) - редактировать');
      if not (readkey = #32) then
         readln(Users[i].OverclockFreq);
    end
    else
    begin
      write('Введите частоту разогнанного процессора : ');
      readln(Users[i].OverclockFreq);
    end;

    clrscr;
    if mode=2 then
    begin
      writeln('Видеокарта ',Users[i].VideoCard);
      writeln('ПРОБЕЛ - следующее поле, ВВОД (or any key) - редактировать');
      if not (readkey = #32) then
         readln(Users[i].VideoCard);
    end
    else
    begin
      write('Введите информацию о видеокарте : ');
      readln(Users[i].VideoCard);
    end;



    clrscr;
    if mode=2 then
    begin
      writeln('CO : ',Users[i].Cooling);
      writeln('ПРОБЕЛ - следующее поле, ВВОД (or any key) - редактировать');
      if not (readkey = #32) then
         readln(Users[i].Cooling);
    end
    else
    begin
      write('Введите сведения о системе охлаждения : ');
      readln(Users[i].Cooling);
    end;

   
    clrscr;
    if mode=2 then
    begin
      writeln('VCore : ',Users[i].VCore);
      writeln('ПРОБЕЛ - следующее поле, ВВОД (or any key) - редактировать');
      if not (readkey = #32) then
         readln(Users[i].VCore);
    end
    else
    begin
      write('Введите напряжение ядра процессора : ');
      readln(Users[i].VCore);
    end;

    clrscr;
    if mode=2 then
    begin
      writeln('MaxTemp : ',Users[i].MaxTemp);
      writeln('ПРОБЕЛ - следующее поле, ВВОД (or any key) - редактировать');
      if not (readkey = #32) then
         readln(Users[i].MaxTemp);
    end
    else
    begin
      write('Введите максимальную температуру ядра процессора : ');
      readln(Users[i].MaxTemp);
    end;
    clrscr;

    SaveBase(CurrentFileName);

end;

function CreateDB: boolean;
var
  i, index, j : word;
  DBName : string;
begin
  clrscr;
  write('Введите количество пользователей в базе: ');
  readln(UsersCount);

  for i:=1 to UsersCount do
  begin
    EditUserInfo(i, 1);
  end;

  SaveBase(CurrentFileName);

end;

procedure EditBase;
var
  index : word;
begin
  clrscr;
  writeln('Номер пользователя в базе : ');
  readln(index);
  EditUserInfo(index, 2);
  SaveBase(CurrentFileName);
end;

procedure FindInBase;
var
  index, j : byte;
  n, found : word;
  s : string;
begin
  repeat
    clrscr;
    found := 0;
    writeln('1. Поиск по производителю процессора');
    writeln('2. Поиск по модели процессора');
    writeln('3. Поиск по штатной частоте процессора');
    writeln('4. Поиск по частоте разогнанного процессора');
    writeln('5. Поиск по системе охлаждения');
    writeln('0. ВЫХОД');
    writeln;
    write('Ваш выбор : ');
    readln(index);

    clrscr;

    if ((index >= 1) and (index <= 5)) then
    begin

      case index of
        1: begin
             writeln('Фирма-производитель процессора');
             writeln;
             for j:=1 to CPUVendorsCount do
                writeln(j,'. ',CPUVendors[j]);
             writeln;
             write('Ваш выбор : ');
             readln(n);
             if (n>=1) and (n<=CPUVendorsCount) then
             begin
               clrscr;
               for j:=1 to UsersCount do
               begin

                 if Users[j].CPUVendor = n then
                 begin
                   OutPutUserInfo(j);
                   inc(found);

                   write('Следующая страница - любая клавиша.');
                   readkey;
                   clrscr;
                 end;
               end;

             end;
             if found = 0 then
               writeln('По вашему запросу ничего не найдено. Нажмите любую клавишу для продолжения');
             readln;
           end;

        2: begin
             writeln('Модель процессора');
             writeln;
             for j:=1 to CPUModelsCount do
               writeln(j,'. ',CPUModels[j]);

             writeln;
             write('Ваш выбор : ');
             readln(n);
             if (n>=1) and (n<=CPUModelsCount) then
             begin
               clrscr;
               for j:=1 to UsersCount do
               begin

                 if Users[j].CPUModel = n then
                 begin
                   OutPutUserInfo(j);
                   inc(found);


                   write('Следующая страница - любая клавиша.');
                   readkey;
                   clrscr;
                 end;

               end;
             end;
             if found = 0 then
               writeln('По вашему запросу ничего не найдено. Нажмите любую клавишу для продолжения');
             readln;
           end;

        3: begin
             writeln('Штатная частота процессора : ');
             readln(n);
             clrscr;
             for j:=1 to UsersCount do
             begin

               if Users[j].StockFreq = n then
               begin
                  OutPutUserInfo(j);
                  inc(found);


                 write('Следующая страница - любая клавиша.');
                 readkey;
                 clrscr;
               end;

             end;
             if found = 0 then
               writeln('По вашему запросу ничего не найдено. Нажмите любую клавишу для продолжения');
             readln;
           end;

        4: begin
             writeln('Частота разогнанного процессора : ');
             readln(n);
             clrscr;
             for j:=1 to UsersCount do
             begin


               if Users[j].OverclockFreq = n then
               begin
                  OutPutUserInfo(j);
                  inc(found);

                 write('Следующая страница - любая клавиша.');
                 readkey;
                 clrscr;
               end;

             end;
             if found = 0 then
               writeln('По вашему запросу ничего не найдено. Нажмите любую клавишу для продолжения');
             readln;
           end;

        5: begin
             writeln('Система охлаждения : ');
             readln(s);
             clrscr;
             for j:=1 to UsersCount do
             begin

               if Pos(s,Users[j].Cooling)<>0 then
               begin
                  OutPutUserInfo(j);

                 write('Следующая страница - любая клавиша.');
                 readkey;
                 clrscr;
               end;

             end;
             if found = 0 then
               writeln('По вашему запросу ничего не найдено. Нажмите любую клавишу для продолжения');
             readln;
           end;
      end;
    end;
  until index = 0;
end;

procedure AddUser2Base;
begin
  clrscr;
  inc(UsersCount);
  EditUserInfo(UsersCount , 1);
  SaveBase(CurrentFileName);
end;

procedure DeleteBase;
var
  i: word;
begin
  clrscr;
  writeln('Вы действительно хотите безвозвратно удалить базу ?');
  for i:=1 to UsersCount do
    with Users[i] do
    begin
          CPUVendor:=0;
          CPUModel:=0;
          StockFreq:=0;
          OverclockFreq:=0;
          VideoCard:='';
          Cooling:='';
          Vcore:=0;
          MaxTemp:=0;
    end;
  UsersCount:=0;
  SaveBase(CurrentFileName);
end;

procedure Main;
var
  index : byte;
begin
  repeat
    clrscr;
    writeln('1. Создать базу');
    writeln('2. Дополнить базу');
    writeln('3. Редактировать базу');
    writeln('4. Поиск');
    writeln('5. Удалить базу');
    writeln('0. Выход');
    writeln;
    write('Ваш выбор : ');
    read(index);

    case index of
      1: CreateDB;
      2: AddUser2Base;
      3: EditBase;
      4: FindInBase;
      5: DeleteBase;
    end;

  until index = 0;

end;

begin
  FillVenModels;
  LoadBase(CurrentFileName);
  Main;
end.

помогите плиз)) зарание спасибо!


Последний раз редактировалось ApxAngeL 27.05.2008 12:25, всего редактировалось 2 раз(а).


Партнер
 

Member
Статус: Не в сети
Регистрация: 21.01.2004
Откуда: ядерная помойка
ApxAngeL писал(а):
дык почему то там не показываеца сама база данных! и еще нужно подключить к ней курсор и вместо выбора цыфрами что делать базой данных были кнопки, на которые можно было нажимать курсором!!!

можно ещё раз и по-русски?

_________________
memento mori


 

исправил! не знаю понятно или нет!


 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 10.05.2007
Откуда: УКРАИНА
ApxAngeL
по ходу под дос-консоль написана...
Добавлено спустя 1 минуту, 21 секунду
Код:
writeln('1. Создать базу');
    writeln('2. Дополнить базу');
    writeln('3. Редактировать базу');
    writeln('4. Поиск');
    writeln('5. Удалить базу');
    writeln('0. Выход');

наверное режима вывода всей информации не предесматривалось

_________________
Дождь не может быть вечным. Ворон.
Ненавижу админов!!!


 

Цитата:
наверное режима вывода всей информации не предесматривалось

А мне нужно))
Добавлено спустя 1 час, 52 минуты, 37 секунд
сможет кто нить помочь?


 

Member
Статус: Не в сети
Регистрация: 21.01.2004
Откуда: ядерная помойка
ApxAngeL писал(а):
сможет кто нить помочь?

что? переделать всю программу?

_________________
memento mori


 

ага)


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 7 
-

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


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

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


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

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