Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Stress mit Record aber warum? (https://www.delphipraxis.net/90148-stress-mit-record-aber-warum.html)

Chilled86 12. Apr 2007 13:24


Stress mit Record aber warum?
 
Hi Leute ha irgend einen banalen Fehler, kann ihn aber ned finden :oops: Ich will was in ein Record speicher un bekomme immer ein EA
Hier mein Code.... soll ein Test sein, eigentlich will ich nen Rückgabewert drin speichern, aber selbst mit "test" funzt es ned:

Delphi-Quellcode:
type
  THistoryData = record
    FileName: string;
    OldSize, NewSize: int64;
  end;

var
  HistoryData: Array of THistoryData;

.
.
.

HistoryData[i].Filename := 'test';
Würde mich über Hilfe freuen :)

gsh 12. Apr 2007 13:26

Re: Stress mit Record aber warum?
 
hast du des array groß genug?
(arrays fangen beim index 0 an)

Chilled86 12. Apr 2007 13:28

Re: Stress mit Record aber warum?
 
ja dadran liegts nicht habs auch mal nur von 0-1 und von 1-2 zählen lassen, bringt alles nix :(

zecke 12. Apr 2007 13:32

Re: Stress mit Record aber warum?
 
:hi:

Welche Größe hat denn 'i'? Ist dort überhaupt ein Wert gespeichert, sprich <>nil?

Jelly 12. Apr 2007 13:32

Re: Stress mit Record aber warum?
 
Hast du mit SetLength denn überhaupt Speicher reserviert.

Chilled86 12. Apr 2007 13:40

Re: Stress mit Record aber warum?
 
Zitat:

Zitat von zecke
:hi:

Welche Größe hat denn 'i'? Ist dort überhaupt ein Wert gespeichert, sprich <>nil?

i ist variabel, aber in meinem Testfall ist i 20, habs auch einfach schonmal ohne for-Schleife versucht und i durch 0 und 1 ersetzt. -> funktioniert auch nicht


Zitat:

Zitat von Jelly
Hast du mit SetLength denn überhaupt Speicher reserviert.

Nein, muss ich das denn? Kann die Länge nicht variabel sein?

TeronG 12. Apr 2007 13:43

Re: Stress mit Record aber warum?
 
Zitat:

Zitat von Chilled86
Zitat:

Zitat von Jelly
Hast du mit SetLength denn überhaupt Speicher reserviert.

Nein, muss ich das denn? Kann die Länge nicht variabel sein?

Da mann die Länge jederzeit (mit SetLength) verändern kann ist si ja variable ^^


Delphi-Referenz durchsuchenDynamische Arrays
Zitat:

Zitat von OH
Ein Beispiel:

var MyFlexibleArray: array of Real;

Hier wird ein eindimensionales Array mit Elementen vom Typ Real deklariert. Diese Deklaration weist MyFlexibleArray keinen Speicherplatz zu. Um ein Array im Speicher anzulegen, rufen Sie SetLength auf. Nach der vorherigen Typdeklaration weist

SetLength(MyFlexibleArray, 20);

ein Array mit 20 reellen Zahlen und einem Index von 0 bis 19 zu. Dynamische Arrays haben immer einen Integer-Index, der bei 0 beginnt.


fwsp 12. Apr 2007 13:44

Re: Stress mit Record aber warum?
 
die länge ist variabel. allerdings musst immer noch speicher reservieren. und mit setlength sagst du wie viel.

Jelly 12. Apr 2007 13:44

Re: Stress mit Record aber warum?
 
Zitat:

Zitat von Chilled86
Nein, muss ich das denn? Kann die Länge nicht variabel sein?

Eben. Du deklarierst ja ein dynamisches Array. Also musst du zur Laufzeit dafür Sorgen, dass genügend Speicherplatz reserviert wird. Genau das mach Setlength.
Die Indizierung beginnt bei dynamischen Arrays überigens bei 0.

Chilled86 12. Apr 2007 13:51

Re: Stress mit Record aber warum?
 
ich hab jetzt vor der for-Schleife folgendes stehen:
Delphi-Quellcode:
setLength(HistoryData,20);
Jetzt bekomme ich die Meldung: "Im Projekt ... ist eine Exception der Klasse EInvalidPointer ... 'Ungültige Zeigeroperation' aufgetreten.!

Un nu?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz