AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language tstringlist.loadfromstream liest mehr ein, als es soll
Thema durchsuchen
Ansicht
Themen-Optionen

tstringlist.loadfromstream liest mehr ein, als es soll

Ein Thema von DrUArn · begonnen am 26. Nov 2011 · letzter Beitrag vom 28. Nov 2011
Antwort Antwort
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#1

AW: tstringlist.loadfromstream liest mehr ein, als es soll

  Alt 28. Nov 2011, 11:51
Das mit der #0 ist kein Bug, sondern Absicht (ein Feature), wegen [der] Kompatibilität zum PChar.
Wie schön. Ich argumentiere, daß Embarcadero das schon in anderen Fällen als Bug anerkannt und behoben hat und es daher ein Bug sein dürfte.

Du argumentierst, daß himitu meint daß es kein Bug wäre und damit ein Feature wäre, und bleibst ohne Belege.

Wem soll ich jetzt glauben?

Da ich aber eine Konkretisierung meines Belegs schuldig geblieben bin:
http://qc.embarcadero.com/wc/qcmain.aspx?d=60730

Auch die Delphi-Hilfe erwähnt eine angeblich erwünschte Kompatibilität in keinster Weise. Ich nehme hier mal AnsiString, weil der schon älter ist. Dort wird explizit der Support von MBCS/DBCS erwähnt, der aber mit PAnsiChar-Kompatibilität unmöglich wäre, weil PChar-kompatible String-Operationen auf MBCS-Texten in AnsiStrings dann jeweils nur ein Zeichen kopieren würden.
http://docwiki.embarcadero.com/VCL/en/System.AnsiString

Ein Delphi-String abeitet über eine Längenangabe und nicht über eine Endemarkierung.
Genau. Und ist deswegen auch nicht kompatibel (wenn es um #0 geht), beziehungsweise sollte es nicht sein.

Geändert von CCRDude (28. Nov 2011 um 12:04 Uhr)
  Mit Zitat antworten Zitat
DrUArn

Registriert seit: 20. Mär 2003
130 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: tstringlist.loadfromstream liest mehr ein, als es soll

  Alt 28. Nov 2011, 12:56
Hi,

@alle Diskutanten: Danke für Eure Beiträge, hat mir wieder ein (kleines) Stück geholfen, Delphi zu verstehen. Gelernt, dass man manchmal auch probieren muss, was eine Routine tut (@Bummi's letzter Beitrag). - Bloß habe ich dieses Verhalten von load/save..stream mehr zufällig bemerkt - sonst hätte ich wohl noch ein Stück weiter programmiert und mich später sehr gewundert.

Als nochmal Danke

mfG Uwe
  Mit Zitat antworten Zitat
DrUArn

Registriert seit: 20. Mär 2003
130 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: tstringlist.loadfromstream liest mehr ein, als es soll

  Alt 28. Nov 2011, 19:21
Nochmal zum Thema:

nachdem ich in einem abgleiteten tpersistent eine Schreib- und Leseroutine (ähnlich s.oben) erfolgreich eingefügt habe, sehe ich, dass in von tcomponent abgeleiteten Objecten möglich ist, eine Eigenschaft für stringlisten zu definieren mit entsprechenden schon vorhandenen Lese- und Schreibroutinen:

Delphi-Quellcode:
  TStoreComponent_UA = class(TComponent)
  private
    { Private-Deklarationen }
  F_stringlist:tstringlist;
 protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen}
  published
    { Published-Deklarationen }
    property astringlist: TStringList read F_stringlist write F_stringlist;
    constructor create(aowner:Tcomponent);override;
    destructor destroy;override;
    procedure defineproperties(filer:tfiler);override;
    procedure readotherdata(astream:tstream);virtual;
    procedure writeotherdata(astream:tstream);virtual;
  end;
Als ich das unter Turbodelphi mal probiert habe kam die Fehlermeldung "Propertys nur für einfache Typen erlaubt".
Ich dachte immer, property's dürfen nur einfache Typen sein - ist eine tstringlist so was?
Hier funktioniert jedenfalls das Lesen und Schreiben - auch mehrfach - ohne zu meckern. Wie ist das von den Delphi-Programmieren gelöst wurden?

MfG UWE
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:12 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