Beitrag
von peschmae » 15.06.2008 15:49:25
Ich bin jetzt auch nicht der Pascal-Guru (meine Delphi-Zeit ist schon zehn Jahre her oder so), aber jetzt mal ganz allgemein...
Der Grundsätzliche Vorteil der ersten Formulierung (mit Pointer) ist dass die Grösse des Pointers immer dieselbe ist. D.h. wenn du schnell durch die Liste durchlaufen willst, ohne den String zu betrachten, dann befindet sich der Vor/Rueck-Pointer im Speicher immer an derselben Stelle relativ zum Anfang des TextZeile-Records gesehen.
Hast du nun statt einem String-Pointer einen ganzen String im Record ist das nicht mehr zwingend gegeben, da ja der String in Pascal eine Variable Länge haben kann. d.h. der Offset zwischen Adresse des TextZeile-Records und dem Vor/Rueck-Pointer ist nicht mehr konstant. d.h. die Sache wird potentiell langsamer, muss doch vor dem Auslesen des nächsten Vor/Rueck-Pointers immer erst dessen Offset von irgendwo her ausgelesen werden.
Am Ende kommts aber einfach nur darauf an wie der Compiler das ganze im Speicher anordnet - ich habe keine Ahnung wieviel Freiheit er da in Pascal hat, bei der Anordnung der Variablen eines RECORDs im Speicher (wenn er z.B. die Pointer vor den String in den Speicher stellt (weil er das darf), dann ist die Frage String vs. Stringpointer irrelevant).
MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy