![]() |
Delphi-Version: 5
TStringlist verliert Strings
Hallo,
hat schon mal jemand einer TStringList mit sl.ValueFromIndex[0] := ''; n Leerstring zugewiesen?? jaja, sl.count ist > 0 und die keys stehen drin z.B. 'head='; Values sind alle '' und ja, in dem Fall sollte sich nichts ändern aber Pustekuchen : der gösamte String[0] wird gelöscht !! was soll das? wei's ich n Leerzeichen zu, funzt es sind Leerstrings als Value nicht zulässig? arrrg |
AW: TStringlist verliert Strings
Sieht wohl so aus:
Zitat:
|
AW: TStringlist verliert Strings
Das hat schon seine Richtigkeit, der String wird bewußt von der Klasse gelöscht, weil er keinen Wert hat. Allerdings sollte dir theoretisch dadurch kein Nachteil entstehen, denn ob man den Wert abfragt, wo es keinen Wert gibt, oder wo der String gar nicht da ist, es ergibt in beiden Fällen einen leeren String zurück. Wird der String aber bei so einer Aktion gelöscht, spart das Speicher.
Es ist natürlich Pech wenn man statt mit Values und Names mit ValueFromIndex arbeitet, weil man dadurch den Bezugspunkt verliert. Da es sich aber hier um eine Klasse handelt, dürfte es kein großes Problem geben sich seine eigene TStringList2 davon abzuleiten und diese Kleinigkeit zu überschrieben. |
AW: TStringlist verliert Strings
DEL
EDIT: zu spät gesehen dass es bereits von DeddyH beantwortet wurde ... |
AW: TStringlist verliert Strings
Mann könnts auch (unsauber) so machen:
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var S: String; SL: TStringList; begin SL := TStringList.Create; try //Test-String sl.Add('hallo=test'); //Name des 1. Index auslesen und an gleicher Stelle in SL zurückschreiben SL.Strings[0] := Format('%s=', [SL.Names[0]]); ShowMessage(IntToStr(SL.Count)); //Wert auslesen S := SL.ValueFromIndex[0]; If S = '' then S := '*'; ShowMessage(S); finally FreeAndNil(SL); end; end; |
AW: TStringlist verliert Strings
ich danke allen, die sich an der Diskussion beteiligt haben.
hätte nicht gedacht, das ein simpler Blick in den Quellcode gereicht hätte die Bewertung "Pech" ist für dieses imho undokumentierte Verhalten sehr wohlwollend für mich grenzt eine Funktion, die mit Index als Parameter aufgerufen wird und dann die Indicees der Collection verwursteln kann an Schwachfug egal, ich werd damit umgehen können - und alle Anderen sind hoffentlich gewarnt |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:01 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