![]() |
AW: Deutsche Dezimal-Zahl in englisches Format bringen
Und warum nimmst du nicht die Formatsettings
ALT: Decimalseperator:='.'; aktuelles Delphi Formatsettings.decimalseparator:='.' ThousandSeparator gibt die Tausendertrennzeichen an. |
AW: Deutsche Dezimal-Zahl in englisches Format bringen
Was macht denn FillAdvGrid? Wenn du da das StringGrid manuell irgendwie befüllst, kannst du dass doch da ändern. Wie der Name schon sagt sind im StringGrid nur noch Strings und das wird halt so exportiert, wie es im StringGrid steht.
Dementsprechend (je nachdem was FillAdvGrid macht/ist) sind daher auch die FormatSettings Latte... |
AW: Deutsche Dezimal-Zahl in englisches Format bringen
Wie die CSV entsteht, ist wohl nur dort bestimmt: SG_Export.SaveToCSV
Ohne den Quelltext und / oder einer genauen Beschreibung dessen, wird es beim Raten bleiben. Innerhalb dieser Routine sind höchstwahrscheinlich die FormatSettings zu ändern (oder hat die Komponenten bereits entsprechende Attribute und / oder Methoden? Ausführliche Doku zum ![]() |
AW: Deutsche Dezimal-Zahl in englisches Format bringen
Ich würde den CSV-Export nicht von dem ADVGrid machen lassen. In deinem FillAdvGrid gehst du doch wahrscheinlich deine ganzen Daten durch. Dann kannst du da doch auch gleich die CSV schreiben. Dann hast du volle Kontrolle darüber, was da rein kommt und bist nicht auf die Export-Routine des Grid angewiesen.
|
AW: Deutsche Dezimal-Zahl in englisches Format bringen
sind denn die Zahlen auch als numerischer Wert im AdvStringGrid definiert oder als String?
|
AW: Deutsche Dezimal-Zahl in englisches Format bringen
Hallo, ich hatte mal ein ähnliches problem,
und hab das übel an der wurzel gepackt. Der code ändert für das ganze system die interpretierung/darstellung der trennzeichen. hier delphi 7 kompatibler code, ich hoff es hilft. edited: hab den source entfernt da er, wie oben beschrieben "für das ganze system" war und nicht für dein lokales problem. Bei Interesse, einfach nachfragen, in den situation wo ich es brauchte, und nach bearbeitung auch wieder zurückstellte, half mir mein code aus der patsche, da mein übel = das system war. ich nutzte diesen code in batch dateien. egal. :) |
AW: Deutsche Dezimal-Zahl in englisches Format bringen
Bloß nicht!
Dir fehlt - bei allem Respekt - die nötige Erfahrung, um ein Übel an der Wurzel zu packen, ohne selbst das nächstgrößere Übel darzustellen. Du änderst systemweite Einstellungen und ziehst damit für ein lokales Problem in Deiner Anwendung andere Programme in Mitleidenschaft, die dieses Problem ggf. gar nicht haben. MNSDN schreibt zu "SetLocaleInfo()" ausdrücklich: Zitat:
|
AW: Deutsche Dezimal-Zahl in englisches Format bringen
Zitat:
Code:
ist doch das richtige CSV Format für das Zahlenformat 3,35. Ich vermute, dass das Problem eher bei der Methode "Load Data InFile" ein Problem vorliegt.
,"3,45",
|
AW: Deutsche Dezimal-Zahl in englisches Format bringen
Das Problem liegt darin, das die SaveToCSV Funktion nicht wirklich "weiß" welche Daten in den Zellen stehen und sie daher einfach so abspeichert wie sie (in Stringform) eben vorliegen.
Wenn das Grid wie folgt befüllt wird (stark vereinfacht, statt FillAdvGrid):
Delphi-Quellcode:
Dann kann man den Inhalt entsprechend abspeichern:
procedure DemoFill;
var iy: Integer; ix: Integer; LFmt: TFormatSettings; begin LFmt := TFormatSettings.Create; LFmt.DecimalSeparator := '.'; for iy := 0 to AGd.RowCount-1 do begin for ix := 0 to AGd.ColCount-1 do begin AGd.Cells[ix,iy] := Format('%.6f', [ Random], LFmt); end; end; end;
Delphi-Quellcode:
AGd.Delimiter := ',';
// AGd.QuoteEmptyCells := FALSE; // leere Zellen nicht quoten AGd.SaveToCSV('D:\test.csv'); Nachteil, auch die Darstellung am Bildschirm ist dann in diesem Format. |
AW: Deutsche Dezimal-Zahl in englisches Format bringen
Code:
AdvStringgrid.ints[col,row] := 123; // > csv = ... ,123, ...
AdvStringgrid.floats[col,row] := 123.456; // > csv = ... ,123.456, ... AdvStringgrid.cells[col,row] := "123.456"; // // > csv = ...,"123.456",... immer Strings! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz