home *** CD-ROM | disk | FTP | other *** search
- #include "iibc.h"
- #include "iibdb.h"
-
- static char emp[] = "Press any key to continue";
-
- int initial_fields(int new_or_old,
- int pages,
- int titles,
- int fields,
- struct fld_info *fld,
- struct ttl_info *ttl,
- int rulh,int culh,int rbrh,int cbrh,
- char *title1)
-
- {
- int i;
-
- for (i = 0; i<= pages; i++)
- {
- _setactivepage(i);
- _settextwindow(1,1,25,80);
- _settextcolor(env.frgrd[0]);
- _setbkcolor(env.bkgrd[0]);
- _clearscreen(_GWINDOW);
- frame(rulh+1,culh,rbrh - rulh - 1,cbrh - culh + 1,env.frgrd[2],env.bkgrd[2]);
- _settextcolor(env.frgrd[0]);
- _setbkcolor(env.bkgrd[0]);
- show_option(rulh,40,title1,'C',env.frgrd[1],env.bkgrd[1]);
- _settextwindow(rbrh,culh,rbrh,cbrh);
- _settextcolor(env.frgrd[5]);
- _setbkcolor(env.bkgrd[5]);
- _clearscreen(_GWINDOW);
- _settextposition(1,1);
- _outtext("/ [PgUp] [PgDn] [Home] [End] [Esc] = Quit [F10] = SAVE INS OFF");
- } /* endfor */
-
- _settextcolor(env.frgrd[4]);
- _setbkcolor(env.bkgrd[4]);
-
- for (i = 0; i <= titles; i++)
- {
- _setactivepage(ttl[i].pg_num);
- _settextwindow(rulh + 2,culh + 1,rbrh - 2,cbrh - 1);
- _settextposition(ttl[i].t_row,ttl[i].t_column);
- _outtext(ttl[i].ttl_title);
- } /* endfor */
-
- _settextcolor(env.frgrd[0]);
- _setbkcolor(env.bkgrd[0]);
-
- for (i = 0; i <= fields; i++)
- {
- if (fld[i].fld_type != 'H')
- {
- _setactivepage(fld[i].pg_num);
- _settextwindow(rulh + 2,culh + 1,rbrh - 2,cbrh - 1);
- _wrapon(_GWRAPON);
- _settextposition(fld[i].t_row,fld[i].t_column);
- _outtext(fld[i].fld_title);
- } /* endif */
- } /* endfor */
-
- _settextcolor(env.frgrd[5]);
- _setbkcolor(env.bkgrd[5]);
-
- if (new_or_old == NEW)
- {
- for (i = 0; i <= fields; i++)
- {
- if (fld[i].fld_type != 'P')
- {
- fld[i].fld_buffer[0] = '\0';
- fld[i].changed = 0;
- fld[i].cur_pos = 0;
- fld[i].input_count = 0;
- }
- else
- {
- fld[i].changed = 0;
- fld[i].input_count = strlen(fld[i].fld_buffer);
- fld[i].cur_pos = strlen(fld[i].fld_buffer);
- } /* endif */
- if (fld[i].fld_type != 'H')
- {
- _setactivepage(fld[i].pg_num);
- _settextwindow(fld[i].row+2,fld[i].column+1,fld[i].row+2,fld[i].column+fld[i].length);
- _clearscreen(_GWINDOW);
- _settextwindow(rulh + 2,culh + 1,rbrh - 2,cbrh - 1);
- _settextposition(fld[i].row,fld[i].column);
- _outtext(fld[i].fld_buffer);
- } /* endif */
- } /* endfor */
- }
- else
- {
- for (i = 0; i <= fields; i++)
- {
- if (fld[i].fld_type != 'H')
- {
- _setactivepage(fld[i].pg_num);
- fld[i].changed = 0;
- fld[i].input_count = strlen(fld[i].fld_buffer);
- fld[i].cur_pos = strlen(fld[i].fld_buffer);
- _settextwindow(fld[i].row+2,fld[i].column+1,fld[i].row+2,fld[i].column+fld[i].length);
- _clearscreen(_GWINDOW);
- _settextwindow(rulh + 2,culh + 1,rbrh - 2,cbrh - 1);
- _settextposition(fld[i].row,fld[i].column);
- _outtext(fld[i].fld_buffer);
- } /* endif */
- } /* endfor */
- } /* endif */
- return(0);
- } /* end initial_fields */
- /*---------------------------------------------------------------------------*/
-
-
- int delete_rec(char *file_name,
- char *rec_id,
- int fields,
- struct fld_info *fld,
- int key_field)
-
- {
-
- int handle1;
- char bigbuff[257];
- long f_position = 0L;
- long file_length = 0L;
-
- int found_it = 0;
- int i,j,k,counter;
-
- for (i = 0; i <= fields; i++)
- {
- fld[i].changed = 0;
- fld[i].cur_pos = 0;
- fld[i].input_count = 0;
- fld[i].fld_buffer[0] = '\0';
- } /* endfor */
-
- handle1 = sopen(file_name,O_RDWR|O_BINARY,SH_DENYWR);
-
- if (handle1 == -1)
- {
- return(-1);
- }
- else
- {
- file_length = filelength(handle1);
- f_position = lseek(handle1,f_position,SEEK_SET);
- while (f_position < file_length - 1 && !found_it)
- {
- bigbuff[0] = '\0';
- read(handle1,bigbuff,256);
- i = 0;
- while (bigbuff[i] != '\r')
- {
- i++;
- } /* endwhile */
- bigbuff[i] = '\0';
- j = 0;
- counter = 0;
- for (k=0; k <= i;k++)
- {
- if (bigbuff[k] == ','|| bigbuff[k] == '\0')
- {
- fld[counter].fld_buffer[j] = '\0';
- counter++;
- j = 0;
- }
- else
- {
- if (bigbuff[k] != ' ')
- {
- fld[counter].fld_buffer[j] = bigbuff[k];
- j++;
- } /* endif */
- } /* endif */
- } /* endfor */
- if (strcmp(fld[key_field].fld_buffer,rec_id) == 0)
- {
- found_it = 1;
- f_position = lseek(handle1,f_position,SEEK_SET);
- for (j=0; j<i;j++ )
- {
- write(handle1,"#",1);
- } /* endfor */
- close(handle1);
- return(0);
- }
- else
- {
- f_position = f_position + i + 2;
- f_position = lseek(handle1,f_position,SEEK_SET);
- } /* endif */
- } /* endwhile */
- close(handle1);
- return(11);
- } /* endif */
- } /* end delete_rec */
- /*---------------------------------------------------------------------------*/
-
-
- int read_rec(char *file_name,
- char *rec_id,
- int fields,
- struct fld_info *fld)
-
- {
-
- int handle1;
- char bigbuff[300];
- long f_position = 0L;
- long file_length = 0L;
-
- int found_it = 0;
- int i,j,k,counter;
-
- for (i = 0; i <= fields; i++)
- {
- fld[i].changed = 0;
- fld[i].cur_pos = 0;
- fld[i].input_count = 0;
- fld[i].fld_buffer[0] = '\0';
- } /* endfor */
-
- handle1 = sopen(file_name,O_RDONLY|O_BINARY,SH_DENYWR);
-
- if (handle1 == -1)
- {
- return(-1);
- }
- else
- {
- file_length = filelength(handle1);
- f_position = lseek(handle1,f_position,SEEK_SET);
- while (f_position < file_length - 1 && !found_it)
- {
- bigbuff[0] = '\0';
- read(handle1,bigbuff,300);
- i = 0;
- while (bigbuff[i] != '\r')
- {
- i++;
- } /* endwhile */
- bigbuff[i] = '\0';
- j = 0;
- counter = 0;
- for (k=0; k <= i;k++)
- {
- if (bigbuff[k] == ','|| bigbuff[k] == '\0')
- {
- fld[counter].fld_buffer[j] = '\0';
- counter++;
- j = 0;
- }
- else
- {
- fld[counter].fld_buffer[j] = bigbuff[k];
- j++;
- } /* endif */
- } /* endfor */
- if (strcmp(fld[0].fld_buffer,rec_id) == 0)
- {
- found_it = 1;
- close(handle1);
- return(0);
- }
- else
- {
- f_position = f_position + i + 2;
- f_position = lseek(handle1,f_position,SEEK_SET);
- } /* endif */
- } /* endwhile */
- close(handle1);
- return(11);
- } /* endif */
- } /* end read_rec */
- /*---------------------------------------------------------------------------*/
-
-
- int write_rec(int handle1,
- int fields,
- struct fld_info *fld,
- long offset,
- int reference)
-
- {
-
- char bigbuff[300];
- long f_position = 0L;
- char format_buff[20];
- char length_buff[20];
- char temp_buff[61];
-
- int i;
- int r_code = 0;
- int rec_length = 0;
-
-
- bigbuff[0] = '\0';
-
- for (i = 0; i <= fields; i++)
- {
- format_buff[0] = '\0';
- length_buff[0] = '\0';
- rec_length = rec_length + fld[i].length + 1;
- itoa(fld[i].length,length_buff,10);
- if (fld[i].fld_type != 'N')
- {
- strcpy(format_buff,"%-");
- }
- else
- {
- strcpy(format_buff,"%");
- } /* endif */
- strcat(format_buff,length_buff);
- strcat(format_buff,"s");
- if (i == fields)
- {
- strcat(format_buff,"\r\n");
- }
- else
- {
- strcat(format_buff,",");
- } /* endif */
-
- temp_buff[0] = '\0';
- sprintf(temp_buff,format_buff,fld[i].fld_buffer);
- strcat(bigbuff,temp_buff);
- } /* endfor */
-
- rec_length = rec_length + 1;
- bigbuff[rec_length] = '\0';
-
- f_position = lseek(handle1,offset,reference);
- if (locking(handle1,LK_LOCK,rec_length) != -1)
- {
- r_code = write(handle1,bigbuff,rec_length);
- f_position = lseek(handle1,f_position,reference);
- locking(handle1,LK_UNLCK,rec_length);
- }
- else
- {
- box_message(1,1,"write_rec Locking Failed.",emp,NULL);
- r_code = -112;
- } /* endif */
- return(r_code);
- } /* end write_rec */