Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //#include "funciones.h"
- #include "estructuras.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- //Por hacer cuerpo de funciones
- void loadSettings(char fileName [], struct configParam* paramsReaded [], int* length,
- char* statusCode){
- FILE* archivo;
- char buffer[1000]; //Buffer usado en fgets()
- char* prop; //Una propiedad
- char* value; //Valor correspondiente a esa propiedad
- archivo = fopen(fileName, "r"); //abrimos el archivo para conteo de lineas
- while(fgets(buffer, 1000, archivo) != NULL){
- *length = *length + 1; //la cantidad de lineas del archivo correspondera a la cantidad de elementos de paramsReaded[]
- }
- fclose(archivo); //cerramos el archivo para resetear, de lo contrario fgets() deja de funcionar
- (*paramsReaded) = malloc(sizeof(struct configParam)); //Asignamos memoria del tamaño de un struct configParam por la cantidad de configParams
- printf("Direccion: %p\n", paramsReaded[0]);
- archivo = fopen(fileName, "r"); //reabrimos el archivo para la lectura de las lineas
- int i = 0;
- while(fgets(buffer, 1000, archivo) != NULL){
- printf("%d\t", i);
- if (i != 0){
- paramsReaded[i] = malloc(sizeof(struct configParam));
- // (*paramsReaded[i]).valor = malloc(50);
- // (*paramsReaded[i]).clave = malloc(50);
- }
- printf("%d, %p\n", i, paramsReaded[i]);
- prop = malloc(sizeof(char)*strlen(buffer));
- value = malloc(sizeof(char)*strlen(buffer)); //Asignamos memoria
- strcpy(prop, buffer);
- strcpy(value, buffer); //Copia de strings en prop y value
- prop = strtok(prop, " =\n"); //separacion de la propiedad y su valor
- value = strtok(NULL, " =\n");
- printf("%s %s\n", prop, value);
- paramsReaded[i]->clave = prop; //asignacion a la structura
- paramsReaded[i]->valor = value;
- printf("%s = %s\n", paramsReaded[i]->clave, paramsReaded[i]->valor);
- i++;
- }
- fclose(archivo); //finalmente cerramos el archivo
- }
- int main(){
- char ruta[] = "/home/rafael/Documents/Proyecto_Paradigmas/C/prueba.txt";
- struct configParam* propiedades;
- int largo = 0;
- char* estado;
- loadSettings(ruta, &propiedades, &largo, estado);
- int i = 0;
- //printf("En main() %s = %s\n", propiedades[1].clave, propiedades[1].valor);
- for (i = 0; i < largo; i++){
- //printf("En main() %s = %s\n", propiedades[i].clave, propiedades[i].valor);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement