![]() |
String in Char konvertieren
Hallo,
ich habe ein Problem mit der Umwandlung von Zeichen aus einem String in eine Char Variable.
Delphi-Quellcode:
Woran kann das liegen? Ist mit BDS 2006 kompiliert unter Win 7 64Bit.
var
strZeichen: String; caZ: Char; begin strZeichen:= copy(strNormalText,i,1); caZ:= strZeichen[1]; // hier kommt eine Fehlermeldung. Bis bald Chemiker |
Re: String in Char konvertieren
Mit einem Typecast könnte es klappen:
Delphi-Quellcode:
var
strZeichen: String; caZ: Char; begin strZeichen:= copy(strNormalText,i,1); caZ:= Char(strZeichen[1]); // hier kommt eine Fehlermeldung. |
Re: String in Char konvertieren
Was ist i? Bist du sicher, dass i initialisiert ist? Eine andere Möglichkeit ist, dass strNormalText leer ist.
Edit: Ich würd den Code einfach mal mit dem Debugger durchsteppen, dabei immer auf die werte der Variablen achten. |
Re: String in Char konvertieren
Warum nicht gleich:
Delphi-Quellcode:
Und welcher Fehler kommt? Eigentlich sollte das ohne Fehler compilieren. Und wann kommt der Fehler? beim compilieren oder beim ausführen?
strZeichen:= strZeichen[i];
|
Re: String in Char konvertieren
Hallo Daniel G,
hatte ich schon probiert, funktioniert auch nicht. Bis bald Chemiker |
Re: String in Char konvertieren
Hast du ganz sicher auch genug Zeichen im String gespeichert? Bei mir klappt dein Code wunderbar...(delphi 2005)
|
Re: String in Char konvertieren
DAnn wäre in der Tat mal die Fehlermeldung interessant zu wissen. ;)
|
Re: String in Char konvertieren
Vielleicht klappt
Zeichen:= copy(strZeichen(1,1); |
Re: String in Char konvertieren
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo SirThornberry,
beim Ausführen. Bis bald Chemiker |
Re: String in Char konvertieren
Zitat:
:roll: Chemiker, probier das mal aus:
Delphi-Quellcode:
Ein paar Hinweise:
var
i: Integer; strNormalText, strZeichen: String; caZ: Char; begin i := 1; strNormalText := 'ABCD'; strZeichen:= copy(strNormalText,i,1); caZ:= strZeichen[1]; // hier kommt eine Fehlermeldung. ShowMessage( strNormalText + '[' + IntToStr(i) + '] = ' + caZ ); - Die Indizierung bei Strings fängt bei 1 an und nicht bei 0; - i könnte bei dir nicht initialisiert / außerhalb des Wertebereiches (i < 1 oder i > Length(Str)) sein - strZeichen könnte nach copy leer sein (Grund: voriger Hinweis ODER auch strNormalText ist leer) MfG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 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-2025 by Thomas Breitkreuz