Hallo Freunde, (oder *innen)
wg. Augen hab' ich übersehen, dass wir schon auf Seite 2 sind.
Eure Diskussion hat nichts mit dem Fehler zu tun. Assign habe ichschon oft benutzt und das ursprüngliche Objekt mit Free frei gegeben und das läuft!
Delphi-Quellcode:
procedure MultiSzToStrings(const MultiSz: PChar;
const Strings: Classes.TStrings);
{Splits out individual strings from given 'MultiSz' strings buffer and adds
each string to the given string list. A MultiSz string is a sequence of #0
delimited strings terminated by an extra #0 character. Does nothing if string
list or MultiSz buffer are nil.}
var
P: PChar; // pointer to strings in buffer
begin
// Do nothing in MultiSz is nil
if not Assigned(MultiSz) then
Exit;
// Scan thru #0 delimited strings until #0#0 found
P := MultiSz;
while P^ <> #0 do
begin
// add string to list
Strings.Add(P);
// move pointer to start of next string if any
Inc(P, SysUtils.StrLen(P) + 1); //hier kracht es bei Durchlauf >= 2.
end;
end;
Die Schleife wird falsch beendet. Siehe Screenshots. Den gesamten Source hat Friedrich ja hoch geladen.
Willie.