Datei speichern...Die Zweite

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
marwer
Beiträge: 39
Registriert: 20 Mai 2024, 15:45

Datei speichern...Die Zweite

Beitrag von marwer » 01 Dez 2024, 12:50

Screenshot 2024-12-01 123657.png
Screenshot 2024-12-01 123657.png (278.83 KiB) 1529 mal betrachtet
Hallo allerseits
In der Datei sss steht (über die Tastatur eingegeben):
aaa
bbb
ccc
Beim Start des Programms wird (wie erwartet) ausgegeben:
aaa
bbb
ccc
aaa
bbb
cccTest
/siehe screen shot.
ABER:
Beim wiederholten Durchlauf kommt das selbe Ergebnis!? Da ja "Test" in der Datei angehängt sein sollte würde ich erwarten:
aaa
bbb
cccTest
aaa
bbb
cccTestTest

Die Datei sss.txt enthält auch (nicht einmal) das Wort "Test" Woher kommt dann das Wort "Test" auf der Konsole bzw. warum steht das Wort nicht in der Datei?
Übrigens: Im Debug-Mode steigt der Debugger in Zeile 7 aus !?

Spannende Grüße
Martin
Dateianhänge
Screenshot 2024-11-30 165944.png
Screenshot 2024-11-30 165944.png (161.68 KiB) 1529 mal betrachtet

nobi
Beiträge: 16
Registriert: 30 Jun 2024, 15:24

Re: Datei speichern...Die Zweite

Beitrag von nobi » 01 Dez 2024, 16:48

Hallo,

ich beschäftige mich derzeit ebenfalls mit dem Thema Datei, allerdings nicht als txt-datei, sondern als json-Datei.
Ich konnte erfolgreich einen Schlüssel „status“ mit Wert =0 ändern und in die Datei zurückschreiben. Das geänderte Ergebnis sehe ich aber in der Datei erst, wenn ich die Daten manuell mit dem Down-Pfeil links der Lupen heruntergeladen habe. Per Programm scheint das nicht zu funktionieren, hab es aber nicht versucht.
Nach Herunterladen werden die Daten in der Datei allerdings nicht mehr in der ursprünglichen Struktur angezeigt.
Vielleicht konnte ich weiterhelfen.

Viele Grüße
Norbert
Screenshot 2024-12-01 164519.jpg
Screenshot 2024-12-01 164519.jpg (23.58 KiB) 1476 mal betrachtet

Benutzeravatar
phg-berlin
Beiträge: 49
Registriert: 12 Mär 2024, 20:22

Re: Datei speichern...Die Zweite

Beitrag von phg-berlin » 10 Dez 2024, 19:01

Hallo,

ich habe den Fehler an den Service gemeldet und auf Bitten von Herrn Steiger ein entsprechendes Testprogramm erstellt. Zur Erinnerung: Schreibvorgänge in eine Datei werden so lange erfolgreich durchgeführt, solange das Programm nicht erneut vom PC gestartet wird. Dann wird auch der Inhalt der Datei überschrieben.

Hier die Antwort von Herrn Steiger:
Hallo Herr Günther,

vielen Dank für das Beispielprogramm. Ich habe das geschilderte Problem nachvollzogen und verstehe Ihre Problematik für das Beispiel, was Sie erstellt haben.

Leider ist es hier nicht nur ein Bug, sondern auch ein Feature, weil es auch Anwendungsfälle gibt, wo genau das gegensätzliche Verhalten gewünscht wird.

Stellen Sie sich vor, Sie schreiben ein Programm, bei dem die Default-Werte in einer Datei gespeichert werden und nur diese Default-Werte sollen dann verwendet werden, wenn Sie das Programm auf den Controller über ROBO Pro Coding aufspielen.

In einem Punkt gebe ich Ihnen Recht, beim Ausführen des Programms muss auf jeden Fall noch eine Warnung kommen, wenn die Datei überschrieben wird, weil sonst der Benutzer der App nicht merkt, dass die Datei überschrieben wurde. Das habe ich bereits als Ticket bei uns im System angelegt.

Es gibt 2 mögliche Lösungen für Ihr Problem:

Lösung 1: Mit dem Übertragen des Projektes wird das komplette Projekt (auch alle Dateien unter /data/ überschrieben). Dies passiert immer wenn Sie das Programm aus ROBO Pro Coding starten. Wenn Sie dies verhindern wollen, so müssen Sie zunächst die Datei im Editor downloaden/retten und erst dann das Projekt auf den Controller übertragen, indem Sie dieses Programm mit der geretteten Datei starten:

