Hallo,
Mein Plan war, mit Hilfe von TV Browser meiner Logitech DiNovo MediaPad Ansteuerung ein paar Sendungsinfos zur Verfügung zu stellen (unter dem Motto Fernseher fernbedienen: was läuft wo?), allerdings (mangels Java Kentnissen
) in einer anderen Programmiersprache. Ich habe den Code etwas abgwandelt um die Sendungsdaten der nächsten X Tage in eine Datei zu exportieren (mittels dem hier geposteten Code), etwa so:
Code: Alles auswählen
package mpad;
import devplugin.*;
import java.io.*;
public class MPad extends Plugin {
private final int AnzahlTage = 3;
public PluginInfo getInfo() {
String name = "MediaPad Exporter";
String desc = "Exportiert Sendungen für den MediaPad Controller";
String author = "MajorTom";
Version version = new Version(0, 1);
return new PluginInfo(name, desc, author, version);
}
public void handleTvBrowserStartFinished() {
ListeAusgeben();
}
public void handleTvDataUpdateFinished() {
ListeAusgeben();
}
public void ListeAusgeben() {
Channel[] Kanaele = Plugin.getPluginManager().getSubscribedChannels();
Date Datum = new Date();
String Ende = System.getProperty("line.separator");
try {
DataOutput Datei = new DataOutputStream(new FileOutputStream("Inhalte.dat"));
for (int d = 0; d < AnzahlTage; d++) {
Datei.writeBytes("[DAT]\t" + Integer.toString(Datum.getDayOfMonth()) + "." + Integer.toString(Datum.getMonth()) + "." + Integer.toString(Datum.getYear()) + Ende);
for (int i = 0; i < Kanaele.length; i++) {
Datei.writeBytes("[KAN]\t" + Kanaele[i].getName() + Ende);
java.util.Iterator it = Plugin.getPluginManager().getChannelDayProgram(Datum, Kanaele[i]);
while ((it != null) && (it.hasNext())) {
Program Programm = (Program) it.next();
String P = Programm.getDescription();
Datei.writeBytes("[ST]\t" + Programm.getTitle() + "\t" + Integer.toString(Programm.getStartTime()) + "\t" + Integer.toString(Programm.getLength()) + "\t" + P + "..." + Ende);
}
}
Datum = Datum.addDays(1);
}
Datei = null; Datum = null;
}
catch (Exception e) {
}
}
}
Wobei "String P = Programm.getDescription(); " schon Debug ist. Das klappt auch alles super, nur dachte ich mir, das die Programmdescription etwas lang werden kann. Deshalb habe ich vorgehabt, etwas wie "Programm.getDescription().substring(0, 32)" einzubauen. Nur gibt er mir dann lediglich das erste Datum, Sender und Programm aus (also einmal die While schleife und das wars). In den catch Zweig scheint er aber nicht zu kommen! Also das geht:
Code: Alles auswählen
Program Programm = (Program) it.next();
String P = Programm.getDescription();
Datei.writeBytes("[ST]\t" + Programm.getTitle() + "\t" + Integer.toString(Programm.getStartTime()) + "\t" + Integer.toString(Programm.getLength()) + "\t" + P + "..." + Ende);
aber sowas hier:
Code: Alles auswählen
Program Programm = (Program) it.next();
String P = Programm.getDescription();
String R = P.substring(1, 10);
Datei.writeBytes("[ST]\t" + Programm.getTitle() + "\t" + Integer.toString(Programm.getStartTime()) + "\t" + Integer.toString(Programm.getLength()) + "\t" + R + "..." + Ende);
oder auch sowas:
Code: Alles auswählen
Program Programm = (Program) it.next();
String P = Programm.getDescription();
int R = P.length();
Datei.writeBytes("[ST]\t" + Programm.getTitle() + "\t" + Integer.toString(Programm.getStartTime()) + "\t" + Integer.toString(Programm.getLength()) + "\t" + P + "..." + Ende);
geht nicht!
Ich krieg hier langsam Würmer in'n Kopp. Kann mir wer helfen?
Besten Dank im Vorraus...