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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2014, 03:01   #1
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию Проблема с поиском,удалением и редактированием

Снова доброго времени суток!
Помнится кидал тут программку,неработающую,так вот заработала
НО проблема с удалением,поиском товара по названию,редактированием и выбором товара по цене.
Даже если такой товар существует и цена существует,то она пишет Товар не найдет или Список Пуст.

Выкладываю свои коды,в которых как мне кажется(я не могу найти) закралась ошибка.

Вся программа прикреплена архивом.
Реализую на языке Turbo Pascal 7.0(School Edition)


Код:
procedure Del(var beg, fin, p: pTovar);
begin
   if (p = beg) and (p = fin) then
   begin
      beg := nil;
      fin := nil;
   end
   else
   if p = beg then begin
      beg := beg^.next;
      beg^.prev := nil
   end
   else
   if p = fin then begin
      fin := fin^.prev;
      fin^.next := nil;
   end
   else
   begin
      p^.prev^.next := p^.next;
      p^.next^.prev := p^.prev;
   end;
   dispose(p);
end;
 
procedure edit(beg: pTovar; const tovr: Tovar);
var
   p: pTovar;
begin
   p := Find(beg, tovr.name);
   if p <> nil then begin
      p^.kolvo := tovr.kolvo;
      p^.cena := tovr.cena;
   end;
end;


function Find(p: pTovar; const tovr:str_name): pTovar;
begin
   while p <> nil do
   begin
      if name = p^.name then
      begin
         Find := p;
         exit;
      end;
      p := p^.next;
   end;
   Message('Tovar ne naiden');
   Find := nil;
end;
Вложения
Тип файла: rar KRSV-1~1.rar (2.2 Кб, 6 просмотров)
Otar4ik вне форума Ответить с цитированием
Старый 25.05.2014, 08:16   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
function Find(p: pTovar; const tovr:str_name): pTovar;
begin
...
      if name = p^.name then
Вы в функцию поиска передаёте товар, который нужно найти. Так?
Это второй параметер функции: tovr:str_name, так?
Ну и где Вы внутри функции его используете?!!
Надо же сравнивать с этим переданным товаром!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.05.2014, 14:38   #3
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию

Спасибо за совет и подсказку,но всё равно знаете ни в какую не ищет.

Сначала я сделал так:
Код:
if tovr=p^.name then
программа компилируется,но не ищет опять же.

А потом решил поэкспериментировать
Код:
if tovr=p^.name then
if name=p^.str_name then
if name=p^.tovr then
у всех трёх одинаковые ошибки - Предполагается идентификатор поля.
Otar4ik вне форума Ответить с цитированием
Старый 01.06.2014, 19:47   #4
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию

Я уже просто все варианты перепробовал,ничего не получается,что надо сменить-то,все переменные перепробовал результат такой же-пишет Товар не найден.
Otar4ik вне форума Ответить с цитированием
Старый 02.06.2014, 19:12   #5
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию

Тему можете закрывать всё отдалил)))
Otar4ik вне форума Ответить с цитированием
Старый 02.06.2014, 21:17   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Otar4ik Посмотреть сообщение
Тему можете закрывать всё отдалил)))
"отдалил" это в смысле - "отладил"?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.06.2014, 21:39   #7
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Должно быть, отдалил от себя зачет
Приблизив к себе военкома
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
большая проблема с редактированием dbgrid undead92 БД в Delphi 4 09.07.2013 17:35
Проблема с удалением файла Dimarik Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 25.06.2011 20:15
проблема с удалением массива в vc++ scripto Общие вопросы C/C++ 9 13.12.2010 21:48
Проблема с редактированием записи таблицы. p.majorov БД в Delphi 4 15.11.2010 13:25
Проблема с удалением файлов. Dj_smart Общие вопросы Delphi 4 22.03.2008 12:32