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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2009, 01:08   #1
EThread
 
Регистрация: 05.10.2008
Сообщений: 9
По умолчанию Поиск в записи (во встроенном асме Delphi)

Есть тип запись. Мне нужно составить программу, выдающую информацию следующего вида:
- список всей мебели хххх года выпуска,
- общая стоимость мебели, указанной фирмы-изготовителя;

Затрудняюсь это реализовать на асме..

Вот мои труды:
Код:
type
  Tzap = record
    _firma,
    _name,
    _type,
    _year,
    _nameC: array [0..9] of string;
  end;


var
  zap: Tzap;
  j, n: byte;
  s1, s2: string;  

procedure TForm1.FormCreate(Sender: TObject);
begin
  StringGrid1.Cells[0, 0]:= 'Фирма-изготовитель';
  StringGrid1.Cells[1, 0]:= 'Наименование';
  StringGrid1.Cells[2, 0]:= 'Тип мебели';
  StringGrid1.Cells[3, 0]:= 'Год выпуска';
  StringGrid1.Cells[4, 0]:= 'Цена';
end;

procedure search; Assembler;
  asm
      cld               //сканируем в прямом направлении
                mov   cx, 10               //10 строк 
                lea   bx, s1                 // начиная с 1го элемента s1
                lea   di, zap                // и с 1го элемента zap
         
             
              repe   cmpsw             ;сравниваем их.


  end;


procedure TForm1.Button1Click(Sender: TObject);
 var s1, s2: string;
 begin
   Memo1.Clear;
   Memo2.Clear;
   s1:= Edit1.Text;
   for j:=1 to 10 do
                begin
                 zap._firma[j]:=StringGrid1.Cells[0,j];
                 zap._name[j]:=StringGrid1.Cells[1,j];
                 zap._type[j]:=StringGrid1.Cells[2,j];
                 zap._type[j]:=StringGrid1.Cells[3,j];
                 zap._nameC[j]:=StringGrid1.Cells[4,j];
                end;
    
  //как-то нужно вывести списки записей ещё...

В общем не соображу, как сравнить с введённым словом все записи определённого поля, а потом вывести их... Если кто может, помогите пожалста.
EThread вне форума Ответить с цитированием
Старый 06.05.2009, 10:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

НАсчет сравнения строк то, насколько я помню так:
Код:
var s1,s2:string;
begin
s1:='123456';
s2:='123456';
asm
 mov ecx,6
 mov esi, [s1];
 mov edi, [s2];
 repe cmpsb
end;
end;
Правда я забыл какой флаг нужно проверять по окончании...
I'm learning to live...

Последний раз редактировалось Stilet; 06.05.2009 в 10:07.
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск единственной записи через locate ИВэТэшка Помощь студентам 3 10.04.2009 15:21
Не работает программа на встроенном видео shumsheec Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 26.03.2009 22:04
Поиск последней записи в определенной строке Maxx Microsoft Office Excel 5 04.03.2009 14:01
Функция на встроенном ассемблере Bezumie Помощь студентам 2 21.12.2008 21:42
Как осуществить поиск сначала по всей БД, а затем из найденных таблиц найти по полю Date нужные записи? kayman БД в Delphi 1 21.09.2007 15:56