Lösung 2: Verwenden Sie nicht den Projektpfad, sondern z.B. einen anderen Pfad in Ihrem Controller. Dann wird die Datei nicht überschrieben.

Freundliche Grüße

Alexander Steiger

Entwicklung
Die Argumentation überzeugt mich nicht sondern wirkt wie eine Ausrede.
Die erste Lösung finde ich eine Zumutung; wie die zweite funktionieren soll, ist mir unklar. Es gelingt mir jedenfalls nicht, auf eine Datei ausserhalb deds Projektpfades zuzugreifen.
Übrigens: Das gleiche Problem besteht ja auch bei den Importen: Ein Zugriff auf eine eigene Funktionssammlung ausserhalb des aktuellen Projektpfades ist ja ebenfalls nicht möglich. Damit ist ja - anders als in der Hilfe beschrieben - eine projektübergreifende Nutzung von Funktionen nicht möglich. Gerade in der Ausbildung halte ich die Möglichkeit der Modularisierung aber für sehr sinnvoll.

Aber das ist wohl zu viel verlangt. Und der Weg, auf eine reine Python-Lösung auszuweichen ist bisher - mangels Dokumentation - ja auch versperrt. Das Label "Made in Germany" ist damit auch irreführend.

Frustriert: Horst

marwer
Beiträge: 39
Registriert: 20 Mai 2024, 15:45

Re: Datei speichern...Die Zweite

Beitrag von marwer » 10 Dez 2024, 21:09

ich bin ebenfalls mit Herrn Steiger in Kontakt. ich werde seine ausführliche Antwort auswerten unD mich dann nochmals melden

werli
Beiträge: 60
Registriert: 25 Apr 2024, 10:42

Re: Datei speichern...Die Zweite

Beitrag von werli » 11 Dez 2024, 13:28

Moin,

die schlichte und viel zu knappe Beschreibung zu "RoboPro-Coding" bietet dem Anwender die Möglichkeit eigene Wünsche und Erwartungen einzubringen und dem Hersteller die Möglichkeit Fragen und Probleme durch passende "WörkAraunds" schön zu reden.

Für mich ist die Erklärung von H. Steiger nachvollziehbar.
Man muss klar unterscheiden zwischen den Möglichkeiten eine per RoboPro-Coding programierte Anwendung zu starten.

Variante 1 - Start der Anwendung per PC:
Mit "Start" der RPC-Anwendung werden ALLE Programmcode- und Vorgabe-Daten in Controller-Code übersetzt, zum Controller übertragen, dort gespeichert und zur Ausführung gestartet. Die Steuerungsgewalt liegt zwar beim PC, aber die Anwendung läuft auf dem Controller und auch erzeugte Daten werden auf dem Controller gespeichert (ich habe noch nicht versucht, Daten aus einer Anwendung per Controller direkt auf den PC zu schreiben - ist das überhaupt möglich?)
Wird die Anwedung per PC erneut gestartet, dann passiert der gleiche Ablauf wieder, aller Code wird übersetzt, übertragen und ausgeführt - natürlich mit den Daten, die auf dem PC abgespeichert sind. Zuvor schon erstellte gleichnamige Dateien werden "überschrieben" (u.U. wird sogar das Verzeichnis für die Anwendung vorab gelöscht?)

Variante 2 - Start einer auf dem Controller gespeicherten Anwendung:
Nun läuft die Anwendung ohne Verbindung zum PC auf dem Controller und benutzt natürlich die dort vorhandenen (abgespeicherten) Daten.

Möchte man Daten für spätere Nutzung erhalten, dann müssen diese natürlich separat "versteckt" werden, so dass sie nicht durch erneute Übertragung der Anwendung vom PC überschrieben werden, oder sie müssen manuell in die Default-Daten übertragen werden. Nicht nur an dieser Stelle der Dokumentation dominiert die "schwäb'sche Sparsamkeit".

Mir fehlt eigentlich ein "vorbereitetes" Verzeichnis, in dem ich als Anwender eigene Daten permanent ablegen und erhalten kann.
lg werli

Benutzeravatar
phg-berlin
Beiträge: 49
Registriert: 12 Mär 2024, 20:22

Re: Datei speichern...Die Zweite

Beitrag von phg-berlin » 11 Dez 2024, 15:11

Hallo Werli,

das ist mir jetzt alles ziemlich peinlich: "Wer lesen kann ist klar im Vorteil". Anstatt den Block "Datei -V ..." zu benutzen muss nur einfach der Block "Datei pfad ..." benutzt werden. Der sollte dann ausserhalb des Projektpfades liegen. Und alles funktioniert wie erwartet. Ansatzweise steht das auch in der Hilfe. Was dort fehlt ist der Hinweis, dass die Datei aus dem Projektpfad beim erneuten Laden des Programms vom PC ohne Hinweis überschrieben wird.

