2018-01-01 09:26:34 +01:00
|
|
|
#include <stdio.h>
|
|
|
|
#include "fort.h"
|
2018-03-05 19:08:14 +01:00
|
|
|
#include <wchar.h>
|
|
|
|
#include <locale.h>
|
2018-01-01 09:26:34 +01:00
|
|
|
|
2018-03-21 18:46:27 +01:00
|
|
|
//#ifdef FT_MICROSOFT_COMPILER
|
|
|
|
//#include <fcntl.h>
|
|
|
|
//#include <io.h>
|
|
|
|
//#endif
|
|
|
|
#include "wcwidth.h"
|
2018-01-01 09:26:34 +01:00
|
|
|
|
2018-03-14 19:30:27 +01:00
|
|
|
static FTABLE *create_basic_table()
|
|
|
|
{
|
|
|
|
FTABLE *table = ft_create_table();
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_option(table, FT_ANY_ROW, 0, FT_OPT_TEXT_ALIGN, CenterAligned);
|
|
|
|
ft_set_option(table, FT_ANY_ROW, 1, FT_OPT_TEXT_ALIGN, LeftAligned);
|
2018-03-14 19:30:27 +01:00
|
|
|
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_option(table, 0, FT_ANY_COLUMN, FT_OPT_ROW_TYPE, Header);
|
2018-03-14 19:30:27 +01:00
|
|
|
FT_NWRITE_LN(table, "Rank", "Title", "Year", "Rating");
|
|
|
|
|
|
|
|
FT_NWRITE_LN(table, "1", "The Shawshank Redemption", "1994", "9.5");
|
|
|
|
FT_NWRITE_LN(table, "2", "12 Angry Men", "1957", "8.8");
|
|
|
|
FT_NWRITE_LN(table, "3", "It's a Wonderful Life", "1946", "8.6");
|
|
|
|
ft_add_separator(table);
|
|
|
|
FT_NWRITE_LN(table, "4", "2001: A Space Odyssey", "1968", "8.5");
|
|
|
|
FT_NWRITE_LN(table, "5", "Blade Runner", "1982", "8.1");
|
|
|
|
return table;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-01 09:26:34 +01:00
|
|
|
int main()
|
|
|
|
{
|
2018-03-05 19:08:14 +01:00
|
|
|
FTABLE *table = NULL;
|
|
|
|
|
2018-03-14 19:30:27 +01:00
|
|
|
#ifdef FT_HAVE_WCHAR
|
2018-03-05 19:08:14 +01:00
|
|
|
|
2018-03-21 18:46:27 +01:00
|
|
|
//#ifdef FT_MICROSOFT_COMPILER
|
|
|
|
// _setmode(_fileno(stdout), _O_U16TEXT);
|
|
|
|
//#else
|
|
|
|
setlocale(LC_CTYPE, "");
|
|
|
|
//#endif
|
2018-03-05 19:08:14 +01:00
|
|
|
|
|
|
|
table = ft_create_table();
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_option(table, FT_ANY_ROW, 0, FT_OPT_TEXT_ALIGN, CenterAligned);
|
|
|
|
ft_set_option(table, FT_ANY_ROW, 1, FT_OPT_TEXT_ALIGN, LeftAligned);
|
2018-03-05 19:08:14 +01:00
|
|
|
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_option(table, 0, FT_ANY_COLUMN, FT_OPT_ROW_TYPE, Header);
|
2018-03-08 21:56:00 +01:00
|
|
|
FT_NWWRITE_LN(table, L"Rank", L"Title", L"Year", L"Rating");
|
|
|
|
|
2018-03-21 18:46:27 +01:00
|
|
|
FT_NWWRITE_LN(table, L"1", L"Побег из Шоушенка \x7788\x7788\x7788", L"1994", L"9.5");
|
2018-03-05 19:08:14 +01:00
|
|
|
FT_NWWRITE_LN(table, L"2", L"12 разгневанных мужчин", L"1957", L"8.8");
|
|
|
|
FT_NWWRITE_LN(table, L"3", L"Космическая одиссея 2001 года", L"1968", L"8.5");
|
|
|
|
FT_NWWRITE_LN(table, L"4", L"Бегущий по лезвию", L"1982", L"8.1");
|
|
|
|
|
2018-03-08 21:56:00 +01:00
|
|
|
fwprintf(stderr, L"Table:\n%ls\n ", ft_to_wstring(table));
|
|
|
|
|
2018-03-05 19:08:14 +01:00
|
|
|
ft_destroy_table(table);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------*/
|
|
|
|
table = ft_create_table();
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_option(table, FT_ANY_ROW, 0, FT_OPT_TEXT_ALIGN, CenterAligned);
|
|
|
|
ft_set_option(table, FT_ANY_ROW, 1, FT_OPT_TEXT_ALIGN, LeftAligned);
|
2018-02-27 18:41:57 +01:00
|
|
|
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_option(table, 0, FT_ANY_COLUMN, FT_OPT_ROW_TYPE, Header);
|
2018-03-05 19:18:26 +01:00
|
|
|
ft_printf_ln(table, "%d|%s|%5.2f km/s", 1, "Mercury", 47.362);
|
|
|
|
|
2018-01-22 19:31:03 +01:00
|
|
|
ft_printf_ln(table, "%d|%s|%5.2f km/s", 1, "Mercury", 47.362);
|
|
|
|
ft_printf_ln(table, "%d|%s|%5.2f km/s", 2, "Venus", 35.02);
|
|
|
|
ft_printf_ln(table, "%d|%s|%5.2f km/s", 3, "Earth", 29.78);
|
2018-01-01 09:26:34 +01:00
|
|
|
|
2018-01-21 18:02:43 +01:00
|
|
|
printf("Table:\n");
|
|
|
|
printf("%s\n", ft_to_string(table));
|
|
|
|
ft_destroy_table(table);
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------*/
|
2018-01-21 09:19:18 +01:00
|
|
|
|
2018-01-21 18:02:43 +01:00
|
|
|
table = ft_create_table();
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_option(table, FT_ANY_ROW, 0, FT_OPT_TEXT_ALIGN, CenterAligned);
|
|
|
|
ft_set_option(table, FT_ANY_ROW, 1, FT_OPT_TEXT_ALIGN, LeftAligned);
|
2018-01-20 19:27:24 +01:00
|
|
|
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_option(table, 0, FT_ANY_COLUMN, FT_OPT_ROW_TYPE, Header);
|
2018-03-05 19:18:26 +01:00
|
|
|
ft_printf_ln(table, "Rank|Title|Year|Rating");
|
|
|
|
|
2018-01-21 18:02:43 +01:00
|
|
|
FT_NWRITE_LN(table, "1", "The Shawshank Redemption", "1994", "9.5");
|
|
|
|
FT_NWRITE_LN(table, "2", "12 Angry Men", "1957", "8.8");
|
|
|
|
FT_NWRITE_LN(table, "3", "2001: A Space Odyssey", "1968", "8.5");
|
|
|
|
FT_NWRITE_LN(table, "4", "Blade Runner", "1982", "8.1");
|
2018-01-20 19:27:24 +01:00
|
|
|
|
|
|
|
|
2018-01-21 18:02:43 +01:00
|
|
|
printf("Table:\n");
|
|
|
|
printf("%s\n", ft_to_string(table));
|
|
|
|
ft_destroy_table(table);
|
2018-01-20 19:27:24 +01:00
|
|
|
|
2018-01-21 18:02:43 +01:00
|
|
|
/*-------------------------------------------------------------*/
|
2018-01-20 19:27:24 +01:00
|
|
|
|
2018-01-21 18:02:43 +01:00
|
|
|
table = ft_create_table();
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_option(table, FT_ANY_ROW, 0, FT_OPT_TEXT_ALIGN, LeftAligned);
|
|
|
|
ft_set_option(table, FT_ANY_ROW, 1, FT_OPT_TEXT_ALIGN, CenterAligned);
|
2018-01-21 18:02:43 +01:00
|
|
|
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_option(table, 0, FT_ANY_COLUMN, FT_OPT_ROW_TYPE, Header);
|
2018-03-05 19:18:26 +01:00
|
|
|
ft_printf_ln(table, "Commodity|Farm price|Avg. spread");
|
|
|
|
|
2018-01-21 18:02:43 +01:00
|
|
|
const char *row1[] = {"Potatoes", "$1.60", "200.94%"};
|
|
|
|
const char *row2[] = {"Carrots", "$0.32 ", "190.63%"};
|
|
|
|
ft_row_write_ln(table, 3, row1);
|
|
|
|
ft_row_write_ln(table, 3, row2);
|
|
|
|
|
|
|
|
printf("Table:\n");
|
|
|
|
printf("%s\n", ft_to_string(table));
|
|
|
|
ft_destroy_table(table);
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------*/
|
2018-03-17 19:53:38 +01:00
|
|
|
#if !defined(__cplusplus) && !defined(FT_MICROSOFT_COMPILER)
|
2018-01-21 18:02:43 +01:00
|
|
|
table = ft_create_table();
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_option(table, FT_ANY_ROW, 0, FT_OPT_TEXT_ALIGN, LeftAligned);
|
|
|
|
ft_set_option(table, FT_ANY_ROW, 1, FT_OPT_TEXT_ALIGN, CenterAligned);
|
2018-01-21 18:02:43 +01:00
|
|
|
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_option(table, 0, FT_ANY_COLUMN, FT_OPT_ROW_TYPE, Header);
|
2018-03-05 19:18:26 +01:00
|
|
|
ft_printf_ln(table, "No.|Name|Avg. Mark");
|
2018-01-21 18:02:43 +01:00
|
|
|
const char *ctab[2][3] = {
|
|
|
|
{"1", "Joe Public", "3.14"},
|
|
|
|
{"2", "John Doe", "4.50"}
|
|
|
|
};
|
|
|
|
ft_s_table_write_ln(table, 2, 3, ctab);
|
|
|
|
|
|
|
|
printf("Table:\n");
|
|
|
|
printf("%s\n", ft_to_string(table));
|
|
|
|
ft_destroy_table(table);
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------*/
|
2018-01-20 19:27:24 +01:00
|
|
|
|
2018-03-12 20:28:55 +01:00
|
|
|
|
|
|
|
|
2018-01-21 18:02:43 +01:00
|
|
|
table = ft_create_table();
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_option(table, FT_ANY_ROW, 0, FT_OPT_TEXT_ALIGN, CenterAligned);
|
|
|
|
ft_set_option(table, FT_ANY_ROW, 1, FT_OPT_TEXT_ALIGN, LeftAligned);
|
2018-01-20 19:27:24 +01:00
|
|
|
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_option(table, 0, FT_ANY_COLUMN, FT_OPT_ROW_TYPE, Header);
|
2018-03-05 19:18:26 +01:00
|
|
|
ft_printf_ln(table, "No.|Name|Avg. Mark");
|
2018-01-20 19:27:24 +01:00
|
|
|
const char **tab[2] = {
|
2018-01-21 18:02:43 +01:00
|
|
|
row1,
|
|
|
|
row2
|
2018-01-20 19:27:24 +01:00
|
|
|
};
|
2018-01-21 18:02:43 +01:00
|
|
|
ft_table_write_ln(table, 2, 3, tab);
|
2018-01-20 19:27:24 +01:00
|
|
|
|
2018-01-21 18:02:43 +01:00
|
|
|
printf("Table:\n");
|
|
|
|
printf("%s\n", ft_to_string(table));
|
|
|
|
ft_destroy_table(table);
|
2018-03-17 19:53:38 +01:00
|
|
|
#endif
|
2018-03-05 19:08:14 +01:00
|
|
|
|
2018-03-12 20:28:55 +01:00
|
|
|
/*---------------- Different styles --------------------*/
|
|
|
|
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_default_border_style(FT_BASIC_STYLE);
|
2018-03-14 19:30:27 +01:00
|
|
|
table = create_basic_table();
|
|
|
|
printf("Table:\n%s\n", ft_to_string(table));
|
2018-03-12 20:28:55 +01:00
|
|
|
ft_destroy_table(table);
|
|
|
|
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_default_border_style(FT_SIMPLE_STYLE);
|
2018-03-14 19:30:27 +01:00
|
|
|
table = create_basic_table();
|
|
|
|
printf("Table:\n%s\n", ft_to_string(table));
|
2018-03-12 21:02:59 +01:00
|
|
|
ft_destroy_table(table);
|
2018-03-12 20:28:55 +01:00
|
|
|
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_default_border_style(FT_PLAIN_STYLE);
|
2018-03-14 19:30:27 +01:00
|
|
|
table = create_basic_table();
|
|
|
|
printf("Table:\n%s\n", ft_to_string(table));
|
|
|
|
ft_destroy_table(table);
|
2018-03-12 20:28:55 +01:00
|
|
|
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_default_border_style(FT_DOT_STYLE);
|
2018-03-14 19:30:27 +01:00
|
|
|
table = create_basic_table();
|
|
|
|
printf("Table:\n%s\n", ft_to_string(table));
|
|
|
|
ft_destroy_table(table);
|
2018-03-12 20:28:55 +01:00
|
|
|
|
2018-03-14 20:18:59 +01:00
|
|
|
ft_set_default_border_style(FT_EMPTY_STYLE);
|
2018-03-14 19:30:27 +01:00
|
|
|
table = create_basic_table();
|
|
|
|
printf("Table:\n%s\n", ft_to_string(table));
|
2018-03-12 21:02:59 +01:00
|
|
|
ft_destroy_table(table);
|
2018-03-12 20:28:55 +01:00
|
|
|
|
|
|
|
table = NULL;
|
2018-03-05 19:08:14 +01:00
|
|
|
|
2018-03-09 10:44:16 +01:00
|
|
|
return 0;
|
2018-01-01 09:26:34 +01:00
|
|
|
}
|