Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Perl schreibt nicht in iPad-Datei

30 views
Skip to first unread message

ph2w...@gmx.de

unread,
Jul 25, 2016, 4:00:00 PM7/25/16
to
Hallo Perls.
Mein Prblem ist folgendes:
Unter Perl 5.15 am PC habe ich folgenden Code, der funktioniert:
---------------------------
open (DATEI, ">> test.txt") or die $!; # = haengt hinten den neuen Text an.
print DATEI "Ein Testtext-neue Zeile\n";
close (DATEI);
---------------------------
Ich will in einer vorhandenen Textdatei eine neue Zeile anhaengen.
DaS ist die Aufgabe.
Am PC funktioniert das einwandfrei.
Auf meinem iPad4 ( das habe ich neu ) habe ich die App "Perli$" V. 2.6 installiert
und da funktioniert das gar nicht.
Herausgefunden habe ich, dass man den gesamten Pfad eingeben
muss, um eine Datei zu oeffnen.
Aber, auch mit dem gesamten Pfad speichert "Perli$" nicht in die Datei hinein.

open (DATEI, "+< test.txt") or die $!; ---> funktioniert nicht
open (DATEI, ">> test.txt") or die $!; ---> funktioniert nicht
open (DATEI, "< test.txt") or die $!; ---> loescht den Inhalt der Datei

---------------------------
Der Code auf iPad heisst:
open (DATEI, ">> /var/mobile/Containers/Data/Application/715F0023-8B81-4480-99D7-BB418DDB1EAC/Documents/KeepData/script/test.txt")
or die $!;
print DATEI "Ein Testtext-neue Zeile\n";
close (DATEI);

Nun weiss ich nicht mehr weiter.
Bin Neuling in Sachen Perl.
Kann mir da vielleicht jemand weiterhelfen?

Gruss Bernhard

Megalodon

unread,
Jul 26, 2016, 5:14:08 AM7/26/16
to
Hi Bernhard!

Ich hab keine Appleprodukte, deshalb kann ich Perli$ nicht ausprobieren.

Zu deinem Code kann ich aber was sagen.
open sollte immer mit drei Argumenten benutzt werden:
open(my $fh, ">>", test.txt) or die $!;
Ist schneller und weniger Fehleranfällig.

Versuch doch deshalb mal:
open (my $fh, ">>", "/var/mobile/Containers/Data/Application/715F0023-8B81-4480-99D7-BB418DDB1EAC/Documents/KeepData/script/test.txt")
or die $!;
print $fh "Ein Testtext-neue Zeile\n";
close ($fh);

Ich hoffe das hilft dir,
Wolfgang

ph2w...@gmx.de

unread,
Jul 26, 2016, 2:07:18 PM7/26/16
to
Hallo Wolfgang.
Danke fuer deinen Vorschlag.

Deinen Code werde ich gerne uebernehmen.
Zum Fall:
auf dem iPad funktioniert das leider auch nicht.
Kontrolliert auf dem PC (Perl 5.15) ist das einwandfrei.
Leider schreibt das wieder nicht in die Datei hinein...

Da muss ich wohl weiter suchen.
Danke nochmals
Bernhard

ph2w...@gmx.de

unread,
Jul 26, 2016, 2:34:06 PM7/26/16
to
Hallo Wolfgang.
Habe meine Vermutung vergessen zu sagen.

Mir scheint, dass auf dem iPad entweder ein anderer
Befehlscode verwendet werden muss, oder
Perli$ kann gar nicht in Dateien schreiben...
Vielleicht werde ich das erfahren.

Gruss
Bernhard

Christian Garbs

unread,
Jul 26, 2016, 6:19:32 PM7/26/16
to
Mahlzeit!

ph2w...@gmx.de wrote:

> Mir scheint, dass auf dem iPad entweder ein anderer
> Befehlscode verwendet werden muss, oder
> Perli$ kann gar nicht in Dateien schreiben...
> Vielleicht werde ich das erfahren.

