From bd700e78b265a6de3f645194f2b8c970389c2594 Mon Sep 17 00:00:00 2001 From: my name Date: Mon, 8 Jun 2026 02:25:13 +0200 Subject: [PATCH] IC of parser, set up basic struct --- qscr/c/files/parser/kvparser.c | 63 ++++++++++++++++++++++++++++++++++ qscr/c/files/parser/kvtest.txt | 2 ++ 2 files changed, 65 insertions(+) create mode 100644 qscr/c/files/parser/kvparser.c create mode 100644 qscr/c/files/parser/kvtest.txt diff --git a/qscr/c/files/parser/kvparser.c b/qscr/c/files/parser/kvparser.c new file mode 100644 index 0000000..f7479a4 --- /dev/null +++ b/qscr/c/files/parser/kvparser.c @@ -0,0 +1,63 @@ +#include +#include +#include +#include + +struct stringchicken{ + char **data; + size_t length; + size_t capacity; +}; + +struct stringchicken *create_string_chicken(){ + struct stringchicken *mystruct = malloc(sizeof(struct stringchicken)); + mystruct->length = 0; + mystruct->capacity = 2; + + mystruct->data = malloc(sizeof(char*) * mystruct->capacity); + + return mystruct; +} + +void push_SC(char *string_input, struct stringchicken *struct_input){ + + if (struct_input->length == struct_input->capacity) { + struct_input->capacity*=2; + char **tempptr = realloc(struct_input->data, sizeof(char*) * struct_input->capacity); + + if (tempptr == NULL) { + exit(1); + } + + struct_input->data = tempptr; + } + + char *newstring = malloc(strnlen(string_input, sizeof(char)*100)); + strcpy(newstring,string_input); + struct_input->data[struct_input->length] = newstring; + + struct_input->length++; +} + +void printchicken(struct stringchicken *input_struct){ + for (size_t i = 0; i < input_struct->length; i++) { + printf("line:%zu equals %s", i, input_struct->data[i]); + } +} + +int main() { + char myString[100]; + char ch; + FILE *fptr = fopen("./kvtest.txt", "r"); + + struct stringchicken *mystringarray = create_string_chicken(); + + while (fgets(myString, 100, fptr)) { + push_SC(myString, mystringarray); + } + + printchicken(mystringarray); + int mylength = strnlen(myString, 100); + + fclose(fptr); +} diff --git a/qscr/c/files/parser/kvtest.txt b/qscr/c/files/parser/kvtest.txt new file mode 100644 index 0000000..baa7079 --- /dev/null +++ b/qscr/c/files/parser/kvtest.txt @@ -0,0 +1,2 @@ +dit is een test +test2