Also: Alles gut.

Deinen Wunsch nach einem "vorbereiteten" Verzeichnis für eigene Dateien verstehe ich nicht. Das kann doch durch ein selbst erstelltes leicht realisiert werden. Das einzige Problem stellen doch nur die Eigenschaften dar: Verzeichnis und Datei müssen im Bedarfsfall beschreibbar gemacht werden. Über WinSCP oder ähnliche Programme ist das aber leicht machbar.

Horst

Benutzeravatar
fishfriend
Beiträge: 2071
Registriert: 26 Nov 2010, 11:45

Re: Datei speichern...Die Zweite

Beitrag von fishfriend » 11 Dez 2024, 21:11

Hallo...
OK, ich glaube ich habe nun das ganze Problem verstanden.
Ich habe es so nie ausprobiert, da ich davon ausgegangen bin, das bereits erstellte Dateien im Projektverzeichniss -immer- erhalten bleiben.
Im Grunde könnte man das so ausprobieren, das man beim zweiten mal (Speichern) den Dateinamen der Daten mal ändert und dann mal nachschaut ob die erste Datei noch vorhanden ist oder nicht.
Dann ist noch die Frage, wenn wirklich ein anderes Verzeichniss oder Unterverzeichniss für die Daten angelegt wird, warum nicht dann auch dieses vorher gelöscht wird.
Der Hintergrund dabei ist wohl, wie die Daten vom PC zum TXT 4.0 übertragen werden und ob da gegebenenfalls eine Art Fehler drinn ist.
Mir stellt sich die Frage, ob ein normaler User davon ausgehen kann ob nur die "aktuellen" Dateien im Projektordner sind oder ob sich da eventuell Dateileichen ansammeln und eventuell eine Art Überlauf der Dateinamen in einem Verzeichniss erzeugen.
Ich muss aber zugeben, dass ich das auf der Betriebssystemebene nicht weiss, wie das genau bei TXT 4.0 abläuft.

Ich denke man muss da ein paar Sachen testen. Betrift es z.B. nur das "obere" Projektverzeichniss oder die ganze Verzeichnissstrucktur im Projektverzeichniss usw..
Sprich, muss man um so eine Datei zu sichern, sie in einem parallelen Verzeichniss zum Projekt speichern oder so.
Leider, kann ich gerade genau das nicht testen. Eventuell könnte das jemand anders machen.

Eventuell noch ein anderer Weg (ist aber vom Betriebssystem abhängig):
Ich meine, dass Dateien nicht so einfach gelöscht/überschrieben werden, sondern erst mal in einen anderen Ordner kopiert werden.
Je nach Zugriff, "könnte" man auf die Datei dann zugreifen. -Könnte- dabei mit wohl noch mehr """"...
Mit freundlichen Grüßen
Holger
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

werli
Beiträge: 60
Registriert: 25 Apr 2024, 10:42

Re: Datei speichern...Die Zweite

Beitrag von werli » 11 Dez 2024, 22:34

Moin,

ich bin kein Linux-Fuchs. Ich habe schon mal mit "Putty" den Inhalt des TXT40 betrachtet, aber da finde ich mich nicht zurecht mit den Zugriffsrechten usw.... und ich habe auch keine Lust mich da reinzuarbeiten.

Habe selbst schon mal mit der Pfaderstellung rumgespiel. Weil ich dann die erstellten Pfade nicht gefunden habe und auch keine Möglichkeit erkannt habe, diese per Coding wieder zu löschen, gehe ich den "brutalen" Weg und "säubere" meine TXT40-Sammlung durch Zurücksetzen auf Werkseinstellung.
(So habe ich schon ein paar mal verliehene Controller, die sich nach Rückgabe merkwürdig verhalten haben, wieder in die richtige Spur gebracht.)

Aus diesem Grund fände ich es gut, wenn es für selbst erstellte Pfade und Dateien ein fixes Verzeichnis geben würde, welches dann über einen Copding-Befehl gezielt gelöscht werden könnte. Ich vermute, über die direkte Python-Programmierung kann dieses machen? Aber ohne brauchbare Beschreibung zu den Controllerinternas findet man nur per "Try and Error" heraus, was möglich ist und was nicht.
Ich könnte mir gut vorstellen, dass man den Speicher im Controller durch Langzeit-Messprotokolle vollschreiben kann, keine Ahnung wieviel Platz da zur Verfügung steht und was passiert, wenn der freie Speicherplatz ausgereizt ist.
lg werli

Antworten