Autor Thema: configDb und FileRead, FileWrite bzw. FileList / FileExist ?  (Gelesen 194 mal)

Offline Wzut

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2688
Udo hat schon öfters hier im Forum geschrieben man solle doch bitte in seinen Modulen für Dateioperationen FileRead & FileWrite benutzen
damit ggf. die Dateien in der DB gespeichert werden.
Ich bin z.Z. dabei eines meiner ersten Module zu überarbeiten und dabei steht auch das Thema Datei IO auf der DoTo.
FileRead bzw FileWrite zu benutzen ist kein Problem, wo ich ein Problem habe, ist das mir eigenlich eine FHEM Funktion FileList fehlt.
Ich muß irgendwann im Modul eine Liste bauen die bereits gespeicherte Dateien enthält, geht ja recht einfach mittels px(ls | grep irgendwas)
Was aber tun wenn die Dateien in der DB liegen ? in configDB findet sich eine Funktion  _cfgDBFileList.
Muss ich mir jetzt eine Funktion FileList selbst bauen die wie FileRead zuerst auf configDBUsed prüft und dann den Weg ls oder  _cfgDBFileList geht
oder gibt es einen einfacheren bereits vorhanden Weg ?

Die Überprüfung ob es eine Datei überhaupt gibt habe ich bisher immer mit -e $filename gemacht, das wollte ich umstellen auf FileRead und den Rückgabewert auswerten
oder gibt es auch hier wieder etwas schöneres ala FileExist ?
Maintainer der Module: MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 22327
Antw:configDb und FileRead, FileWrite bzw. FileList / FileExist ?
« Antwort #1 am: 28 September 2019, 19:21:49 »
Naja das testen ob eine Datei da ist sollte ja einfach gehen in dem Du versuchst sie zu lesen (öffnen)
Wenn Du aber eine Liste von Dateien einlesen willst ist das was anderes. Dann brauchst in der Tat eine Funktion.
Ich habe überlegt ob sowas vielleicht Global Sinn machen würde, also fhem.pl. Aber ich würde behaupten das es eher selten vor kommt das man nicht genau weiß wie die Datei heisst.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://paypal.me/pools/c/8gULisr9BT
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20983
Antw:configDb und FileRead, FileWrite bzw. FileList / FileExist ?
« Antwort #2 am: 29 September 2019, 11:06:52 »
Bisherige Module haben das Problem nicht, da sie aus dem FHEM-Device bestimmen koennen, wie die Datei heisst.

Falls das in deinem Fall keine Alternative ist, dann koennte ich FW_fileList nach fhem.pl kopieren, da wird bereits configDb angesprochen.


Offline Wzut

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2688
Antw:configDb und FileRead, FileWrite bzw. FileList / FileExist ?
« Antwort #3 am: 29 September 2019, 13:29:20 »
THX Rudi, ich habe mir jetzt mal FW_fileList angeschaut und werde im ersten Schritt eine sub FileList bauen die deine Variante mit opendir , readdir plus den unterm Teil mit cfgDB_FW_File 1:1 kopiert. Sortierung brauche ich an de Stelle nicht, da das eh später FHEMWEB für die Drop-Down Listen Ausgabe von set/get komplett übernimmt.
Maintainer der Module: MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

 

decade-submarginal