AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Änderung einer Variablen bewirkt Änderung des Feldinhalts
Thema durchsuchen
Ansicht
Themen-Optionen

Änderung einer Variablen bewirkt Änderung des Feldinhalts

Ein Thema von roadrunner-S51 · begonnen am 15. Mai 2013 · letzter Beitrag vom 15. Mai 2013
Antwort Antwort
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Änderung einer Variablen bewirkt Änderung des Feldinhalts

  Alt 15. Mai 2013, 09:29
Hast du einmal Bereichsüberprüfung zur Laufzeit eingeschaltet (ist zumindest in meinem RAD Studio XE2 in der Debug-Konfiguration komischerweise standardmäßig aus)? Vielleicht geht ja da etwas über den Index hinaus und verändert Daten in Strukturen, die zufälligerweise im Speicher direkt daneben liegen...
Angehängte Grafiken
Dateityp: png Projektoptionen.png (54,6 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#2

AW: Änderung einer Variablen bewirkt Änderung des Feldinhalts

  Alt 15. Mai 2013, 09:33
Ändert sich hiermit etwas?
for i := Low(AusFeld) to High(AusFeld) do
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
roadrunner-S51

Registriert seit: 28. Mai 2010
53 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Änderung einer Variablen bewirkt Änderung des Feldinhalts

  Alt 15. Mai 2013, 09:50
@ Der schöne Günther: Habe die Bereichsprüfung eingeschalten. Bringt keine Meldungen oder Fehler.

@ DeddyH: Da ändert sich leider auch nichts. Habe mal einen Screenshot des Feldinhaltes an der entsprechenden Stelle angefügt. Dort wo die kryptischen Zeichen und Steuerzeichen sind, sollte eigenlich stehen '0'.
Angehängte Grafiken
Dateityp: png Screenshot.png (31,9 KB, 23x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Änderung einer Variablen bewirkt Änderung des Feldinhalts

  Alt 15. Mai 2013, 09:53
Ein vorheriges FillChar auf das Array[i] könnte auch schon helfen.
  Mit Zitat antworten Zitat
roadrunner-S51

Registriert seit: 28. Mai 2010
53 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Änderung einer Variablen bewirkt Änderung des Feldinhalts

  Alt 15. Mai 2013, 09:55
@ nahpets: Also alle drei Variablen, sHelp1, sHelp2 und AusFeld.Barcode sind als string deklariert. Damit habe ich die volle Länge eines Strings zur Verfügeng, wobei ich das eigentlich garnicht brauche... Ich werde mal versuchen die Strings zu begrenzen. Warum soll ich mehr Platz verwenden als nötig?

Der String-Typ müsste entsprechend meiner Version AnsiString sein.
Deklaration:
sHelp1 : String;
sHelp2 : String;

Geändert von roadrunner-S51 (15. Mai 2013 um 09:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Änderung einer Variablen bewirkt Änderung des Feldinhalts

  Alt 15. Mai 2013, 09:54
Und den running Gag gleich hinterher, "Was für Char/String verwendest Du?"
Zeig doch mal Deine Type und Var Deklarationen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Änderung einer Variablen bewirkt Änderung des Feldinhalts

  Alt 15. Mai 2013, 09:42
Interessant wäre noch der Abschnitt, indem Du die Größe des ?Array of Record? zuweist, setlength oder wie machst du das?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz