Registriert seit: 19. Apr 2011
293 Beiträge
Delphi 2009 Enterprise
|
AW: Feldtyp und -grösse ermitteln
18. Jul 2011, 16:02
Grauslich, stimmt. Manchmal muss man aber EXCEL-Tabellen importieren.
Dann sollte das Datenformat vorher klar sein. Wenn es denn sein muss, kann man auch versuchen, durch ein paar Tests den Datentyp selbst herauszubekommen.
Ich habe es mal so gemacht: Ich deklariere mir eine Variable vom Typ "SET OF TFieldType" und belege sie mit allen sinnvollen Datentypen. Die Variable sei "MoeglicheDatentypen". Ich definiere mir eine Variable pro Spalte.
Nun lese ich die Tabelle ein: Betrachten wir mal nur eine Spalte, deren Zelleninhalt sei V.
1. Ist V leer?
2. Wenn NEIN
2.1 Kann ich V in eine Integerzahl umwandeln? Wenn nein, entferne ich 'ftInteger' aus den möglichen Datentypen.
2.2 Kann ich V in eine Float-Zahl umwandeln? Wenn nein...
2.3 Ist V='1' oder '0' oder 'Wahr' oder 'Falsch' oder 'True' oder 'False' ...,? Nein? Dann ftBoolean entfernen
... Für alle unterstützten Datentypen wiederholen.
Zum Schluss bleibt eine Menge von Datentypen übrig. In der Reihenfolge Bool->Int->Float->String prüft man, ob einer der Datentypen in der Menge ist und nimmt dann den ersten Datentyp. Fertig.
Das Bild hängt schief.
|