AGB  ·  Datenschutz  ·  Impressum  







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

TEncoding für Delphi 7

Ein Thema von sundance · begonnen am 4. Dez 2014 · letzter Beitrag vom 5. Dez 2014
Antwort Antwort
Benutzerbild von sundance
sundance

Registriert seit: 9. Mai 2006
98 Beiträge
 
Delphi 7 Professional
 
#1

TEncoding für Delphi 7

  Alt 4. Dez 2014, 14:13
Hallo,
ich würde gerne für ein Projekt die Tag-Bibliothek von "3delite" verwenden.
Leider wird mindestens Delphi 2009 vorausgesetzt; hauptsächlich wegen der Unterstützung von UTF mittels der TEncoding-Klasse. Ich habe mir den Code ein wenig angeschaut und festgestellt, dass fast nur die beiden Methoden TEncoding.GetString und TEncoding.GetBytes verwendet werden (und natürlich die Initialisierung der Klasse).
Kennt jemand von euch vielleicht eine "Ersatzklasse" für TEncoding, die ich einfach zusätzlich einbinden kann, ohne die kompletten Units von 3delite umschreiben zu müssen? Für den Anfang würden ja die beiden genannten Funktionen reichen.

Vielleicht bin ich ja einer der letzten D7-Programmierer...
.sundance.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: TEncoding für Delphi 7

  Alt 4. Dez 2014, 15:10
GetBytes: Unicode -> CodePage
GetChars: CodePage -> Unicode

Was ist es denn für ein Encoding?
UTF's gibt's Viele.

UTF8Encode
UTF8Decode
MultiByteToWideChar
WideCharToMultiByte
...
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von sundance
sundance

Registriert seit: 9. Mai 2006
98 Beiträge
 
Delphi 7 Professional
 
#3

AW: TEncoding für Delphi 7

  Alt 4. Dez 2014, 15:39
In der Hauptsache gehts um UTF8, UTF16 und ANSI.
Da lassen sich sicher Funktionen finden, die die Umwandlungen machen.
Aber mit D7 wird sich sowas wohl nicht realisieren lassen (zumindest habe ich keine Ahnung, wie man so eine Klasse definieren sollte):
Delphi-Quellcode:
var
  UTF8Encoding: TEncoding;

UTF8Encoding := TEncoding.UTF8;
...
Bytes := TEncoding.ANSI.GetBytes(Source);
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.477 Beiträge
 
Delphi 12 Athens
 
#4

AW: TEncoding für Delphi 7

  Alt 4. Dez 2014, 17:33
Dafür könnte man eine Klassenstruktur nur mit class-Methoden, class-Felder und class-Property schaffen:
Delphi-Quellcode:
type
  TEncoder = class;
  TEncoding = class of TEncoder;

  TEncoder = class()
  private
    class function GetUTF8: TEncoding;
    class function GetANSI: TEncoding;
  public
    class property UTF8: TEncoding read GetUTF8;
    class property ANSI: TEncoding read GetANSI;
    class function GetBytes(const Source: string): TBytes; virtual; abstract;
  end;

  TEncoderUTF8 = class(TEncoder)
  public
    class function GetBytes(const Source: string): TBytes; override;
  end;

  TEncoderANSI = class(TEncoder)
  public
    class function GetBytes(const Source: string): TBytes; override;
  end;

implementation

class function TEncoder.GetUTF8: TEncodingClass;
begin
  Result := TEncoderUTF8;
end;

class function TEncoder.GetANSI: TEncodingClass;
begin
  Result := TEncoderANSI;
end;

class function TEncoderUTF8.GetBytes(const Source: string): TBytes;
begin
{ToDo: }

end;

class function TEncoderANSI.GetBytes(const Source: string): TBytes;
begin
{ToDo: }

end;
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: TEncoding für Delphi 7

  Alt 4. Dez 2014, 17:47
Dafür könnte man eine Klassenstruktur nur mit class-Methoden, class-Felder und class-Property schaffen:
Und wie willst du dem D7-Compiler class-Felder und class-Property beibringen?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: TEncoding für Delphi 7

  Alt 4. Dez 2014, 18:33
Und wie willst du dem D7-Compiler class-Felder und class-Property beibringen?
Na, wie immer - durch ein Update...
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: TEncoding für Delphi 7

  Alt 4. Dez 2014, 19:26
Klassenfelder (class var) gibt es seit Delphi 2006, aber im Grunde sind das ja einfach nur globale Variablen.
Klassen-Methoden (class procedure) wurden mit Delphi 7 eingeführt und im Grunde sind das halt auch nur einfache Prozeduren.

Das "Source" wird wohl ein UnicodeString sein.
Entweder du nimmst dafür WideString, falls da überhaupt noch viel vom Unicode übrig bleibt ... k.A. wie und wo die (Unicode)Strings dort behandelt werden.


Zwischen Dephi 7 und 2009 wurde vieles eingeführt, zusätzlich noch die Umstellung auf Unicode ........... das lässt sich bestimmt alles durch entsprechende ältere Technologieren ersetzen ... kommt nur drauf an, was alles benötigt wird und auf den Aufwand das alles zu umzuschreiben.
$2B or not $2B

Geändert von himitsu ( 4. Dez 2014 um 19:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von sundance
sundance

Registriert seit: 9. Mai 2006
98 Beiträge
 
Delphi 7 Professional
 
#8

AW: TEncoding für Delphi 7

  Alt 5. Dez 2014, 08:02
Danke an alle für die Beiträge.
Class-Properties sind "Neuland" für mich (D7); aber zumindest verstehe ich jetzt die Konstruktionen im Quelltext von 3delite. Vielleicht läßt sich da ja was Vergleichbares mit Klassenfunktionen realisieren.
Sonst ist leider erheblicher Aufwand wegen der Codeanpassungen fällig...

.sundance.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#9

AW: TEncoding für Delphi 7

  Alt 5. Dez 2014, 08:24
class functions und class procedures kennt D7. Die class Properties sind im Beispiel eh Read-Only, können also durch functions ersetzt werden.
Klassen-Methoden (class procedure) wurden mit Delphi 7 eingeführt und im Grunde sind das halt auch nur einfache Prozeduren.
D6 oder sogar noch früher.
  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 04:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz