[gelöst] Kurioses Verhalten bei der Erstellung eine TXT

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Benutzeravatar
Beach
Lazarusforum e. V.
Beiträge: 60
Registriert: Di 2. Nov 2021, 22:41
OS, Lazarus, FPC: Lazarus 3.0RC1 (rev lazarus_3_0_RC1-10-gfe49fef4fc) FPC 3.2.2 x86_64-win64-win32
CPU-Target: 64Bit
Wohnort: Hunsrück

[gelöst] Kurioses Verhalten bei der Erstellung eine TXT

Beitrag von Beach »

Hallo zusammen,
ich habe die Tage ein kurioses Verhalten festgestellt.
Ich erzeuge eine Datei im TXT Format welche dann von einem anderen Programm ausgewertet wird. Dabei werden vorhandene Daten umgerechnet.
Es gibt dafür ein uraltes DOS Programm, welches ich mit meinem ersetzen wollte. Im März 2020 als ich das geschrieben habe, hat das auch alles tadellos funktioniert.

Die Tage habe ich seit langem das Programm mal wieder benutzt und musste feststellen das in der erstellten Datei scheinbar etwas nicht mehr korrekt ist. Beim Auswerten bekomme ich eine Meldung "Fehler in Zeile xx" sonst nix. Ausgewertet wird nichts.

Zur Fehlersuche habe ich zuerstmal meine DOS Box herausgekramt und habe die gleichen Daten mit dem alten DOS Programm konvertiert. Die hiermit erzeugte Datei lässt sich problemlos öffnen. Auch eine Datei, welche ich damals mit meinem Programm erstellt hatte, lässt sich heute noch problemlos öffnen.

Also habe ich die beiden Dateien (gleiche Ausgangsdaten, einmal mit DOS Programm konvertiert, einmal mit meinem) im TC nach Inhalt vergleichen lassen. Bis auf ein paar Formatierungen (Leerzeichen) und einige Werte die ich weggelassen habe (werden nicht benötigt), ist kein Unterschied auffällig.

Jemand eine Idee was an einer einfachen Text Datei noch unterschiedlich sein kann? Wurde da mal bei Windows etwas geändert im Zusdammenhang mit TXT Dateien?

Alle benutzten Programme sind noch die gleichen wie vor 2 Jahren. Keine Updates während dieser Zeit o.ä.
Mein System ist Win10 Pro 64Bit und wird regelmäßig upgedated.
Aktuell nutze ich Lazarus 2.0.12 r64642
Mit welcher Version ich dasProgramm damals erstellt hatte wei0 ich nicht mehr

Ich habe die Dateien mal auf meine Cloud geladen. Jeweils einmal mit der Endung TXT und (original) mit der Endung STX

111alt ist die in der DOS Box erstellte Version die funktioniert und die 111neu4 ist die mit meinem Programm erstellte, diese gibt den Fehler "Fehler in Zeile 52"

https://next.eine-cloud.de/index.php/s/CdFwMgyZjM26tt2

Vielleicht hat ja jemand einen Idee wo der Fehler liegen könnte.
Zuletzt geändert von Beach am Do 20. Jan 2022, 14:36, insgesamt 1-mal geändert.
MfG
Beach

Shit happens... Always in my shift

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Kurioses Verhalten bei der Erstellung eine TXT

Beitrag von Winni »

Hi!

In Zeile 52 der STX-Textdatei ist kein Fehler.

Oder bezieht sich die Fehlermeldung auf Deinen Source.
Was steht denn da in Zeile 52???

Tipp: Vor readln IOcheck aus und mal das IOresult ausgeben lassen.
Vielleicht bringt das einen weiter.

Winni

Benutzeravatar
Beach
Lazarusforum e. V.
Beiträge: 60
Registriert: Di 2. Nov 2021, 22:41
OS, Lazarus, FPC: Lazarus 3.0RC1 (rev lazarus_3_0_RC1-10-gfe49fef4fc) FPC 3.2.2 x86_64-win64-win32
CPU-Target: 64Bit
Wohnort: Hunsrück

Re: Kurioses Verhalten bei der Erstellung eine TXT

Beitrag von Beach »

Nein, es bezieht sich auf die STX Datei. Nicht auf die Source
Kurioserweise hatte ich das mit anderen Daten auch schon an anderer Stelle/Zeile.
Vor readln IOcheck aus und mal das IOresult ausgeben lassen.
Ähmmm. Bahnhof? :?: :?: :?:
MfG
Beach

Shit happens... Always in my shift

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Kurioses Verhalten bei der Erstellung eine TXT

Beitrag von Winni »

Hi!

Irgenwo hast Du so etwas stehen wie

Code: Alles auswählen

readln (txt,s);
Ersetze das durch

Code: Alles auswählen

var io: Integer;
...
{$I-}
readln(txt,s);
io := IOresult;
writeln (s);
Writeln ('hat IOresult ',io);
{$I+}
Wenn das IOresult Null ist ist alles OK.
Wenn es ungleich Null ist, guckst Du in dieser Tabelle nach:
https://www.freepascal.org/docs-html/r ... esult.html

Winni

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6770
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Kurioses Verhalten bei der Erstellung eine TXT

Beitrag von af0815 »

