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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2012, 17:43   #1
evklid
Пользователь
 
Регистрация: 29.09.2010
Сообщений: 57
По умолчанию Поиск фамилии по первой букве

Здравтвуйте. У меня программа на visual c++ mfc
значит там есть поиск по фамилиям. дело в том что он ищет только если фамилия введена полностью.
Исправте пожалуйста чтобы искал по первой букве все студентов с этой самой первой буквой
Код:
   selected=1;
	 if (f1=fopen("Student.dat","r"))
	 {
      while (fread(&st,sizeof(st),1,f1))
	  {
		  fam=m_Pole;
		  if (fam==st.fam) found++;
	  };
	  fclose(f1);
	 };
     if (found!=0)
	 {
		 m_StudList.ResetContent();
		 j=0;
		 if (f1=fopen("Student.dat","r"))
		 {
          while (fread(&st,sizeof(st),1,f1))
		  {
		   if (fam==st.fam)
		   {
               nazv="";
 		       nazv=nazv+st.fam+' '; 
			   nazv=nazv+st.imya[0]+". ";
			   nazv=nazv+st.otch[0]+'.';
  			   m_StudList.AddString(nazv); 
		   };
		   j++;
		  };
	      fclose(f1);
		 };
	 }
	 else
	 {
		 MessageBox("Ничего не найдено","Ошибка",MB_OK);
	 };

Последний раз редактировалось Stilet; 01.06.2012 в 18:57.
evklid вне форума Ответить с цитированием
Старый 01.06.2012, 17:48   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
по первой букве все
эм...
Код:
if (fam[0]==st.fam[0])
не?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 01.06.2012, 18:16   #3
evklid
Пользователь
 
Регистрация: 29.09.2010
Сообщений: 57
По умолчанию

Все работает! спасиб0

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
эм...
Код:
if (fam[0]==st.fam[0])
не?
скажите вот сравнивает первый символ и выводит результаты фамилий с такой первой буквой.
А как сделать так чтобы дальше введя второй символ отсеивались ненужные рез-ты и оставались только у которых совпадают 2 символа. и так до последнего?

сейчас код выглядит так: это поиск по первой букве
PHP код:
 if (f1=fopen("Student.dat","r"))
     {
      while (
fread(&st,sizeof(st),1,f1))
      {
          
fam=m_Pole;
          if (
fam[0]==st.fam[0]) found++;
      };
      
fclose(f1);
     };
     if (
found!=0)
     {
         
m_StudList.ResetContent();
         
j=0;
         if (
f1=fopen("Student.dat","r"))
         {
          while (
fread(&st,sizeof(st),1,f1))
          {
           
//if (fam==st.fam)
              
if (fam[0]==st.fam[0])

           {
               
nazv="";
                
nazv=nazv+st.fam+' '
               
nazv=nazv+st.imya[0]+". ";
               
nazv=nazv+st.otch[0]+'.';
                 
m_StudList.AddString(nazv); 
           };
           
j++;
          };
          
fclose(f1);
         };
     }
     else
     {
         
MessageBox("Ничего не найдено","Ошибка",MB_OK); 

Последний раз редактировалось Stilet; 01.06.2012 в 19:10.
evklid вне форума Ответить с цитированием
Старый 01.06.2012, 19:19   #4
evklid
Пользователь
 
Регистрация: 29.09.2010
Сообщений: 57
По умолчанию

PHP код:
 if (f1=fopen("Student.dat","r"))
     {
      while (
fread(&st,sizeof(st),1,f1))
      {
          
fam=m_Pole;
         
// if (fam[0]==st.fam[0]) found++;
          
for (int i=0;i<длина фамилии ;i++)
          
              while (
fam[i]==st.fam[i]) found++;
          
      };
      
fclose(f1); 
помогите правильно зациклить
evklid вне форума Ответить с цитированием
Старый 01.06.2012, 19:23   #5
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

мб так
Код:
 for (int i=0;i<длина фамилии ;i++) 
           
             if (fam[i]==st.fam[i]) found++;
не?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 01.06.2012, 19:39   #6
evklid
Пользователь
 
Регистрация: 29.09.2010
Сообщений: 57
По умолчанию

а как длину записать strlen(st.fam) ??
evklid вне форума Ответить с цитированием
Старый 01.06.2012, 19:48   #7
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
а как длину записать strlen(st.fam) ??
да можно так
можно ещё вот так
Код:
for (int i=0; s[i]; i++)
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 01.06.2012, 19:57   #8
evklid
Пользователь
 
Регистрация: 29.09.2010
Сообщений: 57
По умолчанию

блин ошибка где-то незнаю где
не ищет вообще
PHP код:
 if (f1=fopen("Student.dat","r"))
     {
      while (
fread(&st,sizeof(st),1,f1))
      {
         
// fam=m_Pole;
          //if (fam[0]==st.fam[0]) found++;

          
for (int i=0;i<strlen(st.fam) ;i++) 
           
             if (
fam[i]==st.fam[i]) found++;


      };
      
fclose(f1);
     };
     if (
found!=0)
     {
         
m_StudList.ResetContent();
         
j=0;
         if (
f1=fopen("Student.dat","r"))
         {
          while (
fread(&st,sizeof(st),1,f1))
          {
           
//if (fam==st.fam)
            //  if (fam[0]==st.fam[0])



             
for (int i=0;i<strlen(st.fam) ;i++) 
           
            if (
fam[i]==st.fam[i]) found++;


           {
               
nazv="";
                
nazv=nazv+st.fam+' '
               
nazv=nazv+st.imya[0]+". ";
               
nazv=nazv+st.otch[0]+'.';
                 
m_StudList.AddString(nazv); 
           };
           
j++;
          };
          
fclose(f1); 
evklid вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск в базе по первой букве chircov090993 БД в Delphi 4 24.05.2012 11:45
Удаление элемента списка по первой букве diaryofsummer Общие вопросы C/C++ 0 10.04.2012 00:51
Поиск фамилии Aleksey1989 БД в Delphi 8 08.06.2011 22:39
Упорядочить слова в столбик по первой букве с++ mr_fomin Помощь студентам 0 14.12.2010 16:45
сортировка по первой букве amator_roma Помощь студентам 2 15.11.2010 11:06