Вот взял с этого сайта прогу: база данных оверклокеров на Borland Pascal 7!
дык почему то когда создаешь базу ее можно только редоктировать исправлять и т.д, но саму таблицу посматреть нельзя!! и еще нужно подключить к ней курсор и вместо выбора цыфрами что делать с базой данных нужно сделать кнопки, на которые можно было нажимать курсором!!!
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 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);
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 писал(а):
дык почему то там не показываеца сама база данных! и еще нужно подключить к ней курсор и вместо выбора цыфрами что делать базой данных были кнопки, на которые можно было нажимать курсором!!!
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения