Beispiel #1
0
int main(int argc, const char *argv[])
{
    TContact_list contact_list = {contact_list.first = NULL, contact_list.last = NULL};
    get_dir();
    
    switch(get_mode(argc, argv)){
        case DEL:
            get_data(&contact_list);
            remove_from_list(&contact_list, atoi(argv[2]));
            save_csv(&contact_list);
            generate_html(&contact_list);
            free_list(&contact_list);
            break;
        case ADD:
            get_data(&contact_list);
            add_to_list(argv, &contact_list);
            sort_list(&contact_list);
            save_csv(&contact_list);
            generate_html(&contact_list);
            free_list(&contact_list);
            break;
        case LIST:
            get_data(&contact_list);
            sort_list(&contact_list);
            print_list(&contact_list);
            save_csv(&contact_list);
            generate_html(&contact_list);
            free_list(&contact_list);
            break;
        case SIN:
            get_data(&contact_list);
            print_single(&contact_list, atoi(argv[2]));
            free_list(&contact_list);
            break;
        case FIND:
            get_data(&contact_list);
            find_in_list(&contact_list, (char *)argv[2]);
            generate_html(&contact_list);
            free_list(&contact_list);
            break;
        case PLIST:
            get_data(&contact_list);
            sort_list(&contact_list);
            generate_plist(&contact_list);
            free_list(&contact_list);
            break;
        case DELN:
            get_data(&contact_list);
            delete_by_name(&contact_list, (char *)argv[2], (char *)argv[3]);
            save_csv(&contact_list);
            generate_html(&contact_list);
            free_list(&contact_list);
        default:
            handle_errors();
            return EXIT_FAILURE;
    }
    if(handle_errors() != EXIT_SUCCESS) return EXIT_FAILURE;
    else return EXIT_SUCCESS;
}
Beispiel #2
0
void command(vector_t *** vecs)
{
int terminated = 0;
int i = 0;
int N = 0, rc = 0;
int fr = 0, fsk = 0, fpr = 0, fskkv = 0, fkav = 0, max = 0;
char input[N_MAX];
char *p, *p2, *output;
vector_t * vec, * vec1;
double val;

vector_t ** vectors = *vecs;

while (!terminated) {

  printf("\n> ");
  gets( input );
  
  fr = fsk = fpr = fskkv = 0;
  for (i = 0; i < strlen(input); i ++) {
    if (input[i] == '=') fr = 1;
    if ((input[i] == '(') || (input[i] == ')')) fsk = 1;
    if (input[i] == ' ') fpr = 1;
    if (input[i] == '[') fskkv = 1;
    if (input[i] == '"') fkav = 1;
  }
    
  if ((fr == 0) && (fsk == 0) && (fpr == 0) && (fskkv == 0)) {
    if (strcmp("ls", input) == 0) 
	ls(vectors);

    else if (strcmp("help", input) == 0) 
	help();

    else if (strcmp("quit", input) == 0)
	terminated = 1;

    else printf("Command is not found\n");
  }


  if ((fr == 0) && (fsk == 1)) {
    p = strtok(input, "(");

    if (strcmp(p, "disp") == 0) {
	p = strtok(NULL, ")");
	vec = vectors_search( vectors, p);
	if (vec)
	  printf("dispersion %s = %f\n", p, disp(vec->size, vec->vals));
        else
          printf("ERROR: Parameter '%s' not found\n", p );
    }

    else if (strcmp(p, "avg") == 0) {
	p = strtok(NULL, ")");
	vec = vectors_search( vectors, p);
	if (vec)
	  printf("average %s = %f\n", p, avg(vec->size, vec->vals));
        else
          printf("ERROR: Parameter '%s' not found\n", p );
 
    }

    else if (strcmp(p, "print") == 0) {
	p = strtok(NULL, ")");
	vec = vectors_search( vectors, p);
	if (vec) {
	  printf("Vector %s: \n", p);
	  vector_print(vec);
        }
        else
          printf("ERROR: Parameter '%s' not found\n", p );
 
    }
    
    else if (strcmp(p, "load") == 0)
    {
      p = strtok(NULL, ")");
      rc = load_csv(&vectors, p);
      if (rc == -1) printf("Failed to load file: %s \n", p);
    }

    else if (strcmp(p, "save") == 0)
    {
      p = strtok(NULL, ")");
      rc = save_csv(vectors, p);
      if (rc == -1) printf("Failed to save file: %s \n", p);
    }


    else if (strcmp(p, "delete") == 0)
    {
      p = strtok(NULL, ")");
      vec = vectors_search( vectors, p);
	if (vec) {
	  vectors_remove(&vectors, vec);
        }
        else
          printf("ERROR: Parameter '%s' not found\n", p );
    }

    else if (strcmp(p, "gnuplot") == 0)
    {
      p = strtok(NULL, ")");
      gcmd(p);
    }

    else printf("Command is not found\n");
  } 


  if ((fr == 1) && (fskkv == 1)) {
    p = strtok(input, " =");

    vec = (vector_t*) malloc (sizeof( vector_t ) );
    vector_init( p, 0, vec );
    
    p = strtok(NULL, "= [,]");
    while ( p )
    {
      val = strtod( p, &p2 );
      if ( p == p2 )
      { 
        vector_clear( vec );
        free( vec );
        vec = 0;
        printf( "ERROR: Input data is invalid\n" );
        break;
      }
      else
      {
         vector_append( vec, 1, &val );
      }
      p = strtok(NULL, " ,]");
    }	

    if ( vec )
    {
      vec1 = vectors_search( vectors, vec->name );
      if (vec1) 
      {
	vector_clear( vec1 );
        vector_append( vec1, vec->size, vec->vals );
        vector_clear( vec );
        free( vec );
        vec = 0;
      }
      else
      { 
        vectors_add( &vectors, vec );

      }   
    }		
  }

  if ((fr == 1) && (fskkv == 0))
  {
    for (i = 0; i < vectors_count(vectors); i ++)
      if (max < vectors[i]->size) max = vectors[i]->size;
    printf("%d\n", max);
    printf("%d\n", vectors_count(vectors));
    sergey(vectors, input, max, vectors_count(vectors));
  }

  if ((fpr == 1) && (fskkv == 0) && (fsk == 0))
  {
    p = strtok(input, " ");
    if (strcmp(p, "plot") == 0)
    {
      p = strtok(NULL, " ");
      vec = vectors_search(vectors, p);
      if (vec)
      {
        p = strtok(NULL, " ");
        vec1 = vectors_search(vectors, p);
        if (vec1)
        {
          p = strtok(NULL, " ");
          output = p;
          if (strcmp(p, "wxt") == 0) { output = NULL; }
          p = strtok(NULL, ".");
          N = atoi(p);
          gplot_vector(vec, vec1, output, N);
        }
      }
   }
   else printf("Command is not found\n");
  }
}
 *vecs = vectors;
}
Beispiel #3
0
void HistoBase<x_value_type,y_value_type,Derived>::save_csv(const char* filename) const
{
  std::ofstream output_filestream(filename);
  save_csv(output_filestream);
  output_filestream.close();
}
command(TableUI *tui, int cmd) {

    switch (cmd) {
    
    case CmdClearFile: clear_file(tui); break;
    case CmdOpenFile:
        clear_and_open(tui, tui->filename);
        if (row_count(tui->table) < MAX_ROWS_FOR_FIT
         && max_col_count(tui->table) < MAX_COLS_FOR_FIT) {
            unsigned i;
            for (i = 0; i < max_col_count(tui->table); i++)
                auto_resize_col(tui, i);
        }
        break;
    case CmdSaveFile: save_csv(tui, tui->filename); break;
    
    case CmdSetAnchor: set_anchor(tui); break;
    case CmdClearAnchor: clear_anchor(tui); break;
    
    case CmdClearRow: clear_selected_rows(tui); break;
    case CmdDeleteRow: delete_selected_rows(tui); break;
    case CmdDeleteCell: delete_selected_cells(tui); break;
    case CmdClearCell: clear_selected_cells(tui); break;
    
    case CmdCopy: copy_to_clipboard(tui); break;
    case CmdCutClear: copy_to_clipboard(tui); clear_selected_cells(tui); break;
    case CmdCutDelete: copy_to_clipboard(tui); delete_selected_cells(tui); break;
    case CmdPaste: clear_anchor(tui); paste_clipboard(tui); break;
    
    case CmdReturn: clear_anchor(tui); move_cursor(tui, 1, 0); break;
    case CmdTab: clear_anchor(tui); move_cursor(tui, 0, 1); break;
    case CmdUnReturn: clear_anchor(tui); move_cursor(tui, -1, 0); break;
    case CmdUnTab: clear_anchor(tui); move_cursor(tui, 0, -1); break;
    
    case CmdEditCell: start_edit(tui, 1); break;
    case CmdEditCellClear: start_edit(tui, 0); break;
    case CmdCommitEdit: end_edit(tui); break;
    case CmdCancelEdit: cancel_edit(tui); break;
    
    case CmdMoveUp: move_cursor(tui, -1, 0); break;
    case CmdMoveDown: move_cursor(tui, 1, 0); break;
    case CmdMoveLeft: move_cursor(tui, 0, -1); break;
    case CmdMoveRight: move_cursor(tui, 0, 1); break;
    
    case CmdScrollUp: scroll(tui, -1, 0); break;
    case CmdScrollDown: scroll(tui, 1, 0); break;
    case CmdScrollLeft: scroll(tui, 0, -1); break;
    case CmdScrollRight: scroll(tui, 0, 1); break;
    
    case CmdHomeCol: jump_cursor(tui, 0, tui->cur_col); break;
    case CmdHomeRow: jump_cursor(tui, tui->cur_row, 0); break;
    case CmdEndCol: jump_cursor(tui, row_count(tui->table) - 1, tui->cur_col); break;
    case CmdEndRow: jump_cursor(tui, tui->cur_row, col_count(tui->table, tui->cur_row) - 1); break;
    
    case CmdInsertDate: insert_datetime(tui, 0); break;
    case CmdInsertDateTime: insert_datetime(tui, 1); break;
    
    case CmdInsertCell:
        insert_cells(tui->table, tui->cur_row, tui->cur_col, 1);
        redraw_rows(tui, tui->cur_row, tui->cur_row);
        break;
    case CmdInsertRow:
        insert_rows(tui->table, tui->cur_row, 1);
        redraw_rows(tui, tui->cur_row, -1);
        break;
    
    case CmdFindColumn:
        find_cell_text_col(tui, tui->cur_row, tui->cur_col, tui->find_text);
        break;
        
    case CmdFindRow:
        find_cell_text_row(tui, tui->cur_row, tui->cur_col, tui->find_text);
        break;
    
    }

}