Skip to content

Commit

Permalink
l4_task_4: Load, Save, Free and Print(1+2) done
Browse files Browse the repository at this point in the history
  • Loading branch information
Efler committed Nov 30, 2022
1 parent b285416 commit e93d90c
Show file tree
Hide file tree
Showing 4 changed files with 217 additions and 69 deletions.
Binary file modified cmake-build-debug/.ninja_deps
Binary file not shown.
82 changes: 21 additions & 61 deletions cmake-build-debug/.ninja_log
Original file line number Diff line number Diff line change
@@ -1,91 +1,51 @@
# ninja log v5
0 56 6853926691756880 CMakeFiles/fund_algs.dir/lab_1/task_1.c.obj 911b92ddd9dc1d13
0 91 6913713594432403 build.ninja eb2cc54aad09f86f
1 79 6875427007797789 CMakeFiles/l2_task_5.dir/lab_2/l2_task_5.c.obj 7122543b3fcbe87a
0 44 6853930618842304 CMakeFiles/task_7.dir/lab_1/task_7.c.obj ac30ffd0c9ec8ef
0 91 6913713594432403 build.ninja eb2cc54aad09f86f
0 56 6853926691756880 CMakeFiles/fund_algs.dir/lab_1/task_1.c.obj 911b92ddd9dc1d13
44 87 6879155680995349 l2_task_7.exe 3eac18fdaeba4866
56 105 6853926692226249 fund_algs.exe a3f065ee3e41c950
1 29 6880029615947934 CMakeFiles/l2_draft_9.dir/lab_2/l2_draft_9.c.obj e0a33073ab281592
1 50 6853929818867894 CMakeFiles/aaa.dir/lab_1/task_7.c.obj c6051ab2c3ef5e31
51 106 6853929819415665 aaa.exe 5b4d5c58534c7983
0 54 6853930436667185 CMakeFiles/task_1.dir/lab_1/task_1.c.obj 353e499f949a9e6b
91 165 6875431000631376 l2_task_8.exe cba948ab1e6804e5
54 99 6853930437094262 task_1.exe 1628464d7fcaa593
91 165 6875431000631376 l2_task_8.exe cba948ab1e6804e5
44 85 6853930619230813 task_7.exe e9c7cd8701fd30ed
1 360 6861636512141090 CMakeFiles/task_2.dir/lab_1/task_2.c.obj fbd39bdd3c2a390d
360 816 6861636516646567 task_2.exe da1ad12ef0f71075
2 130 6855626446040009 CMakeFiles/task_4.dir/lab_1/task_4.c.obj 278c60d5096fad2
1 44 6879155680585280 CMakeFiles/l2_task_7.dir/lab_2/l2_task_7.c.obj 830bd46108b259c5
50 95 6874801850822839 l2_task_2.exe 2c767eec893ec6b5
131 237 6855626447064386 task_4.exe 3af49c5c13f421d7
2 80 6855644717044600 CMakeFiles/task_5.dir/lab_1/task_5.c.obj cf85067ffb1e2c38
50 95 6874801850822839 l2_task_2.exe 2c767eec893ec6b5
1 44 6879155680585280 CMakeFiles/l2_task_7.dir/lab_2/l2_task_7.c.obj 830bd46108b259c5
1 49 6859979521198927 CMakeFiles/task_3.dir/lab_1/task_3.c.obj c6ddca40762abd67
2 80 6855644717044600 CMakeFiles/task_5.dir/lab_1/task_5.c.obj cf85067ffb1e2c38
81 153 6855644717731744 task_5.exe f09c33622164e731
49 97 6859979521658505 task_3.exe 5d605acc072b26b7
3 96 6879543180821533 CMakeFiles/l2_draft_6.dir/lab_2/l2_draft_6.c.obj 4f6fabd7c0e55b98
2 106 6861636679039182 CMakeFiles/task_8.dir/lab_1/task_8.c.obj 3d57c84bd0e656c9
1 65 6914776938088663 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
106 198 6861636679918525 task_8.exe 41e4f6d9ef5e8b49
2 106 6861636679039182 CMakeFiles/task_8.dir/lab_1/task_8.c.obj 3d57c84bd0e656c9
3 96 6879543180821533 CMakeFiles/l2_draft_6.dir/lab_2/l2_draft_6.c.obj 4f6fabd7c0e55b98
1 284 6874722257076254 CMakeFiles/l2_task_1.dir/lab_2/l2_task_1.c.obj f7b120e14c25bcdf
284 638 6874722260587244 l2_task_1.exe c4e6973cc0f2b618
1 50 6874801850394521 CMakeFiles/l2_task_2.dir/lab_2/l2_task_2.c.obj c803f8512530c931
2 72 6875491205276827 CMakeFiles/l2_task_4.dir/lab_2/l2_task_4.c.obj 696d14d64d1563cb
72 158 6875491206094868 l2_task_4.exe a6e9bb18de6df3ce
80 152 6875427008477106 l2_task_5.exe 419390fad013012a
2 91 6875430999925727 CMakeFiles/l2_task_8.dir/lab_2/l2_task_8.c.obj 7eae91d37bf340c2
1 48 6880029678451444 CMakeFiles/l2_task_9.dir/lab_2/l2_task_9.c.obj b52c4d8bfe4312f2
2 66 6879845079515372 CMakeFiles/l2_task_6.dir/lab_2/l2_task_6.c.obj b1b57ba73aa11ca6
1 48 6880029678451444 CMakeFiles/l2_task_9.dir/lab_2/l2_task_9.c.obj b52c4d8bfe4312f2
66 133 6879845080150094 l2_task_6.exe f6237b40d030743c
96 192 6879543181738545 l2_draft_6.exe d0386e14e8491bd0
48 94 6880029678885445 l2_task_9.exe 424186a1b39ef908
1 273 6913734327168768 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
273 487 6913734329295774 l4_task_4.exe 4ef4f052caf22873
1 50 6913737249255164 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
50 94 6913737249689014 l4_task_4.exe 4ef4f052caf22873
1 44 6913737638328299 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
44 91 6913737638768553 l4_task_4.exe 4ef4f052caf22873
1 45 6913738182368380 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
45 89 6913738182785913 l4_task_4.exe 4ef4f052caf22873
1 48 6913738422006198 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
48 97 6913738422466930 l4_task_4.exe 4ef4f052caf22873
1 135 6913803923178237 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
135 363 6913803925443549 l4_task_4.exe 4ef4f052caf22873
1 48 6913813100705038 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
49 92 6913813101125763 l4_task_4.exe 4ef4f052caf22873
1 44 6913813167912244 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
44 94 6913813168385325 l4_task_4.exe 4ef4f052caf22873
1 67 6913840246557208 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
67 122 6913840247078467 l4_task_4.exe 4ef4f052caf22873
1 71 6913943447328000 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
71 137 6913943447959581 l4_task_4.exe 4ef4f052caf22873
1 61 6913946467483903 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
62 109 6913946467940307 l4_task_4.exe 4ef4f052caf22873
1 62 6913948355455377 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
62 106 6913948355881332 l4_task_4.exe 4ef4f052caf22873
1 67 6913948726819936 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
67 114 6913948727267475 l4_task_4.exe 4ef4f052caf22873
1 305 6914534742668499 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
305 644 6914534746019269 l4_task_4.exe 4ef4f052caf22873
1 75 6914557075784535 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
75 128 6914557076285864 l4_task_4.exe 4ef4f052caf22873
1 70 6914570003189427 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
70 121 6914570003687511 l4_task_4.exe 4ef4f052caf22873
1 61 6914571565605040 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
61 107 6914571566035534 l4_task_4.exe 4ef4f052caf22873
1 63 6914578731180397 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
63 109 6914578731600398 l4_task_4.exe 4ef4f052caf22873
1 68 6914583933685022 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
68 118 6914583934164825 l4_task_4.exe 4ef4f052caf22873
1 59 6914584885365902 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
59 106 6914584885818336 l4_task_4.exe 4ef4f052caf22873
1 59 6914585653898135 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
59 104 6914585654325179 l4_task_4.exe 4ef4f052caf22873
1 62 6914587712081761 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
62 111 6914587712542954 l4_task_4.exe 4ef4f052caf22873
1 63 6914596092628581 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
63 109 6914596093058116 l4_task_4.exe 4ef4f052caf22873
0 65 6914600018834186 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
65 113 6914600019290092 l4_task_4.exe 4ef4f052caf22873
0 68 6914600907772842 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
68 111 6914600908193971 l4_task_4.exe 4ef4f052caf22873
1 64 6914606134305252 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
64 108 6914606134723609 l4_task_4.exe 4ef4f052caf22873
65 109 6914776938511763 l4_task_4.exe 4ef4f052caf22873
1 65 6914777381787515 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
65 109 6914777382204381 l4_task_4.exe 4ef4f052caf22873
1 85 6914790949077798 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
85 140 6914790949595105 l4_task_4.exe 4ef4f052caf22873
1 66 6914791794054119 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
66 109 6914791794458962 l4_task_4.exe 4ef4f052caf22873
2 79 6914792456376959 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
79 126 6914792456830362 l4_task_4.exe 4ef4f052caf22873
1 73 6914794552147462 CMakeFiles/l4_task_4.dir/lab_4/l4_task_4.c.obj ecb8daf83ccfa09c
73 116 6914794552559379 l4_task_4.exe 4ef4f052caf22873
4 changes: 2 additions & 2 deletions cmake-build-debug/Testing/Temporary/LastTest.log
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Start testing: Nov 30 00:31 RTZ 2 (ceia)
Start testing: Nov 30 05:46 RTZ 2 (ceia)
----------------------------------------------------------
End testing: Nov 30 00:31 RTZ 2 (ceia)
End testing: Nov 30 05:46 RTZ 2 (ceia)
200 changes: 194 additions & 6 deletions lab_4/l4_task_4.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,130 @@ int find_array(arr* arrays, char Name){
}
}