Ich habe mir deine 111ALT.STX und 111ALT.txt als auch die 'neu' angesehen und verglichen. Diff findet absolut keine Unterschiede. Das bedeutet 111ALT.STX und 111ALT.txt sind identisch.

Zwischen 111ALT.STX und 111neu4.STX gibt es Unterschiede:

*) Es sind die Leerzeichen unterschiedlich angeordnet und auch teilweise mehr Leerzeichen eingearbeitet
*) Bei DEVIATIONS sind die Werte nicht mehr mit 3 Kommastellen konstant ausgewiesen
Run 2 bricht bei 51 ab und zählt nicht mehr hinunter - in der alten Version zählte der bei Werten von 0.000 wieder bis 1 hinab.
Die Anzahl an Zeilen bleibt aber gleich.

Wenn ich mir das so ansehe, würde ich Windows freisprechen :-)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Beach
Lazarusforum e. V.
Beiträge: 60
Registriert: Di 2. Nov 2021, 22:41
OS, Lazarus, FPC: Lazarus 3.0RC1 (rev lazarus_3_0_RC1-10-gfe49fef4fc) FPC 3.2.2 x86_64-win64-win32
CPU-Target: 64Bit
Wohnort: Hunsrück

Re: Kurioses Verhalten bei der Erstellung eine TXT

Beitrag von Beach »

Ok,
Also ich lese die Daten mit

Code: Alles auswählen

 StrListValuesRTA.LoadFromFile(UTF8ToANSI(OpenDialog1.FileName));
in eine Stringlist ein. Und nach dem Umrechnen mit

Code: Alles auswählen

strListCalc.SaveToFile(SaveDialog1.FileName);
aus der Stringlist wieder in die Datei.
Das alles ohne irgendwelche Probleme oder Fehler. Werde trotzdem an diesen Stellen das mit dem IOResult noch ergänzen.

Der Fehler wird erst von dem fremden Programm gemeldet.
Das Kuriose: Als ich das Prgramm im März 2020 erstellt habe, funktionierte alles wie gewollt. Trotz der unterschiede bei den Leerzeichen, den fehlenden Nachkommastellen und dem fehlenden 2. Lauf (der in diesem Fall irrelevant ist und nicht ausgewertet wird)

Falls es die Sache klarer macht:
Ich messe mit einem Laserinterferrometer die Rotationen einer Linearachse als Winkel. Gespeichert werden diese Werte (wenn ich es richtig im Kopf habe) als µm/m in einer Datei. Diese Daten kann ich mir mit der dazugehörigen Software auswerten lassen. Bestandteil der Software ist u.a. ein DOS Programm mit der man diese Winkel in eine Translatorische Abweichung (also die Länge der Gegenkathede) umrechnen kann. Aus der Verkettung dieser Translationen ergibt sich die Geradheit der gemessenen Achse.
Da das DOS Programm nur mittels DOSBOX ans laufen gebracht werden kann und die Bedienung auch jeden Komfort vermissen lässt, wollte ich dieses durch ein Programm mit GUI ersetzen
- Einlesen der Winkelwerte
- Umrechnen der Werte
- Abspeichern in eine Datei
- Aufruf mit der Auswertesoftware des Laserinterferrometer zur Auswertung
Die ersten 3 Punkte funktionieren problemlos. Der 4. Punkt seit kurzem nicht mehr.

Sorry, ich tue mir leider etwas schwer mit solchen Erklärungen.
MfG
Beach

Shit happens... Always in my shift

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6770
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Kurioses Verhalten bei der Erstellung eine TXT

Beitrag von af0815 »

Füge einmal die fehlenden Zeilen von run 2 in die neue Datei ein und mache einen Lauf. Wenn das nicht geht, kopier den ganzen Deviationsteil von der alten Datei in die neue und mach einen Run.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Beach
Lazarusforum e. V.
Beiträge: 60
Registriert: Di 2. Nov 2021, 22:41
OS, Lazarus, FPC: Lazarus 3.0RC1 (rev lazarus_3_0_RC1-10-gfe49fef4fc) FPC 3.2.2 x86_64-win64-win32
CPU-Target: 64Bit
Wohnort: Hunsrück

Re: Kurioses Verhalten bei der Erstellung eine TXT

Beitrag von Beach »

Danke @af0815
Mit den eingefügten Daten des 2 Runs funktioniert es.
Habe wohl irgendwo verbockt das der Run-count statt auf 1 auf 2 gesetzt wird. Hab das einfach nicht gesehen.
Ich habe den Run-count auf 1 gesetzt und dann geht es wie gehabt.....

Edit:
Achso. Das IO Result brachte hier keine Fehler und lieferte immer 0 zurück.
Nur der Vollständigkeit halber.
MfG
Beach

Shit happens... Always in my shift

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6770
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Kurioses Verhalten bei der Erstellung eine TXT

Beitrag von af0815 »

Ich kenne das - oft ist das problem zwischen Monitor und Sessellehne - wenn man selbst den Fehler sucht findet man das garantiert nicht, aufgrund Betriebsblindheit. Wenn ein anderer was sagt, dann wird es plötzlich - eh klar.

Ist für mich nichts neues :mrgreen: mach dir nichts draus.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten