Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Prüfen ob String=integer oder float oder tdate usw...


Terminator - Mo 12.12.05 13:17
Titel: Prüfen ob String=integer oder float oder tdate usw...
Hallo,
ich habe eine StringListe die ich sotieren möchte.
nun möchte ich wissen ob in der liste integer, float oder datumswerte sind.

Klar momentan sind ja alles strings, da liegt auch das problem wie bekomme ich heraus was für "typen" hinter meiner stringlist sind.


Kroko - Mo 12.12.05 13:22

Testen :wink:


Narses - Mo 12.12.05 13:25

Moin!

Da bleibt dir nix anderes übrig, als die Strings versuchsweise umzuwandeln, z.B. mit StrToFloat/Def oder StrToInt/Def... :wink:

cu
Narses


chrisw - Mo 12.12.05 13:29


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
function IsIntegerRealOrDate (s:String) : Integer;
begin
  Result := 0;
  try
    StrToInt(S);
    Result := 1;
    exit
  except
  end;
  try
    StrToFloat(S);
    Result := 2;
    exit;
  except
  end;
  try
    StrToDate(S);
    Result := 3;
  except
  end;
end;


Allesquarks - Mo 12.12.05 14:23

Hilfe!!!
Einfach durchparsen, ob es einen decimalseperator gibt oder wie beim Datum zwei davon.


Lannes - Mo 12.12.05 16:09

Hallo,

DateSeparator 2x gefunden, dann ist z.B der '50.12.2005' ein Datum :gruebel:

'1.000.000' könnte ein Integerwert mit Tausender-Trennzeichen darstellen, der würde wiederum mit der Funktion von user profile iconchrisw nicht gefunden.


Allesquarks - Mo 12.12.05 16:25

Ich persönlich würd in ner Zahl keine Tausenderzeichen setzen.
Außerdem sind die immer 3 Stellen auseinander, während das beim Datum nicht so ist.