//size of record = 100 b //size of blonck = 4 kb struct record{ char name [26] ; char family[30] ; char stu_no [20] ; char mobil [20] ; record * pnext ; }; record search ( record pdata ) { char item [30]; char x ; fstream file ; file.open ( "file2.dat" ) ; int med ; int low = 0 ; //counterb is number of blonck int hight = counterb - 1 ; while ( low <=hight ) { med = ( low + hight )/2 ; file.seekp (4096*med , ios::beg ) ; for ( int i = 0 ; i < 30 ; i++ ) { file.read ( &x , 1 ) ; item[i] = x ; } for ( int i = 0 ; i < 30 ; i++ ) { int y = strcmp ( item , pdata.family ) ; if ( y == 0 ) { file >> pdata.family >> pdata .name >> pdata .mobil >> pdata .stu_no ; return pdata ; } if ( y < 0 ) { file.seekp (-4096 , ios::beg ) ; for ( int i = 0 ; i < 30 ; i++ ) { file.read ( &x , 1 ) ; item[i] = x ; } y = strcmp ( item , pdata.family ) ; med = (low + med -1)/2 ; } if ( y > 0 ) { file.seekp (counterr*100 , ios::beg ) ; for ( int i = 0 ; i < 30 ; i++ ) { file.read ( &x , 1 ) ; item[i] = x ; } y = strcmp ( item , pdata.family ) ; med = (hight + med +1)/2 ; } } } }
family
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)