Главная » Processing » Работа с файлами CSV в Processing

0

CSV (Comma Separated Values) это текстовые файлы, используемые, как правило, для хранения данных. Каждая строка содержит ряд данных. Различные фрагменты данных разделены запятыми. Если вы откроете файл CSV в офисной программе вроде Microsoft Excel или OpenOffice, вы заметите, что каждый фрагмент данных располагается в своей ячейке. Файл, который я использовал, выглядит в текстовом редакторе так:

Как это делается

Первая часть кода не будет для вас новой. В первом примере этой главы я использовал функцию loadStrings() для загрузки текстового файла. Мы используем ее здесь для загрузки файла CSV.

String[] textLines;

void setup()

{

textLines = loadStrings("processing-websites.csv");

noLoop();

}

В функции draw() мы пройдемся по всем строкам текста. Функция split() разделит каждую строку текста на массив различных данных. Второй цикл for мы используем для вывода данных на консоль.

void draw()

{

background( 255 ); translate( 20, height/2 );

stroke( 128 );

fill( 255, 128 );

for ( int i = 0; i < textLines.length; i++ ) { String[] currentLine = split( textLines[i], ", " ); for ( int j = 1; j < currentLine.length; j++ ) {

println( currentLine[j] );

}

println("—");

}

}

Выходные данные на выходе приложения выглядит так. Я удалил некоторые результаты для экономии места:

Processing http://processing.org/

Processing JS http://processingjs.org/

OpenProcessing http://www.openprocessing.org

Processing Ghent http://www.processingghent.org/

Toxiclibs http://toxiclibs.org/

Как это работает

Самая важная функция для работы с файлами CSV это split(). Первый параметр этой функции работает с переменной типа String, содержащей строку данных, разделенных запятой. Вторым параметром является другая переменая типа String, содержащая символы, по которым вы хотите разделить первую строку. В данном случае я взял , (запятую и пробел) как разделитель. Функция split() ищет эти символы в первой строке и разделяет строку по этим меткам.

Дополнительно

В функции setup() я использовал функцию noLoop(). Эта функция останавливает непрерывное выполнение кода Processing в функции draw(). Если вы захотите использовать эту функцию в setup(), вам следует разместить ее в последней строке, ка раз перед окончанием выполнения операций в функции setup().

Если вы захотите конвертировать данные из одного формата в другой, вам поможет мтер Data Converter. Это удобный инструмент для конвертации данных в формат CSV, XML или JSON. Это открытое приложение, написанное Шаном Картером, скачать его можно здесь: http://shancarter.com/data_ converter/.

Источник: Ян Вантомм, Processing 2: креативное программирование, перевод с английского Александры Мишутиной, Published by Packt Publishing Ltd., 2012, BIRMINGHAM – MUMBAI.

По теме:

  • Комментарии