AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Überprüfen, ob ein String auch ein anderer Datentyp sein kan
Thema durchsuchen
Ansicht
Themen-Optionen

Überprüfen, ob ein String auch ein anderer Datentyp sein kan

Ein Thema von xZise · begonnen am 19. Mai 2006 · letzter Beitrag vom 20. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

Überprüfen, ob ein String auch ein anderer Datentyp sein kan

  Alt 19. Mai 2006, 19:08
Ich habe einen String (z.B. "123,45") und möchte jetzt gucken, ob es ein anderer Datentyp sein kann.
Delphi-Quellcode:
if isFloat(myString) then begin
  if isInt(myString) then
    Showmessage('Ist ein Integer')
  else
    Showmessage('Ist eine Fließkommazahl');
end else
  Showmessage('Dieser String ist kein Integer, und keine Fließkommazahl!');
Funktioniert das so? Und ich möchte auch try-except UMGEHEN.
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Überprüfen, ob ein String auch ein anderer Datentyp sein

  Alt 19. Mai 2006, 19:56
Vielleicht ist val das was Du suchst?

Aus der Hilfe:
Zitat:

Converts a string to a numeric representation.

Unit

System

Category

string handling routines

procedure Val(S; var V; var Code: Integer);

Description

Val converts the string value S to its numeric representation, as if it were read from a text file with Read.

S is a string-type expression; it must be a sequence of characters that form a signed real number.

V is an integer-type or real-type variable. If V is an integer-type variable, S must form a whole number.

Code is a variable of type Integer.

If the string is invalid, the index of the offending character is stored in Code; otherwise, Code is set to zero. For a null-terminated string, the error position returned in Code is one larger than the actual zero-based index of the character in error.

Val performs range checking differently depending upon the setting of the $R compiler directive and the type of the parameter V.

Setting Result

{$R+} An out-of-range value always generates a run-time error.
{$R-} The values for out-of-range vary depending upon the data type of V.
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Überprüfen, ob ein String auch ein anderer Datentyp sein

  Alt 19. Mai 2006, 20:01
TryStrToInt() bzw. TryStrToFloat(). Beide Funktionen geben True zurück wenns funktioniert hat.
Markus Kinzler
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Überprüfen, ob ein String auch ein anderer Datentyp sein

  Alt 19. Mai 2006, 20:04
Hier ein Vorschlag:

Delphi-Quellcode:
var
  lDummyInt : Int64;
  lDummyReal : Extended;
begin
  if TryStrToInt64(myString, lDummyInt) then
    Showmessage('Ist ein Integer')
  else
    if TryStrToFloat(myString, lDummyReal) then
      Showmessage('Ist eine Fließkommazahl')
    else
      Showmessage('Dieser String ist kein Integer, und keine Fließkommazahl!');
end;
Gruß Hawkeye

//Edit: mkinzler war schneller, ich poste es trotzdem wegen der Reihenfolge
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Überprüfen, ob ein String auch ein anderer Datentyp sein

  Alt 19. Mai 2006, 20:19
Danke erstmal dafür...

(Eigentlich dachte ich auch an Bool, Date & Time, aber die gibts auch)

Aber eine frage zu (Try)StrToBool:
Was will Bool als Parameter:
true/false
0/1
o.ä.?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Überprüfen, ob ein String auch ein anderer Datentyp sein

  Alt 19. Mai 2006, 20:24
Du hast schon fast alles aufgezählt

Numerische Werte <> 0 werden als True interpretiert, Werte = 0 als False. Bei nicht-numerischen Werten erfolgt ein Vergleich mit Delphi-Referenz durchsuchenTrueBoolStrs und Delphi-Referenz durchsuchenFalseBoolStrs.

Gruß Hawkeye
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Überprüfen, ob ein String auch ein anderer Datentyp sein

  Alt 19. Mai 2006, 20:27
Hi.

Du kannst die globalen Variablen TrueBoolStrs und FalseBoolStrs (SysUtils) nach deinen Vorstellungen initialisieren.

Grüße vom marabu

// Sorry Hawkeye, aber weil hier immer so lustige Beschwörungsformeln stehen, wie Argh, roter Kasten, wo warst du?, hier mal meine Sicht: In einem so rasanten Forum wie der DP ist es fast schon normal, dass zwischen dem Lesen eines Beitrages und dem Entschluss darauf zu posten ein oder mehrere andere Beiträge eingegangen sind. Diese Beiträge werden zumindest von mir in der Regel erst wahrgenommen, wenn ich meinen eigenen Beitrag abgesendet habe. Der rote Kasten ist ja ganz lustig, aber kennzeichnet nur den Sonderfall, dass zwischen Vorschau und Posten Änderungen am thread statt fanden.

PS: Erschwerend kommt noch hinzu, dass zumindest ich beim Lesen mehrerer Beiträge stets über die History zurückgehe...
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Überprüfen, ob ein String auch ein anderer Datentyp sein

  Alt 19. Mai 2006, 20:28
Achso der ist sozusagen anpassend Wusste ich nicht

Danke an alle (besonders Hawkeye und mkinzler)

@ Klaus: Ich denke nicht, da ich dann immer auhc eine Variable bräuchte ^^
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Überprüfen, ob ein String auch ein anderer Datentyp sein

  Alt 20. Mai 2006, 20:52
So... TryStrToBool(...) erkennt nicht die 0!
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Überprüfen, ob ein String auch ein anderer Datentyp sein

  Alt 20. Mai 2006, 21:08
Zitat von xZise:
So... TryStrToBool(...) erkennt nicht die 0!
Das kann ich nicht bestätigen. Bei Integer-Werte gibt es keine Probleme, bei Real-Werten mußt du natürlich die Ländereinstellungen beachten, d.h. bei einem deutschen Windows wird ein Dezimalkomma erwartet.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:27 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