open(...) or die $! sollte ja zumindest eine Fehlermeldung
ausspucken. Hast Du eine Chance, die in irgendeiner Art anzeigen zu
lassen (stdout, Systemlog, Popup, als Mail verschicken)?

Ansonsten wird das wohl wirklich eine iOS-Beschränkung sein.
http://stackoverflow.com/questions/5619719/write-a-file-on-ios sagt,
dass man wohl nur im allgemeinen Dokumenten-Ordner schreiben kann,
nicht im Ordner seiner eigenen App.

Gruß
Christian
--
sub _{print"\n"}_;for(;$s<9;++$s){$_='1E2018201E00001E2018201E00001E2018201'
.'E002020001C2222221400005CA2A2A27C02001C2222221C20003E040202201F2422221C00'
.'242A2A2A12002020001C2222221F20001C2A2A2A0C';while(s;(..);;){printf'%c',hex
$1&1<<$s?40:32}_}$_=':::Christian Garbs:<mi...@cgarbs.de>',y;:;\t;;print;_;_

ph2w...@gmx.de

unread,
Jul 27, 2016, 8:52:24 AM7/27/16
to
Am Mittwoch, 27. Juli 2016 00:19:32 UTC+2 schrieb Christian Garbs:
> Mahlzeit!
>
> ph2w...@gmx.de wrote:
>
> > Mir scheint, dass auf dem iPad entweder ein anderer
> > Befehlscode verwendet werden muss, oder
> > Perli$ kann gar nicht in Dateien schreiben...
> > Vielleicht werde ich das erfahren.
>
> open(...) or die $! sollte ja zumindest eine Fehlermeldung
> ausspucken. Hast Du eine Chance, die in irgendeiner Art anzeigen zu
> lassen (stdout, Systemlog, Popup, als Mail verschicken)?
>
> Ansonsten wird das wohl wirklich eine iOS-Beschränkung sein.
> http://stackoverflow.com/questions/5619719/write-a-file-on-ios sagt,
> dass man wohl nur im allgemeinen Dokumenten-Ordner schreiben kann,
> nicht im Ordner seiner eigenen App.
>
> Gruß
> Christian
> --

Hallo Christian.
Danke dafuer.
Eine Fehlermeldung gibt es nicht. es laeuft normal ab.
Wenn ich die Textdatei loesche, wird sie auch wieder
neu angelegt. Alles normal.Nur in die Datei hinein schreibt
Perl nicht.
Ich kann auch die Datei auslesen und den Inhalt am Bildschirm anzeigen lassen.
Wenn ich die Datei mit ">" oeffne, wird auch der Inhalt geloescht.
Ich kann mit Hand in die Datei schreiben und speichern, erstellen und aendern.
Perli$ tut das eben nicht.
Mit deinem Link bin ich noch beschaeftigt.
Danke
Bernhard

Megalodon

unread,
Jul 28, 2016, 12:28:32 AM7/28/16
to
Hi, Bernhard!

Ich denke Christian hat genau die Erklärung gefunden, die das Problem löst. Es würde Sinn machen wenn eine App nicht überall im System Files schreiben kann. Das erhört die Systemsicherheit. Ändere doch mal den Pfad und schreib in ein File im allgemeinen Dokumentenordner. Wenn das funktioniert, du aber Schreibrechte woanders brauchst, wird dir nichts anderen übrig bleiben als das Gerät zu rooten.

Grüße

ph2w...@gmx.de

unread,
Jul 28, 2016, 5:38:09 AM7/28/16
to
Hallo Wolfgang,
ich denke das mittlerweile auch.
Leider had das Pad fuer die Daten keine "Eigenschaften" oder sowas.
Den Pfad fuer Perl gibt das Programm an.
Speichern unter, damit man den Pfad angeben kann, gibt es nicht.
Es sind von Perli$ 2 Verzeichnisse eingerichtet und die sind fix.
Wo alle anderen Dateien auf dem Pad gespeichert sind, habe ich noch nicht herausgefunden. Man kann die Dateien nur in die Cloud, oder Dropbox verschieben.
Das ist richtig abgeschottet.

Danke dafuer
Bernhard
0 new messages