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; }
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; }
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; } }