Einzelnen Beitrag anzeigen

Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
378 Beiträge
 
Delphi 11 Alexandria
 
#1

TAnsiStringList - Wie (einfach) ?

  Alt 5. Jul 2018, 20:09
Delphi-Version: 2009
... Antworten wie "braucht doch keiner" ö. ä. werden sicher kommen !
Aber: ... ich (und sicher einige mehr) "wollen/müssen" so was "haben/brauchen".
Warum ?
Ich z.B. hab hier eine (asynchron & kontinuierliche) Datenquelle (DVB-PSI, wem das was sagt...), die mir von kilo- bis megabyte-weise Daten liefern kann, welche immer nur 8-Bit sind.
Nicht das Prob, die intern in einem (Ansi)String zu halten/speichern/laden - aber wenn sich (der Einfachheit halber) die Erforderlickeit von Text-Listen ala TStringList ergibt, ist man etwas in's Gesäß gekniffen - weil alles braucht wegen WideChar die doppelte Kapazität. Im Speicher wie auf der Platte !
Hier geht's eher um (etliche) MByte - das juckt vielleicht die HDD nicht, aber das RAM (und die CPU) !
Programm-Intern umstellen auf AnsiString ist da auch nicht so der Bringer ...

Z. Zt. behelfe ich mich damit, alle eingehenden Daten (AnsiChar) als WideChar in StringListen zu halten, diese als (ursprüngliche) AnsiChar zu speichern und umgekehrt später wieder zu WideChar zu laden.

Das funktioniert zwar so weit tadellos - auf meinem I7-Schläppi mit 16GB RAM (bisher) problemlos ... sollte aber auch aber auch auf 'kleineren Lahm-Kisten' ZEITNAH ohne Speicher-PENG in die Hufe kommen.

TStringList zu TAnsiStringList umbauen ?
Hab ich mir angesehen und versucht ... und mangels Knoff-Hoff & Zeit aufgegeben.

TAnsiStringList als (einfache) TList aus AnsiStrings wäre vielleicht "DIE" Idee ...
... aber wie den AnsiString gezielt (!) für ein "ADD" allokieren und u. a. bei "DELETE" wieder freigeben ... ohne dass es nach x-mal laden/speichern zu (nennswerten) "BummTäTäRä" mangels verfügbarem RAM kommt ???

Mega - Dank im voraus für jede Art von Erleuchtung.

Geändert von TERWI ( 5. Jul 2018 um 20:30 Uhr)
  Mit Zitat antworten Zitat