![]() |
Inhalt einer TStringList in ein dynamisches String Array
Um den Inhalt einer TStringList in ein String Array zu kopieren, reicht folgende Funktion:
Delphi-Quellcode:
Die Definition des Typs TStringArray ist notwendig, da Delphi keine arrays als Rückgabewert einer Funktion zu akzeptieren scheint.
type
TStringArray = array of string; function CopyListToArray(List: TStringList): TStringArray; var sCopyArray: TStringArray; nCount: Integer; begin SetLength(sCopyArray, List.Count); for nCount := Low(sCopyArray) to High(sCopyArray) do sCopyArray[nCount] := List.Strings[nCount]; Result := sCopyArray; end; |
Re: Inhalt einer TStringList in ein dynamisches String Array
Es sei noch anzumerken, dass, wenn man die Unit
![]() ![]() |
Re: Inhalt einer TStringList in ein dynamisches String Array
Und das arbeiten erst mit einer lokalen Variable bremmst du Angelegenheit nur.
Delphi-Quellcode:
function CopyListToArray(List: TStringList): TStringArray;
var nCount: Integer; begin SetLength(result, List.Count); for nCount := Low(result) to High(result) do result[nCount] := List.Strings[nCount]; end; |
Re: Inhalt einer TStringList in ein dynamisches String Array
Zitat:
und das Result selber ist auch nur eine "lokale/temporäre" Variable :angel: (Bezüglich der Exceptionbehandlung wird Result ja erst nach Funktionsende an die externe Variable übergeben) Aber stimmt schon, wozu nocheine Variable, wo es doch eh an das Result geht. Allerdings vermute ich hier den Einfluß von C und Co. wo mit Zuweisen des Return-Wertes die Funktion verlassen wird. |
Re: Inhalt einer TStringList in ein dynamisches String Array
Zitat:
|
Re: Inhalt einer TStringList in ein dynamisches String Array
Zitat:
|
Re: Inhalt einer TStringList in ein dynamisches String Array
Zitat:
|
Re: Inhalt einer TStringList in ein dynamisches String Array
Zitat:
|
Re: Inhalt einer TStringList in ein dynamisches String Array
Zitat:
![]()
Delphi-Quellcode:
und wie bekannt ist, zeigt der interne Pointer auf Data ...
Const DynArrayInfo = SizeOf(Header); // Herader = RefCount + ElementCount
MaxLengthOfMyType = (High(Integer) - DynArrayInfo) div SizeOf(TMyType); Type TDynArrayInfo = packed Record RefCount: LongInt; ElementCount: LongInt; Data: packed Array[0..MaxLengthOfMyType-1] of TMyType; End; PS: AnsiString und UnicodeString sind auch nur ein dynamisches Array (allerdings mit noch einem zusätzlichen 0#-Data-Feld am Ende) und WideString ist ein OLEStr [add] Zitat:
|
Re: Inhalt einer TStringList in ein dynamisches String Array
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 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