2011-02-10 3 views
0

Есть ли какая-нибудь программа на C, которую я могу запустить в Linux, и создаст файл csv заданных размеров (строки x столбцов) и сохранит его на жестком диске?Генератор CSV FILE в C

+0

Каковы ваши входные данные? – stacker

+0

Пустой «csv-файл данных измерений» не очень полезен. В чем проблема, которую вы пытаетесь решить? – Johnsyweb

+0

Поскольку вы просто хотите запустить существующую программу, почему вам все равно, на что она написана? –

ответ

1

Если вы ищете для существующей утилиты вы, вероятно, на неправильном месте, но что-то подобное будет печатать пустой файл CSV с двойными кавычками ячеек и нет строки заголовка:

for (int i = 0; i < rows; ++i) { 
    for (int j = 0; j < cols-1; ++j) { 
     printf("\"\","); 
    } 
    printf("\"\"\n"); 
} 

Taking некоторые произвольные данные и превращение их в CSV-файл сложнее. Во-первых, каков формат входных данных? Во-вторых, правильно вывести данные.

3

CSV-файл - это просто текстовый файл с разделителями с запятой, поэтому вы можете создать его вручную в текстовом редакторе. Существует спецификация в RFC 4180.

Часто первая строка используется для имен столбцов таких как:

 
Name, Account no, Amount 
Niels, 1234, $0.99 
Thomas, 8888, $10.00 
Per, 3454, $9.00 
Rasmus, 9412, $99.99 

Небольшая программа с для создания простой и пустой файл CSV может выглядеть следующим образом:

/* 
* makecsv.c 
*/ 

#include <stdio.h> 

int main(int argc, char **argv) { 
    if(argc != 3) { 
     printf("Mandatory arguments: <rows> <cols>\n"); 
     return 1; 
     } 

     int row, col; 
     for(row = 0; row < atoi(argv[1]); row++) { 
     for(col = 0; col < atoi(argv[2]); col++) { 
      if(col > 0) { 
       printf(", "); 
      } 
      /* Default values are "row x col" */ 
      printf("\"%dx%d\"", row, col); 
     } 
     printf("\r\n"); 
     } 
     return 0; 
} 

Я бы компилировать и запустить его с помощью следующих команд:

 
$ gcc -o makecvs makecsv.c 
$ ./makecvs 3 4 
"0x0", "0x1", "0x2", "0x3" 
"1x0", "1x1", "1x2", "1x3" 
"2x0", "2x1", "2x2", "2x3" 

$ 

Чтобы поместить вывод в файл «в Unix пути», перенаправьте outpu т в файл, используя следующие команды:

 
$ ./makecvs 3 4 > myFile.csv 
0

Ну, я сделал поиск и придумал: http://sourceforge.net/projects/libcsv/

Так это лишь один пример из «библиотеки» для обработки CSV. Возможно, стоит взглянуть на glib и, возможно, на apr и посмотреть, есть ли у них что-то в библиотеках. Или вы можете сделать это «вручную», как предлагается здесь.