String To Float (Problem Sonderzeichen)
-
Hi Leute,
ich hab ein Problem. Ich hab ne Datenbank, wo ich Spalte mit dem Typ "Währung" habe. Diesen möchte ich in einen DBGrid mit einem €-Zeichen ausgeben. Bisher zeigt er mir statt 10,00 € nur die Zahl 10 an und wenn ich 10,50 € hab kommt nur ne Fehlermeldung.
-
Hallo,
du kannst den String nach dem Vorkommen von "€" durchsuchen (Pos("€")) und es dann wegschneiden.
AnsiString -> SubString() // Delete() ...
LG, Micha
-
wenn du nur die Anzeige formatieren willst geht das z.B. so:
void __fastcall TForm1::IBQuery1AfterOpen(TDataSet *DataSet) { TNumericField *Field1 = dynamic_cast<TNumericField*>(DataSet->FieldByName("Preis")); Field1->DisplayFormat = "###,###,##0.00"; }
statt TNumericField kannst du ja TCurrencyField verwenden
alternativ kannst du auch hier mal schaun
-
zu dieser substring methode. hab das noch nie gemacht.
also ich habe mal ein beispiel erstellt.
Edit1->Text = "10,00 €";
int Pos = Edit1->Text.Pos("€");
aber nun hängts bei mir. wie kann ich nun das €-Zeichen löschen? Delete verlangt ja zwei int werte.
-
Hallo,
der erste int-Wert ist der Index (Start) und der zweite int-Wert ist die Länge der zu löschenden Zeichenkette (in deinem Fall 1)
Edit1->Text = Edit1->Text.Delete(Edit1->Text.Pos("€"),1);
LG, Micha
//Edit: Oder so wie Linnea und akari schreiben
-
Hallo
Las das mit dem Wegschneiden. Hör lieber auf Linnea, bleib bei deinem Währungs-Feld und formatier nur die Ausgabe korrekt.
bis bald
akari