AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Stress mit Record aber warum?

Ein Thema von Chilled86 · begonnen am 12. Apr 2007 · letzter Beitrag vom 12. Apr 2007
Antwort Antwort
Seite 2 von 2     12
fwsp
(Gast)

n/a Beiträge
 
#11

Re: Stress mit Record aber warum?

  Alt 12. Apr 2007, 13:58
Zitat von Chilled86:
Un nu?

greifst du irgendwo auf einen ungültigen bereich zu? alles was keinen index zwischen 0 und 19 hat weist ins nirvana und schmeißt nen fehler.
  Mit Zitat antworten Zitat
Chilled86

Registriert seit: 8. Apr 2007
Ort: Quierschied
17 Beiträge
 
Delphi 2005 Personal
 
#12

Re: Stress mit Record aber warum?

  Alt 12. Apr 2007, 14:01
Wie gesagt, ich mache nur das was oben steht. Wenn ich dann die Zeile auskommentiere, in der ich 'test' ins Array schreiben will, ist alles in Butter.
Sven Schellberg
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Stress mit Record aber warum?

  Alt 12. Apr 2007, 14:02
Hast du überprüft, ob i auch wirklich nur Werte zwischen 0 und 19 annehmen kann?
  Mit Zitat antworten Zitat
Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#14

Re: Stress mit Record aber warum?

  Alt 12. Apr 2007, 14:04
Delphi-Quellcode:
type
  THistoryData = record
    FileName: string; // oder größe gleich reservieren mit filename: string[50]
    OldSize, NewSize: int64;
  end;
var
  HistoryData: array of THistoryData;
  i: Integer;
  s: string;
begin
  SetLength(HistoryData, 20);
  for i := 0 to Length(HistoryData) -1 do
    HistoryData[i].FileName := Format('Filename #%d', [i]);
  for i := 0 to Length(HistoryData) -1 do
    s := s + HistoryData[i].FileName + #13#10;
  ShowMessage(s);
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#15

Re: Stress mit Record aber warum?

  Alt 12. Apr 2007, 14:08
Nicht
for i := 0 to Length(HistoryData) -1 sondern
for i := low(HistoryData) to High(HistoryData)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: Stress mit Record aber warum?

  Alt 12. Apr 2007, 14:11
Alternativ kannst Du acu anstelle des Array eine TList nehmen.
Die hat Methoden zum hinzufügen und löschen von Elementen.
Und auch eine Eigenschaft die die Größe der Liste beinhaltet.

Der Vollständigkeit halber ergänzt:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
   ....
  private
    { Private-Deklarationen } 
    type
      PHistory = ^THistory
      THistoryData = record
        FileName: string;
        OldSize, NewSize: int64;
      end;
    HistoryData : PHistory;
    HistoryList : TList;
  public
    { Public-Deklarationen } 
  end;
erstellen von Einträgen:
Delphi-Quellcode:
new(HistoryData);
HistoryData^.FileName:='...';
HistoryList.add(HistoryData);
Ausgabe von Einträgen:
Delphi-Quellcode:
for i:=0 to HistoryList.count -1 do
  begin
    HistoryData:=HistoryList.items[i]
    ShowMessage(HistoryData^.FileName);
  end;
Löschen der Liste:
Delphi-Quellcode:
While HistoryList.count > 0 do
  begin
    HistoryData:= HistoryList.items[0];
    Dispose(HistoryData);
    HistoryList.delete(0);
  end;
HistoryList.free;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Chilled86

Registriert seit: 8. Apr 2007
Ort: Quierschied
17 Beiträge
 
Delphi 2005 Personal
 
#17

Re: Stress mit Record aber warum?

  Alt 12. Apr 2007, 15:03
Zitat von Matze:
Hast du überprüft, ob i auch wirklich nur Werte zwischen 0 und 19 annehmen kann?
Ja hab ich, hat damit aber absolut nix zu tun da der Fehler ja auch kommt, wenn ich das Array ohne for-Schleife beschreibe
Sven Schellberg
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: Stress mit Record aber warum?

  Alt 12. Apr 2007, 15:08
Das Beispiel von ErazerZ mit Jellys Änderungen funktioniert bei mir ohne Probleme (mal die komplette Unit):

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    type
      THistoryData = record
      FileName: string;
      OldSize, NewSize: int64;
    end;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  HistoryData: array of THistoryData;
  i: Integer;
  s: string;
begin
  SetLength(HistoryData, 20);

  // Array füllen
  for i := Low(HistoryData) to High(HistoryData) do
    HistoryData[i].FileName := 'Hallo';

  // Array ausgeben
  for i := Low(HistoryData) to High(HistoryData) do
    s := s + HistoryData[i].FileName + #13#10;
  ShowMessage(s);
end;

end.
  Mit Zitat antworten Zitat
Chilled86

Registriert seit: 8. Apr 2007
Ort: Quierschied
17 Beiträge
 
Delphi 2005 Personal
 
#19

Re: Stress mit Record aber warum?

  Alt 12. Apr 2007, 15:13
Thema erledigt. Danke Leute, dass ihr euch so viel Zeit für meine Unfähigkeit genommen habt

Hab obendrüber in ner Schleife "begin ... end" vergessen, dadurch ist dort was schief gelaufen und hat mir irgendwie alles möglich im Programm versäbelt


DANKE NOCHMAL AN ALLE!!!
Sven Schellberg
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:46 Uhr.
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