void print_array(arr* arrays, int a, int b, int index){
if(b != -1) {
while (a <= b) {
printf("%d ", *(arrays[index].value + a));
a++;
}
}
printf("\n");
}

int print(FILE* fin, char* comm, arr* arrays){
char c;
char Name = fgetc(fin);
if(!isalpha(Name)){
return 1;
}
if(toupper(Name) < 65 || toupper(Name) > 90){
return 1;
}
c = fgetc(fin);
if(c != '\n' && c != ',' && c != EOF){
return 1;
}
c = fgetc(fin);
int index = find_array(arrays, Name);
int k = 4;
char* buff = (char*)malloc((k) * sizeof(char));
if(!buff){
return 2;
}
char* p_buff = buff;
while(!feof(fin)){
c = fgetc(fin);
if(c == ','){
if((p_buff - buff) == k){
char* p = (char*)realloc(buff, (k+1)*sizeof(char));
if(!p){
free(buff);
return 2;
}else{
buff = p;
p_buff = p + k;
}
}
*p_buff = 0;
int a = atoi(buff);
free(buff);
c = fgetc(fin);
int pr_digit = 0;
int b = 0;
while(!feof(fin)){
c = fgetc(fin);
if(c == '\n' || c == EOF){
if(a < 0 || b < 0) return 5;
else if(a > b) return 4;
else if(a > (arrays[index].count_of_el - 1) || b > (arrays[index].count_of_el - 1)) return 6;
else{
print_array(arrays, a, b, index);
return 0;
}
}else{
b = (pr_digit * 10) + (c - '0');
pr_digit = b;
}
}
}else if(c == '\n' || c == EOF){
if((p_buff - buff) == k){
char* p = (char*)realloc(buff, (k+1)*sizeof(char));
if(!p){
free(buff);
return 2;
}else{
buff = p;
p_buff = p + k;
}
}
*p_buff = 0;
if(!strcmp(buff, "all")){
print_array(arrays, 0, arrays[index].count_of_el - 1, index);
free(buff);
return 0;
}else{
free(buff);
return 3;
}
}else{
if((p_buff - buff) == k){
k *= 2;
char* p = (char*)realloc(buff, (k)*sizeof(char));
if(!p){
free(buff);
return 2;
}else{
buff = p;
p_buff = p + k/2;
}
}
*p_buff++ = c;
}
}

}

int command_free(FILE* fin, arr* arrays, char* comm){
char c;
char Name = fgetc(fin);
if(!isalpha(Name)){
return 1;
}
if(toupper(Name) < 65 || toupper(Name) > 90){
return 1;
}
c = fgetc(fin);
c = fgetc(fin);
int index = find_array(arrays, Name);
int aaa = arrays[index].count_of_el;
if(arrays[index].count_of_el){
if(clear_specific_array(arrays, Name)){
return 2;
}
}
return 0;
}

int load_args(FILE* fin, char** file, char* Name, int* k){
char c;
*Name = fgetc(fin);
Expand Down Expand Up @@ -491,10 +615,6 @@ int main(int argc, char *argv[]){
return 0;
}
printf("Load ---> Done!\n");
for(int i = 0; i < arrays[5].count_of_el; i++){
printf("%d ", *(arrays[5].value + i));
}
printf("\n");
}else if(!strcmp(comm, "Save")){
comm_error = save(fin, comm, arrays);
if(comm_error == 1){
Expand Down Expand Up @@ -536,7 +656,25 @@ int main(int argc, char *argv[]){
}else if(!strcmp(comm, "Concat")){

}else if(!strcmp(comm, "Free")){

comm_error = command_free(fin, arrays, comm);
if(comm_error == 1){
printf("Wrong syntax of arguments: Free\n");
checker = -1;
clear_arrays_value(arrays, &checker);
free(comm);
fclose(fin);
comm_error = 0;
return 0;
}else if(comm_error == 2){
printf("Memory Allocation Error: free ---> clear_specific_array\n");
checker = -1;
clear_arrays_value(arrays, &checker);
free(comm);
fclose(fin);
comm_error = 0;
return 0;
}
printf("Free ---> Done!\n");
}else if(!strcmp(comm, "Remove")){

}else if(!strcmp(comm, "Copy")){
Expand All @@ -548,7 +686,57 @@ int main(int argc, char *argv[]){
}else if(!strcmp(comm, "Stats")){

}else if(!strcmp(comm, "Print")){

comm_error = print(fin, comm, arrays);
if(comm_error == 1){
printf("Wrong syntax of arguments: Print\n");
checker = -1;
clear_arrays_value(arrays, &checker);
free(comm);
fclose(fin);
comm_error = 0;
return 0;
}else if(comm_error == 2){
printf("Memory Allocation Error: Print\n");
checker = -1;
clear_arrays_value(arrays, &checker);
free(comm);
fclose(fin);
comm_error = 0;
return 0;
}else if(comm_error == 3){
printf("Wrong syntax of arguments: Print\n");
checker = -1;
clear_arrays_value(arrays, &checker);
free(comm);
fclose(fin);
comm_error = 0;
return 0;
}else if(comm_error == 4){
printf("Print ---> Range error: a > b\n");
checker = -1;
clear_arrays_value(arrays, &checker);
free(comm);
fclose(fin);
comm_error = 0;
return 0;
}else if(comm_error == 5){
printf("Print ---> Range error: at least one of borders less than 0\n");
checker = -1;
clear_arrays_value(arrays, &checker);
free(comm);
fclose(fin);
comm_error = 0;
return 0;
}else if(comm_error == 6){
printf("Print ---> Range error: at least one of borders points to a non-existent element\n");
checker = -1;
clear_arrays_value(arrays, &checker);
free(comm);
fclose(fin);
comm_error = 0;
return 0;
}
printf("Print ---> Done!\n");
}else{
printf("Wrong command\n");
checker = -1;
Expand Down

0 comments on commit e93d90c

Please sign in to comment.