doif - schreiben in ein textfile

Begonnen von the ratman, 20 September 2018, 10:18:54

Vorheriges Thema - Nächstes Thema

the ratman

hiho,

ich steh ein wenig an. um meine kleine multimedia-spielchen fertig zu kriegen, muß ich in 2 verschiedene textfiles daten auslesen und schreiben.
da ich gern so viel wie möglich mit doif löse, würde ich auch das gerne in einem doif lösen.

das auslesen von textfiles und diverse teile davon in verschiedene readings zu schreiben, ist kein problem. das schreiben in ein textfile anscheinend schon *g*.

wo liegt in meinem test mit ein bissi möchtegern-perl der fehler?

([doif_fb2k_FatBastard:titel]) ( { open (testfile, ">/opt/fhem/share/test_schreiben.txt") or die "fehler: $!"; print testfile [doif_fb2k_FatBastard:titel]; close testfile; } )

als fehler kommt { open (testfile, ">/opt/fhem/share/test_schreiben.txt") or die "fehler: $!"; print testfile -; close testfile; }: syntax error at (eval 4791) line 1, at EOF
das print testfile - würde in dem fall stimmen - steht für "kein titel".
hab ich eventuell rechteprobleme? die rechte (eh klar, die files wurden ja auf nem fernen rechner angelegt) stehen bei root und lassen sich auch nicht ändern. fhem hat auf den share allerdings vollzugriff.

gleich zusätzlich die frage, sofern obies mal rennt *g*: wenn ich das so mache, überschreibt mir fhem immer mein textfile bei neuen readings? das wäre sogar so gewollt - ich will ja kein log schreiben, sondern nur für eine übername bestimmter daten in ein auf einem 3. rechner laufendes programm sorgen.

kann man mir helfen?
→do↑p!dnʇs↓shit←

Ellert

Funktionier der Ausführungsteil, wenn Du die DOIF-Syntax durch Perl ersetzt und in der Befehlszeile?

Wenn nicht, ist das kein DOIF Problem.

the ratman

ich glaube auch nicht, dass das ein doif-problem ist - ich bin nur perl-mäßig ohne wirkliches wissen und bei doif ist dann ja auch immer alles ein bissi anders.
drum erhoff ich mir einfach hilfe von jemanden, der perl und doif kennt. perl alleine würde warscheinlich nicht reichen, weil ich dann wieder nicht weiß, was ich fürs doif umbasteln müsste.

ich weiß ja nicht mal, was ich jetzt für die befehlszeile umändern müßte.
rein vom bauch her wäre das dann{ open (testfile, ">/opt/fhem/share/test_schreiben.txt") or die "fehler: $!";; print testfile xxx;; close testfile;; }oder? xxx nur, ums mal einfach zu halten - kommt aber auch nur Unknown command {, try help. und ohne klammernUnknown command open, try help.
→do↑p!dnʇs↓shit←

Ellert

#3
So{ open (testfile, ">/opt/fhem/test_schreiben.txt") or die "fehler: $!";; print testfile "xxx";; close testfile;; } funktioniert es bei mir. Ohne /share - gibts bei mir nicht; xxx in "".

Hat mit DOIF nichts zu tun, wäre aber eine gute Möglichkeit mit dem Perl-Mode anzufangen:
{[doif_fb2k_FatBastard:titel]; open (testfile, ">/opt/fhem/test_schreiben.txt") or die "fehler: $!"; print testfile "[?doif_fb2k_FatBastard:titel]"; close testfile; }

the ratman

menno - is schon klar - ich muß ja auch dem verzeichnis "share" entsprechende rechte beim mounten geben ...

und ja - es wäre an der zeit - für so derartig viel, dass ich dafür mal locker 200 werden sollte *g*
→do↑p!dnʇs↓shit←