Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schreiben von Daten in TStringlist funktioniert nicht (https://www.delphipraxis.net/14894-schreiben-von-daten-tstringlist-funktioniert-nicht.html)

netjoe 17. Jan 2004 16:52


Schreiben von Daten in TStringlist funktioniert nicht
 
Hallo,

ich habe ein Problem mit dem schreiben von Daten in eine TStringlist. Die TStringlist ist teil eines records (laendertyp) wie im Quellcode zu sehen ist.
Ich erzeuge anschließend ein dynamisches Array vom Typ "laendertyp". Wenn ich nun versuche Daten in die Stringliste zu schreiben bekomme ich beim Programmstart eine Speicher Zugriffsverletzung!
Was mache ich falsch? Kann mir jemand helfen?

Hier ist der besagte Code:

Delphi-Quellcode:
unit USammeln;

interface

uses
  Dialogs, SysUtils, classes, Windows, Messages, Graphics,
  Controls, StdCtrls, IdHTTP, Forms, ComCtrls, UGlobal,
  ULokalTrace,syncobjs,USRTrace;

type
  laendertyp = Record
                 land: String;
                 server: TStringlist;
                 zeit: TStringList;
  end;

  TSammeln = class(TGlobal)
  constructor create (r_main : Tobject);
  destructor destroy;

private
...
    CountryListe: Array of laendertyp;
...


procedure Tsammeln.CountryListeFuellen; //jl1
var
  i: Integer;
begin
  SetLength(CountryListe,2);
  for i:=0 to 1 do
    CountryListe[i].land:='us';
    CountryListe[i].server.add('192.168.213.10');
    CountryListe[i].zeit.add('20 ms');
  end;
end;

...

end.

SirThornberry 17. Jan 2004 17:00

Re: Schreiben von Daten in TStringlist funktioniert nicht
 
wie wärs mit
CountryListe[i].server := TStringlist.create
und
CountryListe[i].Zeit := TStringlist.create

und natürlich nicht wieder vergessen das ganze auch freizugeben

Keldorn 17. Jan 2004 17:01

Re: Schreiben von Daten in TStringlist funktioniert nicht
 
Hallo

du mußt server und zeit auch erstmal erstellen (für jedes array-Feld !) und dieses am ende des Programms wieder löschen
außerdem fehlt ein begin und end; du hast CountryListe[i].land:='us'; nur in der Schleife ausgeführt

Delphi-Quellcode:
  for i:=0 to 1 do
    begin //  <-----
      CountryListe[i].land:='us';
      CountryListe[i].server := Tstringlist.create;
      CountryListe[i].zeit := Tstringlist.create;

      CountryListe[i].server.add('192.168.213.10');
      CountryListe[i].zeit.add('20 ms');
    end;   // <------
edit: arrgh zu langsam ;)

Mfg Frank

netjoe 17. Jan 2004 17:08

Re: Schreiben von Daten in TStringlist funktioniert nicht
 
Vielen Dank für die schnelle Hilfe!!!
Das Programm funktioniert jetzt!


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:47 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