AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TAnsiStringList - Wie (einfach) ?

Ein Thema von TERWI · begonnen am 5. Jul 2018 · letzter Beitrag vom 6. Jul 2018
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.609 Beiträge
 
Delphi 12 Athens
 
#1

AW: TAnsiStringList - Wie (einfach) ?

  Alt 5. Jul 2018, 21:55
weil alles braucht wegen WideChar die doppelte Kapazität. Im Speicher wie auf der Platte !
Auf Platte in der Regel nicht. Wenn das Standard-Encoding aktiv ist, wird bei SaveToFile auch nur Ansi geschrieben.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

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

AW: TAnsiStringList - Wie (einfach) ?

  Alt 5. Jul 2018, 22:41
@ jaenicke
Zitat:
Intern nutzen sowohl TStringList als auch TList ein simples Array.
... eben genau das hatte ich auch im Sinn ...

Zitat:
Eigentlich ist da nicht viel zu tun... lediglich überall in der Klasse String durch AnsiString ersetzen.
... dito - und alles von TStringList aus Classes in eine eigene Unit kopiert und dann dass "anpassen" versucht ...
... habs wie gesagt (erst mal) aufgegeben. Das übersteigt leider meinen Delphi-Internen Horizont.
... da sind offensichtlich noch etliche andere Klassen im Spiel, die nicht mal eben so on the fly to go zu ändern sind

@ Uwe
Zitat:
Auf Platte in der Regel nicht. Wenn das Standard-Encoding aktiv ist, wird bei SaveToFile auch nur Ansi geschrieben
... ich hab hier nix betreff "Standard Encoding" geändert/eingestellt. (Wie geht/funktioniert das ?)
Ohne mein spezielles "Umdängeln" wird mit widechar auf die Platte geschrieben.
Ich verwende hier TFileStream zu speichern und laden, was m.M.n. betreff der String-Typen aber keine Rolle spielen sollte. Mit Block-Read/Write hatte ich vor Jahren schon ähnliche Probs.

Ooops - zur Info:
Ich verwende hier nicht irgendwelche Speicher-/Lade-Funktionen der TStringList !
Die TSL's sind in meiner App Teile von eigenen Records und müssen aus/in eigenem "Daten-Bestand" eben "händisch" verarbeitet werden.

Geändert von TERWI ( 5. Jul 2018 um 23:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TAnsiStringList - Wie (einfach) ?

  Alt 5. Jul 2018, 23:33
Wenn eh Records verwendet werden dann definiere doch gleich ein Hauptrecord von dem sich Dein Inhalt abbildet.
Delphi-Quellcode:
type
  TKrams = record
    EinInteger: Integer;
    EinString: String;
    EinAnsiString: AnsiString;
  end;

var
  Krams: Array of TKrams; // das zum füllen nutzen
  KramsDatei: File of TKrams; // das fürs Dateihandling falls Du laden & speichern möchtest

mit Read()/Write() Lesen/Schreiben und selber Funktionen schreiben die das Record verwalten.
Das könnte man so mit kleinen Index-Mengen realisieren.
Gruß vom KodeZwerg
  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 00:28 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 by Thomas Breitkreuz