Dann machst du etwas falsch. Die Instanz muss nicht aktualisiert werden (was du im Übrigen auch gar nicht kannst), denn sie hat den Code den du programmiert hast und wenn der nicht richtig arbeitet, dann funktioniert es halt nicht.Sheldon2012 hat geschrieben:Ich habe mal zur Laufzeit die CSV-Datei umbenannt. Das stört ihn aber gar nicht. Er arbeitet einfach mit den alten Daten weiter.
BeanShell - Textdatei auslesen
Re: BeanShell - Textdatei auslesen
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Unterstütze die Weiterentwicklung von TV-Browser
-
- Plugin-Developer
- Beiträge: 1206
- Registriert: 25 Dez 2012, 07:35
Re: BeanShell - Textdatei auslesen
Das da was falsch läuft, ist schon klar. Aber was? ich finde den Fehler einfach nicht!
Re: BeanShell - Textdatei auslesen
vielleicht solltest du mal den code der fraglichen klasse komplett posten. aus den schnippseln und beim überfliegen werd ich nicht schlau daraus. nur, weil du das file nochmal neu instanziierst (File data = new File(mFile);), werden die daten ja nicht neu eingelesen.
-
- Plugin-Developer
- Beiträge: 1206
- Registriert: 25 Dez 2012, 07:35
Re: BeanShell - Textdatei auslesen
Wenn Du da mal reinschauen möchtest, kannst Du die CSVFileFilterComponent.jar unter Plugins - Sonstige finden.
Da ist der aktuelle Code drin. Dann kann ich Dir sagen, was ich für die Aktualisierung modifizeirt habe. Das sind nur die 3 Stellen, die ich bereits gepostet habe. Das ist vielleicht einfacher, als den ganzen Code zu posten.
Ein neues Klassenfeld
Auruf von readFile() in accept(Program program)
Und der Vergleich der Timestamps in Millisekunden in readFile()
Da ist der aktuelle Code drin. Dann kann ich Dir sagen, was ich für die Aktualisierung modifizeirt habe. Das sind nur die 3 Stellen, die ich bereits gepostet habe. Das ist vielleicht einfacher, als den ganzen Code zu posten.
Ein neues Klassenfeld
Code: Alles auswählen
public class CSVFileFilterComp extends PluginsFilterComponent{
......
private long lastFileModificationTime;
.....
Code: Alles auswählen
@Override
public boolean accept(Program program) {
if(program != null && mCSVData != null) {
readFile();
......
Code: Alles auswählen
private synchronized void readFile() {
String line = EMPTY_STRING;
if (mFile != null){
File data = new File(mFile);
if (data.lastModified() == lastFileModificationTime) {
return;
}
lastFileModificationTime = data.lastModified();
Reader r;
try {
if(data.isFile()) {
r = new InputStreamReader(new FileInputStream(mFile), "UTF-8");
try{
// Read CSV file
br = new BufferedReader(r);
// Clear the map
if (mCSVData != null){
mCSVData.clear();
if (mCSVData.isEmpty()) {
System.out.println("Map is empty!");
}
}
line = br.readLine();
while (line != null){
processLine(line);
line = br.readLine();
}
closeReaders(r,br);
} catch (IOException ioe) {
closeReaders(r,br);
ioe.printStackTrace();
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
Zuletzt geändert von Sheldon2012 am 10 Jul 2015, 19:39, insgesamt 1-mal geändert.
Re: BeanShell - Textdatei auslesen
Wenn ich mich recht entsinne hatten wir doch einen Cache für die Sendungen vorgesehen, in dem der Status der Filterung für eine Sendung gespeichert wird. Der muss natürlich auch gelöscht werden, sonst werden die neu eingelesenen Daten nicht benutzt werden.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Unterstütze die Weiterentwicklung von TV-Browser
-
- Plugin-Developer
- Beiträge: 1206
- Registriert: 25 Dez 2012, 07:35
Re: BeanShell - Textdatei auslesen
Ach je! Du meinst die mPogramStatusMap! Richtig?
Vielen Dank! Das war's!
Vielen Dank! Das war's!
Zuletzt geändert von Sheldon2012 am 10 Jul 2015, 19:47, insgesamt 1-mal geändert.
Re: BeanShell - Textdatei auslesen
Ja, das wird die wohl sein.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Unterstütze die Weiterentwicklung von TV-Browser
-
- Plugin-Developer
- Beiträge: 1206
- Registriert: 25 Dez 2012, 07:35
Re: BeanShell - Textdatei auslesen
Mist! Daran hatte ich nicht gedacht! Vielen Dank für den Hinweis!
-
- Plugin-Developer
- Beiträge: 1206
- Registriert: 25 Dez 2012, 07:35
Re: BeanShell - Textdatei auslesen
Interessant ist, das die Daten auch aktualisiert werden, wenn ein Filter (Sendungstitelfilter) verwendet wird, der die Komponente nicht verwendet.
Das hätte ich eigentlich nicht erwartet. Läuft da im TV-Browser noch etwas im Hintergrund.
Oder liegt das am Scroller im Tab Lieblingssendungen. Wenn ich mich richtig erinnere, hattest Du damals erwähnt, das der permanent Filter aufruft.
Natürlich ist es so noch praktischer. Ich verstehe es aber nicht.
Das hätte ich eigentlich nicht erwartet. Läuft da im TV-Browser noch etwas im Hintergrund.
Oder liegt das am Scroller im Tab Lieblingssendungen. Wenn ich mich richtig erinnere, hattest Du damals erwähnt, das der permanent Filter aufruft.
Natürlich ist es so noch praktischer. Ich verstehe es aber nicht.
Zuletzt geändert von Sheldon2012 am 10 Jul 2015, 20:16, insgesamt 1-mal geändert.
Re: BeanShell - Textdatei auslesen
Warum die accept-Methode nun genau aufgerufen wird, kann ich auch nicht sagen, es wird aber einen sinnvollen Grund dafür geben. Vielleicht verwendest du die Filterkomponente ja woanders, z.B. in Filter-Info-Icons.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Unterstütze die Weiterentwicklung von TV-Browser
-
- Plugin-Developer
- Beiträge: 1206
- Registriert: 25 Dez 2012, 07:35
Re: BeanShell - Textdatei auslesen
Ja, um die gefundenen Sendungen mit einem Icon zu kennzeichnen, verwende ich den Filter dort.