[gelöst] Abgeschnittene Output-Datei
[gelöst] Abgeschnittene Output-Datei
Hallo zusammen,
ich habe ein Problem mit meiner Output-Datei. Die "Größe" dieser scheint bei mir auf etwa 240 Zeichen begrenzt zu sein. Da das jeweilige Output-Ergebnis leider mehr Zeichen in Anspruch nimmt, wird der Output immer ab einer bestimmten Stelle abgeschnitten. Verändere ich den Quellcode und verzichte beispielsweise auf exakt 5 Zeichen in einer WriteLN-Anweisung (Leerzeichen und Leerzeilen zählen hierbei mit), dann beinhaltet der aktualisierte Output auch exakt 5 Zeichen mehr als der vorherige.
Hier noch einige (möglicherweise) wichtigen Zeilen aus dem Quellcode, die meiner Meinung nach eventuell für das Problem verantwortlich sein könnten. Der Quellcode stammt hierbei aus dem Anhang eines wissenschaftlichen Papers.
type data = array [1..3] of real;
var results : text;
{$N+}
assign(results, 'c:result.txt');
rewrite(results);
Ein großes Danke für Eure Zeit und Hilfe!
ich habe ein Problem mit meiner Output-Datei. Die "Größe" dieser scheint bei mir auf etwa 240 Zeichen begrenzt zu sein. Da das jeweilige Output-Ergebnis leider mehr Zeichen in Anspruch nimmt, wird der Output immer ab einer bestimmten Stelle abgeschnitten. Verändere ich den Quellcode und verzichte beispielsweise auf exakt 5 Zeichen in einer WriteLN-Anweisung (Leerzeichen und Leerzeilen zählen hierbei mit), dann beinhaltet der aktualisierte Output auch exakt 5 Zeichen mehr als der vorherige.
Hier noch einige (möglicherweise) wichtigen Zeilen aus dem Quellcode, die meiner Meinung nach eventuell für das Problem verantwortlich sein könnten. Der Quellcode stammt hierbei aus dem Anhang eines wissenschaftlichen Papers.
type data = array [1..3] of real;
var results : text;
{$N+}
assign(results, 'c:result.txt');
rewrite(results);
Ein großes Danke für Eure Zeit und Hilfe!
Zuletzt geändert von holx am Mo 28. Apr 2014, 13:06, insgesamt 1-mal geändert.
Re: Abgeschnittene Output-Datei
Mit dem bisschen Code kann man nicht viel sagen. Welche Strings verwendest du? Probiere {$H+}
http://wiki.lazarus.freepascal.org/String/de
http://wiki.lazarus.freepascal.org/String/de
Re: Abgeschnittene Output-Datei
Hallo theo, danke für die schnelle Antwort!
Nach abändern auf {$H+} ändert sich der Output leider nicht. Einen String wie von dir beschrieben kann ich im Code nicht finden, ist wie gesagt nur ein abgeschriebener Quellcode. Die Variablen, die im Quellcode letztlich auch ausgegeben werden, sind alle als "real" deklariert. Neben diesen Variablen, die im Ouput ausgegeben werden, soll er nur Text der folgenden Form enthalten:
writeln(results,'lead time data:');
Als Anhang stelle ich gerne noch den vollständigen Code zur Verfügung.
Nach abändern auf {$H+} ändert sich der Output leider nicht. Einen String wie von dir beschrieben kann ich im Code nicht finden, ist wie gesagt nur ein abgeschriebener Quellcode. Die Variablen, die im Quellcode letztlich auch ausgegeben werden, sind alle als "real" deklariert. Neben diesen Variablen, die im Ouput ausgegeben werden, soll er nur Text der folgenden Form enthalten:
writeln(results,'lead time data:');
Als Anhang stelle ich gerne noch den vollständigen Code zur Verfügung.
- Dateianhänge
-
Gamma.txt
- (3.31 KiB) 70-mal heruntergeladen
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: Abgeschnittene Output-Datei
Du solltest die Datei auch schließen, damit geflusht wird.
Oder gleich mit OO arbeiten und TStringList/TStream o.ä. mit SaveToFile benutzen.
Code: Alles auswählen
AssignFile(f,'results.txt');
try
Rewrite(f);
finally
CloseFile(f);
end;
-
- Beiträge: 43
- Registriert: Mo 3. Mär 2014, 16:06
- OS, Lazarus, FPC: Ubuntu Linux 14.04, Windows 7/8, Lazarus 1.2.2, Delphi XE5
- CPU-Target: amd64
- Wohnort: Rostock
- Kontaktdaten:
Re: Abgeschnittene Output-Datei
Was ist denn das für ein Datentyp genau? Habe gerade mal danach gesucht, aber nichts gefunden. Liegt es vielleicht daran? Ansonsten kann ich mir nur erklären, dass du auf einem 8-Bit-Rechner proggst undvar results : text;
pro Datei damit nur 256 ( - paar Steuerzeichen ) Zeichen bleiben =P
....Letzteres ist natürlich nicht ernst gemeint

((2*b) || !(to_be)) ... that's the question.
Re: Abgeschnittene Output-Datei
Scottys Einwand hat die Lösung gebracht!
Nachdem ich durch einfügen der try/finally Abfrage noch einen Laufzeitfehler erhalten hab, hat ein simples
closefile(results);
am Ende des Codes Abhilfe geschafft. Vielen Dank an alle!
Nachdem ich durch einfügen der try/finally Abfrage noch einen Laufzeitfehler erhalten hab, hat ein simples
closefile(results);
am Ende des Codes Abhilfe geschafft. Vielen Dank an alle!
-
- Beiträge: 6907
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: [gelöst] Abgeschnittene Output-Datei
Die einfachste Methode um Text-Dateien zu schreiben und lesen, so wie in diesen Beispiel.Was ist denn das für ein Datentyp genau?
Ausgabe erfolgt im Beispiel auf das Standard-Ausgabegerät.
Code: Alles auswählen
program project1;
var
f: Text;
c:char;
begin
AssignFile(f, '');
ReWrite(f);
WriteLn(f, 'Hello World');
CloseFile(f);
end.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 43
- Registriert: Mo 3. Mär 2014, 16:06
- OS, Lazarus, FPC: Ubuntu Linux 14.04, Windows 7/8, Lazarus 1.2.2, Delphi XE5
- CPU-Target: amd64
- Wohnort: Rostock
- Kontaktdaten:
Re: [gelöst] Abgeschnittene Output-Datei
Ah ok, vielen Dank für die Aufklärung, obwohl das eigentliche Problem ja schon gelöst war! 

((2*b) || !(to_be)) ... that's the question.