Чтение текстовых файлов

Подготовим текстовый файл с несколькими строками текста. Файл следует сохранить в папке data вашего скетча.

String[] textLines;

void setup()
{
  size( 640, 200 );
  textLines = loadStrings("cat.txt");
  noLoop();
}

void draw()
{
  background( 255 );
  for ( int i = 0; i < textLines.length; i++ ) {
    println( i + ". " + textLines[i] );
  }
}

Функция loadStrings() загружает файл и возвращает массив переменных типа String. Мы можем получить доступ к каждой строке по отдельности. Текст выводится в консоли с нумерацией строк.

CSV

Если нужно работать с файлами CSV, в которых данные разделены запятыми, то можно задействовать дополнительные функции.

String[] textLines;

void setup()
{
  size( 640, 200 );
  textLines = loadStrings("cat.csv");
  noLoop();
}

void draw()
{
  background( 255 );
  for ( int i = 0; i < textLines.length; i++ ) {
    String[] currentLine = split(textLines[i], ",");
    for (int j = 0; j < currentLine.length; j++){
      println( currentLine[j] );
    }
  }
}

Разница заключается в применении функции split(). Первый параметр использует строку, содержащую данные, разделённых запятой. Второй параметр указывает на символ, который служит разделителем.

XML

XML xml;

void setup()
{
  xml = loadXML("some.xml");
  noLoop();
}

void draw()
{
  XML[] kids = xml.getChildren("element");

  for (int i = 0; i < kids.length; i++) {
    int id = kids[i].getInt("id");
    String url = kids[i].getString("url");
    String txt = kids[i].getContent();
    println(i + ": " + id + " " + url + " " + txt);
  }
}

XML-файл имеет определённую структуру. Различные методы позволяет извлечь нужные данные. Метод getChildren() возвращает дочерние узлы в виде массива.

Узел может иметь атрибуты. Если это целое число, то вызываем getInt(), если строка - getString().

Метод getContent() позволяет получить данные между тегами.

results matching ""

    No results matching ""