AGB  ·  Datenschutz  ·  Impressum  







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

VarToStr gibt leeren String zurück

Ein Thema von Ralf Kaiser · begonnen am 4. Mär 2021 · letzter Beitrag vom 4. Mär 2021
Antwort Antwort
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#1

VarToStr gibt leeren String zurück

  Alt 4. Mär 2021, 11:10
Delphi-Version: 10.3 Rio
Hallo zusammen,

Ich habe eine Variable vom Typ "Variant" die einen String enthält. Das habe ich mit dem Debugger geprüft.

Wenn ich diese Variable mit "VarToStr" einem String zuweise ist dieser String leer.

Die Routine "VarType" liefert für die Variable den Wert 256 (das sollte also wirklich ein String sein) Außerdem liefert "VarIsStr" true zurück. Trotzdem ist der String nach der Umwandlung leer.

Hat jemand eine Idee, woran das liegen könnte?

[EDIT]: Delphi Version ist Rio

Danke schon mal,
Ralf
Ralf Kaiser

Geändert von Ralf Kaiser ( 4. Mär 2021 um 11:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: VarToStr gibt leeren String zurück

  Alt 4. Mär 2021, 12:13
varString ist ein AnsiString (außer im NEXTGEN)

Du könntest deinen Variant nach TVarRec casten, dann siehst ganz genau was drin ist.

Eigentlich wird beim auslesen in einen AnsiString gecastet und es kann keine Verluste geben,
außer beim anschließenden Cast nach String/UnicodeString (Result), welcher aber auch verlustlos sein sollte.
$2B or not $2B
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: VarToStr gibt leeren String zurück

  Alt 4. Mär 2021, 12:18
Es gibt auch VarToWideStr()
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: VarToStr gibt leeren String zurück

  Alt 4. Mär 2021, 12:58
Es gibt auch VarToWideStr()
Liefert ebenfalls einen leeren String zurück.

Ich vermute mittlerweile, dass die Ursache bei der Zuweisung des Variants liegt. Der sollte nämlich "eigentlich" VarType 258 (unicode) haben, zumindest hat ein Variant diesen Typ wenn man einen normalen String direkt zuweist ( myVar := 'TEST' )
Ralf Kaiser
  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 19:14 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