Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Processing:Примеры/Загрузка файла 2

Материал из Онлайн справочника
Перейти к: навигация, поиск


Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Описание[1]

Этот скетч-пример демонстрирует загрузку из файла данных об автомобилях. Каждый элемент разделен табуляцией и соответствует какому-либо аспекту каждой машины. В файле хранится информация о милях на галлон, цилиндрах, кубатуре и т.д. для более чем 400 разных типов и моделей машин. Нажмите на кнопку мыши, чтобы перейти к следующей группе записей.

Пример

  1. Record[] records;
  2. String[] lines;
  3. int recordCount;
  4. PFont body;
  5. int num = 9; // количество записей, которые будут показаны на экране
  6. int startingEntry = 0;  // начинаем показывать с этой записи
  7.  
  8. void setup() {
  9.   size(200, 200);
  10.   fill(255);
  11.   noLoop();
  12.  
  13.   body = loadFont("TheSans-Plain-12.vlw");
  14.   textFont(body);
  15.  
  16.   lines = loadStrings("cars2.tsv");
  17.   records = new Record[lines.length];
  18.   for (int i = 0; i < lines.length; i++) {
  19.     String[] pieces = split(lines[i], TAB); // загружаем данные
  20.                                             // в массив
  21.     if (pieces.length == 9) {
  22.       records[recordCount] = new Record(pieces);
  23.       recordCount++;
  24.     }
  25.   }
  26.   if (recordCount != records.length) {
  27.     records = (Record[]) subset(records, 0, recordCount);
  28.   }
  29. }
  30.  
  31. void draw() {
  32.   background(0);
  33.   for (int i = 0; i < num; i++) {
  34.     int thisEntry = startingEntry + i;
  35.     if (thisEntry < recordCount) {
  36.       text(thisEntry + " > " + records[thisEntry].name, 20, 20 + i*20);
  37.     }
  38.   }
  39. }
  40.  
  41. void mousePressed() {
  42.   startingEntry += num;
  43.   if (startingEntry > records.length) {
  44.     startingEntry = 0;  // возвращаемся к началу
  45.   }
  46.   redraw();
  47. }
  48.  
  49.  
  50.  
  51. class Record {
  52.   String name;
  53.   float mpg;
  54.   int cylinders;
  55.   float displacement;
  56.   float horsepower;
  57.   float weight;
  58.   float acceleration;
  59.   int year;
  60.   float origin;
  61.  
  62.   public Record(String[] pieces) {
  63.     name = pieces[0];
  64.     mpg = float(pieces[1]);
  65.     cylinders = int(pieces[2]);
  66.     displacement = float(pieces[3]);
  67.     horsepower = float(pieces[4]);
  68.     weight = float(pieces[5]);
  69.     acceleration = float(pieces[6]);
  70.     year = int(pieces[7]);
  71.     origin = float(pieces[8]);
  72.   }
  73. }

См.также

Внешние ссылки

  1. processing.org - LoadFile 2