FormatFloat und Dezimalpunkt warum geht das bei mir nicht?
- 
					
					
					
					
 Hallo, 
 ich wollte das Beispiel aus der FAQ ausprobieren,
 aber leider will es bei mir nicht laufen.Was mache ich falsch? #include <sysutils.hpp> DecimalSeparator = '.'; // hier kommt die Fehlermeldung [bcc32 Fehler] Unit1.cpp(13): E2303 Typname erwartet Application->UpdateFormatSettings = false;viele grüße Karl 
 
- 
					
					
					
					
 Die beiden letzten Zeilen müssen selbstverständlich in eine Funktion rein, am besten in die WinMain (in deiner <project>.cpp) oder main (bei einem Konsolenprogramm). 
 
- 
					
					
					
					
 Hallo, meinst Du so? 
 geht bei mir nicht.#pragma hdrstop #pragma argsused #ifdef _WIN32 #include <tchar.h> #include <iostream.h> #include <sysutils.hpp> #else typedef char _TCHAR; #define _tmain main #endif #include <stdio.h> int _tmain(int argc, _TCHAR* argv[]) { float a=1.2345; DecimalSeparator = '.'; //[bcc32 Fehler] punkt.cpp(21): E2451 Undefiniertes Symbol 'DecimalSeparator' cout << a; return 0; }wo ist mein Denkfehler, ich komm nicht drauf. viele Grüße Karl 
 
- 
					
					
					
					
 Ist das Symbol _WIN32definiert? Nur dann wird nämlichSysUtils.hppinkludiert, in demDecimalSeparatordefiniert ist.Außerdem: 
 iostream.hundstdio.hsind C-Header, in C++ benutzt maniostreamundcstdio(ohne .h).
 
- 
					
					
					
					
 Hallo, ich komm nicht weiter, #pragma hdrstop #pragma argsused #ifdef _WIN32 #include <tchar.h> #else typedef char _TCHAR; #define _tmain main #endif #include <cstdio> #include <iostream> #include <sysutils.hpp> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { float a=1.2345; DecimalSeparator = '.'; //[bcc32 Fehler] punkt.cpp(21): E2451 Undefiniertes Symbol 'DecimalSeparator' cout << a; return 0; }in der Hilfe hab ich folgendes gefunden: Globale Variablen 
 Veraltete globale Variablen wurden entfernt; verwenden Sie stattdessen FormatSettingsZwanzig globale Variablen aus System.SysUtils, die seit einigen Jahre veraltet waren, 
 wurden nun aus dem Produkt entfernt. Diese globalen Variablen betreffen in der Regel Datums-,
 Uhrzeit- und Währungsformate (CurrencyString, LongTimeFormat, ShortMonthNames usw.).Instanzen dieser globalen Variablen in Ihrem Code führen jetzt zu folgendem Compiler-Fehler: E2451 Undefiniertes Symbol 'bezeichner' (C++) 
 E2003 Undeklarierter Bezeichner: '%s' (Delphi)
 Es gibt zwei Lösungen für dieses Problem:Verwenden Sie die entsprechenden Felder der globalen Variable System.SysUtils.FormatSettings. 
 Wenn Sie in Ihrem Code beispielsweise System.SysUtils.NegCurrFormat verwendet haben, können
 Sie dies durch Folgendes ersetzen:FormatSettings.NegCurrFormat Erstellen Sie eine eigene TFormatSettings-Struktur, und rufen Sie die überladenen Funktionen 
 auf, die diese Struktur übernehmenLiegt hier irgendwo mein Fehler, und könnt ihr mir weiterhelfen? vielen Dank Karl 
 
- 
					
					
					
					
 versuchs mal damit: FormatSettings.DecimalSeparator = 
 
- 
					
					
					
					
 j.halder schrieb: versuchs mal damit: FormatSettings.DecimalSeparator = Hallo, geht auch nicht: [ilink32 Fehler] Error: Nicht auflösbares externes 'System::Sysutils::FormatSettings' referenziert von C:....\PUNKT.OBJ viele Grße karl 
 
- 
					
					
					
					
 Na immerhin kompiliert es schon mal.  
 Du hast vermutlich ein "nacktes" Konsolen-Projekt erstellt, verwendest darin jetzt aber VCL-Klassen. Deswegen stolpert der der Linker nun über nicht eingebundene VCL-Bibliotheken.
 Falls du wirklich mit der VCL arbeiten willst erstellst du dein Projekt am besten neu und achtest dabei darauf, die "Zielframework"-Option entsprechend zu setzen.
 Wenn es ohne VCL sein soll dann dürfte die Win32-Funktion SetLocaleInfo weiterhelfen.
 Hier ein Delphi-Beispiel: http://www.greatis.com/delphicb/tips/lib/system-setseparator.html
 
- 
					
					
					
					
 Jansen schrieb: Na immerhin kompiliert es schon mal.  
 Du hast vermutlich ein "nacktes" Konsolen-Projekt erstellt, verwendest darin jetzt aber VCL-Klassen.Hallo, zu Testzwecken hatte ich ein Konsolen Projekt erstellt. 
 Bei meiner VCL Anwendung läuft es jetzt auch mit FormatSettings.DecimalSeparator =hab den Tipp inzwischen auch im Forum gefunden. Nur eben nicht ein der FAQ. vielen Dank für eure Hilfe viele Grüße Karl 
 
 
			
			
		