Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   TStringList nach Widestring konvertieren (https://www.delphipraxis.net/213654-tstringlist-nach-widestring-konvertieren.html)

KarllerntDelphi 2. Sep 2023 15:24


TStringList nach Widestring konvertieren
 
Hallo,

ich habe eine Bibliothek gefunden, mit der ich mails versenden kann.
Nun erwartet die Bibliothek die Übergabe des Mailkörpers (Body), der mehrzeilig ist,
Die Übergabe der Zeilen als "Widestring" und ich habe keine Ahnung wie ich aus der TStringList einen
Widestring mache.
Für die Konvertierung der Strings (Mailadresse etc) habe ich in der Jedibibliothek über die
Funktion "Utf8toWideString" eine Möglichkeit gefunden.

Ich bitte um Hilfe.

Danke

himitsu 2. Sep 2023 15:28

AW: TStringList nach Widestring konvertieren
 
Delphi 10.2?

TStringList = viele Strings
String entspricht UnicodeString (seit Delphi 2009)
UnicodeString = viele WideChar's
WideString = viele WideChar's
und Delphi konvertiert das verlustlos automatisch hin und her.

KarllerntDelphi 2. Sep 2023 15:41

AW: TStringList nach Widestring konvertieren
 
Danke.

ja, 10.2

Nur, jetzt bin ich genauso ratlos wie vorher oder heisst das, ich kann das einfach
durch Zuweisung

var
st : string;
stl : TStringList;
wc : widechar;

wc := st;
oder
wc := stl;

in meiner Delphi-version erledigen. Ich glaube nicht an Wunder ;-)

himitsu 2. Sep 2023 15:44

AW: TStringList nach Widestring konvertieren
 
String ist praktisch sowas wie ein WideString, da ist einfach nichts zu beachten¹ ... das Interne macht Delphi automatisch.

¹) Außer, wenn es um VAR-Parameter geht.

Delphi-Quellcode:
var
  S: String;
  W: WideString;
  L: STringList;

W := S;
W := L[1];
W := L.Text;
...

KarllerntDelphi 2. Sep 2023 15:48

AW: TStringList nach Widestring konvertieren
 
Ich habe jetzt dem Widestring die TStringist zugewiesen, bekomme aber eine Fehlermeldung

[dcc32 Fehler] SAPTMain.pas(550): E2010 Inkompatible Typen: 'WideString' und 'TStringList'

????

Ich dachte das geht so einfach.

KarllerntDelphi 2. Sep 2023 15:53

AW: TStringList nach Widestring konvertieren
 
Sorry, hab nicht richtig gelesen....

Rollo62 2. Sep 2023 15:55

AW: TStringList nach Widestring konvertieren
 
Was passiert denn bei ziel := myStringList.Text; ?

Text proportional gibt die Liste als einen Text zurück, mit Delimiter wie CrLf.

Dennis07 4. Sep 2023 19:45

AW: TStringList nach Widestring konvertieren
 
Zitat:

Zitat von Rollo62 (Beitrag 1526411)
Was passiert denn bei ziel := myStringList.Text; ?

Text proportional gibt die Liste als einen Text zurück, mit Delimiter wie CrLf.

Hast du dir doch damit selbst beantwortet, oder nicht?

Zitat:

Zitat von himitsu (Beitrag 1526408)
String ist praktisch sowas wie ein WideString, da ist einfach nichts zu beachten¹ ... das Interne macht Delphi automatisch.

¹) Außer, wenn es um VAR-Parameter geht.

Joa, quasi. Da gibt es schon einige gravierende Unterschiede, die es zu beachten gilt. Im besonderen, dass du Zeichen in einem WideString nicht einfach über
Code:
s[i]
sicher indizieren kannst. Auch hat WideString keine eigene Referenzzählung, was bedeutet, dass wenn der zugewiesene Wert freigegeben wird, der WideString nicht mehr verfügbar ist (ich denke, das meintest du mit dem var-Parameter).

Rollo62 5. Sep 2023 10:43

AW: TStringList nach Widestring konvertieren
 
Zitat:

Zitat von Dennis07 (Beitrag 1526469)
Zitat:

Zitat von Rollo62 (Beitrag 1526411)
Was passiert denn bei ziel := myStringList.Text; ?

Text proportional gibt die Liste als einen Text zurück, mit Delimiter wie CrLf.

Hast du dir doch damit selbst beantwortet, oder nicht?

So what ??!!
Sagst Du damit also, dass dies bei KarllerntDelphi dann alles funktioniert und er seine Aufgabe, siehe unten, gelöst hat ?

Zitat:

Nun erwartet die Bibliothek die Übergabe des Mailkörpers (Body), der mehrzeilig ist,
Die Übergabe der Zeilen als "Widestring" und ich habe keine Ahnung wie ich aus der TStringList einen
Widestring mache.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:43 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