AGB  ·  Datenschutz  ·  Impressum  







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

Fehlermeldung

Ein Thema von oldmann · begonnen am 23. Jun 2024 · letzter Beitrag vom 23. Jun 2024
Antwort Antwort
oldmann

Registriert seit: 10. Okt 2008
Ort: Weyhe
152 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Fehlermeldung

  Alt 23. Jun 2024, 11:07
Hallo,
ich bekomme immer eine Fehlermeldung beim Copilieren.

(dcc32 WarnungJ Svw.dpr(114): W10571mphzlte String-Umwandlung von 'ShortStnng' zu 'string'

Und zwar kommt die Meldung zu folgendem Code:
If fileexists(schliessen.Bild_pfad) then

Die Variable "schlessen.Bild_pfad" ist in einem Record wie folgt angelegt:
Bild_pfad:string[255];

Meine Frage lautet:
Wie kann man diese Fehlermeldung vermeiden.

Allerdings läuft das Programm auch mit dieser Fehlermeldung.

Gruss Oldmann
  Mit Zitat antworten Zitat
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
419 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Fehlermeldung

  Alt 23. Jun 2024, 11:21
Hast Du schon mal versucht den ShortString Bild_pfad:string[255] als string zu erklären?
Dann sollte diese Warnung nicht mehr erscheinen.
Norbert

Geändert von EdAdvokat (23. Jun 2024 um 11:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.623 Beiträge
 
Delphi 12 Athens
 
#3

AW: Fehlermeldung

  Alt 23. Jun 2024, 11:23
Einfach nach String casten, in der Richtung sollte das ja komplett ungefährlich sein.
if FileExists(string(DeinPfad)) then…
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.603 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Fehlermeldung

  Alt 23. Jun 2024, 11:23
Das ist keine Fehlermeldung sondern eine Warnmeldung.
Hintergrund ist, dass string[länge] ein sog. Short String ist, der keine Unicode-Zeichen speichern kann. Der Typ string ist bei Delphi seit Version 2009 ein Unicode String. Beheben kann man das auf zwei Weisen:

1. Wenn Du sicher bist, dass Du keine Unicode-Zeichen in diesem String verwendest (wobei: Bei Dateienamen ist das nicht sicher), kannst Du einfach einen Typecast verwenden:

SomeUnicodeString := String(SomeShortString);

2. Wenn das nicht sicher ist, dann solltest Du den Short String im Record als normalen String deklarieren. Dann ist die Meldung weg. Allerdings hängt es davon ab, woher der Record kommt und was damit sonst noch gemacht wird, ob das so einfach geht. Wenn er z.B. in einer Datei als File of Record gespeichert ist, geht das nicht.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Fehlermeldung

  Alt 23. Jun 2024, 13:31
oder abschalten
{$WARN IMPLICIT_STRING_CAST OFF}
oder alles aus ... halt nee, besser nicht
{$WARNINGS OFF}

https://docwiki.embarcadero.com/RADS...'_(Delphi)
https://docwiki.embarcadero.com/RADS...sages_(Delphi)
https://docwiki.embarcadero.com/RADS...nings_(Delphi)



Warum ist diese Warnung eigentlich standardmäßig aktiv?
Und wenn, warum ist sie nicht einfach nur ein "Hinweis"?

ANSI zu Unicode = W1057 IMPLICIT_STRING_CAST (nicht wirklich schlimm ... nur etwas langsamer)
Unicode zu ANSI = W1058 IMPLICIT_STRING_CAST_LOSS (hier können Infos verloren gehn)





PS: Oben ein {$WARN EXPLICIT_STRING_CAST ON} rein
und schon ist es egal, ob U := A; oder U := String(A); ... wirft nun Beides eine Warnung
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (23. Jun 2024 um 13:48 Uhr)
  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 18:41 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