الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

How to check if field in file has an unique value?

بدأه Hanan Sabry في 18 مايو 2010 · 7 رد · 613 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ...

لو سمحتوا يا جماعة انا كان عندي سؤال ...

دلوقتي انا اريد ان اعمل check اثناء ادخال البيانات لملف اذا كانت هذه القيمة قد تم ادخالها قبل ذلك ام لا

يعني مثلا اثناء ادخال ال records للملف ... عندي field اسمه product_ID

اذا قام المستخدم بادخال قيمة ال ID مطابقة لقيمة قبل ذلك ... يظهر البرنامج رسالة خطا ويدخل المستخدم رقم جديد

ارجو ان تكون المشكلة وصلت

وجزاكم الله كل خير

#2

إذا كنت تستخدم قواعد بيانات معينه فهناك دوال استعلام تفي بالغرض

اما اذا كنت تنشئ الجداول بنفسك فيجب عليك قراءة الحقل في الجدول كامل والبحث عن وجود القيمه ام لا .

tvquran_6.gif

#3

انا اقوم بانشاء الملف وهذه المحاولة التي قمت بها ولكنها لا تعمل .. فياريت لو تساعدني اين المشكلة في هذا الكود

"هذا جزء فقط من الكود وليس الكود باكمله للبرنامج"

file1.open("files/Inventory Information.txt" , ios::app|ios::in);
file1.seekp(0, ios::end);
   size_t size = file1.tellg();

//to check if the file is empty
if(size != 0){

         	while(flag==0){

            	flag = 1;
               while(!file1.eof()){

               	file1.getline(s.product_ID,16,'|');

                  if(strcmp(id, s.product_ID)==0){

                  	cout << "This is ID is used before, Please change it ...>>\n";
                     flag=0;
                     cout<<"~*Enter Product_ID : *~ ";
                     cin>> id ;
                     break;
                  }
               }
            }
         }
#4

ربما الطريقة المثلى هي إنشاء ملف باينري وليس نصي.

tvquran_6.gif

#5

جزاك الله كل خير .. بس انا اريده ملف نصي .. لان دا هو المطلوب مننا

ارجو المساعدة من اي شخص . وياريت السؤال لو مكنش واضح .. ممكن اوضحه

انا المفروض بقوم بادخال بيانات في الملف .. واذا تكررت قيمة ال id يقوم البرنامج باخبار المستخدي

دي ميثود ال Insert اللي انا عملتها .. وعايزة ادخل الجزء بتاع ال check unique value فيها

void insert_system(){
	char ch;
   char id[15];
   int flag = 0;
   Inventory_System s;
   fstream file1;

   //open the file to write in it
   file1.open("files/Inventory Information.txt" , ios::app);
   file1.seekp(0, ios::end);
   size_t size = file1.tellg();

   	do{
       	cout<<"~*Enter Product_ID : *~ ";
           cin>> id ;      
         cout<<"\n~*Enter Product_Name : *~ ";
           cin>>s.product_Name ;
         cout<<"\n~*Enter Product_Amount : *~ ";
           cin>>s.product_Amount ;
         cout<<"\n~*Enter Price : *~ ";
           cin>>s.price ;
         cout<<"\n~*Enter Type of Product : *~ ";
           cin>>s.type_of_Product ;
         cout<<"\n~*Enter Shelf Number : *~ ";
           cin>>s.shelf_Number ;

         file1<< endl<<id<<"|"<<s.product_Name<<"|"<<s.product_Amount<<"|"<<s.price
       		<<"|"<<s.type_of_Product<<"|"<<s.shelf_Number;

         cout<<"\n\nDo you want to insert another record?, \n \"if yes press y , if no press any key :  \"?";
           cin>> ch;
         cout<<"\n\n--------------------------------------------------"<<endl;
   	}while(ch=='y'||ch=='Y');

       file1.close();

}
#6

في بداية البرنامج قم بقرائه أرقام السجلات في List ،، وقبل أي عملية ادخال خذ الرقم وابحث في هذه الList ، اذا وجدت الرقم في الList فاخرج مباشره والا فأكتب البيانات في الملف وأضف الرقم للList

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#7
اقتباس
في بداية البرنامج قم بقرائه أرقام السجلات في List ،، وقبل أي عملية ادخال خذ الرقم وابحث في هذه الList ، اذا وجدت الرقم في الList فاخرج مباشره والا فأكتب البيانات في الملف وأضف الرقم للList

+١

#8

جزاكم الله كل خير :)

مواضيع مشابهة