Biblioteca para processar arquivos CSV aplicando filtros e selecionando colunas conforme especificado. Ela é implementada em Go e pode ser utilizada por uma aplicação em C.
Certifique-se de ter os seguintes softwares instalados em seu sistema:
-
Go: Você pode baixar e instalar a partir do site oficial do Go.
-
GCC: O compilador GCC é necessário para compilar a aplicação C. Em sistemas baseados em Debian, você pode instalar com:
sudo apt update sudo apt install build-essential
-
Clone o repositório
git clone https://github.com/CarlosDanielss/go-c-csv-processor.git
-
Compile a biblioteca compartilhada
go build -o libcsv.so -buildmode=c-shared main.go csv_processor.go
-
Copie os arquivos gerados para a pasta do projeto onde será utilizado
A biblioteca exporta as seguintes funções para serem usadas em C:
/**
* Processa os dados do CSV aplicando filtros e selecionando colunas.
*
* @param csv Os dados do CSV a serem processados.
* @param selectedColumns As colunas a serem selecionadas dos dados CSV.
* @param rowFilterDefinitions Os filtros a serem aplicados aos dados CSV.
*
* @return void
*/
void processCsv(const char[], const char[], const char[]);
/**
* Processa o arquivo CSV aplicando filtros e selecionando colunas.
*
* @param csvFilePath O caminho para o arquivo CSV a ser processado.
* @param selectedColumns As colunas a serem selecionadas dos dados CSV.
* @param rowFilterDefinitions Os filtros a serem aplicados aos dados CSV.
*
* @return void
*/
void processCsvFile(const char[], const char[], const char[]);
const char csv[] = "header1,header2,header3\n1,2,3\n4,5,6\n7,8,9";
processCsv(csv, "header1,header3", "header1>1\nheader3<8");
// saída
// header1,header3
// 4,6
const char csv_file[] = "path/to/csv_file.csv";
processCsvFile(csv_file, "header1,header3", "header1>1\nheader3<8");
// saída
// header1,header3
// 4,6
csv-processor/
│
├── main.go // Implementação da biblioteca Go
└── csv_processor.go // Lógica de processamento do CSV