Dateioperationen bei Processing
(EN google-translate)
(PL google-translate)
String-Zeilen speichern und einlesen
Der Speicherort ist Default-mäßig der Ordner, in dem auch der aktuell laufende Sketch gespeichert ist. Es ist aber auch möglich, absolute Pfade anzugeben.
void setup()
{
    String text = "Zeile eins\nZeile zwei\n\n  \nZeile drei\n\n";
    saveStrings("test.txt",new String[] {text});
    
    String lines[] = loadStrings("test.txt");
  
    for(int i=0;i<lines.length;i++)
    {
        println(i+".:"+lines[i]);
    }  
}
Code 0-1: Beispiel
0.:Zeile eins 1.:Zeile zwei 2.: 3.: 4.:Zeile drei 5.: 6.:
Code 0-2: Konsolenausgabe
split() - Strings zerlegen
void setup()
{
    String text = "Zeile eins\nZeile zwei\n\n  \nZeile drei\n\n";
    String woerter[] = split(text,'\n');
  
    for(int i=0;i<woerter.length;i++)
    {
        println(i+".:"+woerter[i]);
    }  
}
Code 0-3: Beispiel
0.:Zeile eins 1.:Zeile zwei 2.: 3.: 4.:Zeile drei 5.: 6.:
Code 0-4: Konsolenausgabe
splitTokens() - Strings zerlegen
Die split-Methode ist etwas störanfällig, wenn zwischen den Betriebssystemen gewechselt wird. Sicherer ist eine Methode splitTokens(), die auf White-Spaces zwischen den Wörtern prüft und danach zerlegt. Dies wird im folgenden umgesetzt:
void setup()
{
    String text = "Zeile eins\nZeile zwei\n\n  \nZeile drei\n\n";
    String woerter[] = splitTokens(text);
  
    for(int i=0;i<woerter.length;i++)
    {
        println(i+".:"+woerter[i]);
    }  
}
Code 0-5: Beispiel
0.:Zeile 1.:eins 2.:Zeile 3.:zwei 4.:Zeile 5.:drei
Code 0-6: Konsolenausgabe
Zahlen-Arrays mit Hilfe der Table-Methode speichern und laden
void setup()
{
    double[][] matrix = {{1.0,2.0},{3.0,4.0}};
    
    Table tabelle = createTable();
    for(int spalten = 0;spalten<matrix[0].length;spalten++)
        tabelle.addColumn("Spalte Nr."+spalten);
        
    for(int zeile=0;zeile<matrix.length;zeile++)
    {
        TableRow ts = tabelle.addRow(); 
        for(int spalte=0;spalte<matrix[zeile].length;spalte++)
        {
            ts.setDouble(spalte,matrix[zeile][spalte]);
        }
    }    
    
    saveTable(tabelle,"tabelle.csv");
    
    
    Table tabelle2 = loadTable("tabelle.csv", "header");
    
    println(tabelle2.getRowCount() + " Tabellenspalten");
    
    for(TableRow row : tabelle2.rows())
    { 
        for(int i=0;i<2;i++)
        {
            print(row.getDouble(i)+" ");
        }            
        println();            
    }            
}
Code 0-7: Beispiel
2 Tabellenspalten 1.0 2.0 3.0 4.0
Code 0-8: Konsolenausgabe
2 Tabellenspalten Spalte Nr.0,Spalte Nr.1 1.0,2.0 3.0,4.0
Code 0-9: Datei tabelle.csv
Satt eines Dateinamens, kann als Quelle der Tabelle auch eine URL angegeben werden. Hier ein Test:
tabelle.csv wurde vorher nach /mnt-system/soja/htdocs kopiert und der lokale Server gestartet.
void setup()
{
    Table tabelle2 = loadTable("http://localhost:8000/tabelle.csv", "header");
    
    println(tabelle2.getRowCount() + " Tabellenspalten");
    
    for(TableRow row : tabelle2.rows())
    { 
        for(int i=0;i<2;i++)
        {
            print(row.getDouble(i)+" ");
        }            
        println();            
    }            
}
Code 0-10: Beispiel, bei dem eine Tabelle von einem Server geladen wird. Die Spalten müssen durch Kommata getrennt sein.
2 Tabellenspalten 1.0 2.0 3.0 4.0
Code 0-11: Konsolenausgabe
Tabellen und Strings (Beispiel aus Processing-Reference)
Table table;
void setup() 
{
  table = createTable();
  
  table.addColumn("id");
  table.addColumn("species");
  table.addColumn("name");
  
  TableRow newRow = table.addRow();
  newRow.setInt("id", table.getRowCount() - 1);
  newRow.setString("species", "Panthera leo");
  newRow.setString("name", "Lion");
  TableRow newRow2 = table.addRow();
  newRow2.setInt("id", table.getRowCount() - 1);
  newRow2.setString("species", "Kleines Nagetier");
  newRow2.setString("name", "Hamster Mopsi");
  
  saveTable(table, "tabelle2.csv");
  
  table = loadTable("tabelle2.csv", "header");
  println(table.getRowCount() + " total rows in table"); 
  for (TableRow row : table.rows()) 
  {
    
    int id = row.getInt("id");
    String species = row.getString("species");
    String name = row.getString("name");
    
    println(name + " (" + species + ") has an ID of " + id);
  }  
}
Code 0-12: Beispiel
2 total rows in table Lion (Panthera leo) has an ID of 0 Hamster Mopsi (Kleines Nagetier) has an ID of 1
Code 0-13: Konsolenausgabe
id,species,name 0,Panthera leo,Lion 1,Kleines Nagetier,Hamster Mopsi
Code 0-14: Datei tabelle2.csv
Alternative zum CSV-Format mit Kommatrennung ist das tsv-Format mit Tab-Trennung.