TP6 - Fehlerhafte Stringverarbeitung

04/08/2009 - 18:50 von Martin Freiberg | Report spam
Hallo,

Kann es sein das die Stringverarbeitung in TP6 unter
bestimmten Umstànden Fehlerhaft arbeitet, und Teils
gar Müll produziert?


Beispiel aus den Gedàchnis zitiert:


unit Tools;
interface;
...

implementation;

var
Datei : file;
...

procedure foo (Name:string);
begin
assign (Datei,Name);
reset (Datei);

end;

begin
end.



program Lala;

uses Tools;

const
cfname = 'config.cfg';
...

procedure bar;
begin
foo (cfname);
...
end;


begin
...
end.


An Stelle der ... sind weitere Programmteile - logisch. :-)

Kann es sein das ab einer bestimmten Programmgröße der als
Konstante definierte String nicht korrekt übergeben wird und so die
Prozedur foo auf die Nase fàllt?
Genauso wenn ich cfname : string[12] = 'config.cfg' definiere.

Wenn ich hingegen cfname als normale variable definiere und dann
dieser den Inhalt zuweise ...

var
cfname : string[12];

...

cfname := 'config.cfg';


... dann funktioniert das Programm korrekt.
Ist das ein bekannter Fehler in TP6?

(Ja, die Stringübergabe ist so nicht optimal, aber wenn ich im
Prozedur-Kopf (var Name : string) definiere, dann kann man
als Parameter keine Konstanten zuweisen, nur noch String.)


Gruß
Martin
 

Lesen sie die antworten

#1 Michael Fuchs
04/08/2009 - 21:36 | Warnen spam
Martin Freiberg schrieb:
Kann es sein das ab einer bestimmten Programmgröße der als
Konstante definierte String nicht korrekt übergeben wird und so die
Prozedur foo auf die Nase fàllt?
[...]
Ist das ein bekannter Fehler in TP6?



Höre ich zum ersten Mal davon. Beim schnelle drüberschauen sit mir auch
nix seltsames aufgefallen. Und manchmal geht es, sagst du?

Schonmal mit FreePascal ausprobiert? Zwingt dich etwas an TP6 festzuhalten?

(Ja, die Stringübergabe ist so nicht optimal, aber wenn ich im
Prozedur-Kopf (var Name : string) definiere, dann kann man
als Parameter keine Konstanten zuweisen, nur noch String.)


Logisch, er möchte ja dann auch eine Variable haben.


mfg
Micha
Meine Wanderungen durch Realitàt und Cyberspace

auf --> http://www.michael-fuchs.net <--

Ähnliche fragen