Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#11

AW: Änderung einer Variablen bewirkt Änderung des Feldinhalts

  Alt 15. Mai 2013, 09:47
Wie ist AusFeld[i].Barcode := sHelp1 + sHelp2; definiert?
Da Du ungarische Notation benutzt (finde ich klasse, hilft beim Lesen und Verstehen von fremden Quelltexten kolossal), gehe ich bei sHelp1 und sHelp2 von String aus.
Aber was ist Barcode? Kann es sein, dass zufällig bei Feld 156 der Inhalt von sHelp1 + sHelp2 größer wird, als das, was in Barcode hineinpasst? Es könnte in dem Fall passieren, dass im Speicher quasi über das Ende von Barcode hinausgeschrieben wird und das kann dann irgendwo im Speicher sein. Bitte prüfen (testweise) zur Laufzeit nach, ob sHelp1 + sHelp2 in Barcode hineinpassen, wenn nicht, wirf 'ne Exception oder mache irgendeine andere Fehlerbehandlung...

Sollte Barcode ein ShortString sein, dann reichen 256 Byte in sHelp1 + sHelp2 aus, um das Problem zu verursachen. Bei anderen Definitionen von Barcode als String fester Länge o. ä. müssen sHelp1 + sHelp2 in der gemeinsamen Länge zwingend <= der Länge von Barcode sein. Andernfalls kann der von Dir genannte Effekt auftreten.
  Mit Zitat antworten Zitat