AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Deutsche Dezimal-Zahl in englisches Format bringen
Thema durchsuchen
Ansicht
Themen-Optionen

Deutsche Dezimal-Zahl in englisches Format bringen

Ein Thema von Ykcim · begonnen am 11. Jan 2018 · letzter Beitrag vom 17. Jan 2018
Antwort Antwort
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#1

AW: Deutsche Dezimal-Zahl in englisches Format bringen

  Alt 12. Jan 2018, 09:31
Hallo Zusammen,

vielen Dank für die Antworten. Ich habe mir den anderen Beitrag durchgelesen und versucht für mich anzuwenden - leider ohne Erfolg. Nachstehend mein Code:
Delphi-Quellcode:
      //CSV-Datei für den UpLoad erstellen
      System.SysUtils.FormatSettings.DecimalSeparator := '.'; //Hier stelle ich das Setting um
      Application.UpdateFormatSettings := false;
      FillAdvGrid(SG_Export, ColsAG, RowsAG); //Hier wird das temproäre StringGrid befüllt
      WriteFile('as400');
      FCSVPfad:=FCSVPfad+'AS400UPLOADFILE.CSV';
      SG_Export.SaveToCSV(FCSVPfad); //Hier wird die CSV-Datei erstellt
      //CSV-Datei hochladen
      LoadData(FCSVPfad, 'as400temp'); //Hier wird die CSV-Datei in den MySQL-Server hochgeladen
      Application.UpdateFormatSettings := true; //Hier stelle ich das Setting wieder um
      System.SysUtils.FormatSettings.DecimalSeparator := ',';
      //CSV-Datei löschen
      if not DeleteFile(FCSVPfad) then ShowMessage('Datei "'+FCSVPfad+'" konnte nicht gelöscht werden!');
Leider wird bei der Erstellung der CSV-Datei immer noch aus 4.23 "4,23" gemacht. Hat jemand dazu eine Idee?

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat
galex9

Registriert seit: 3. Nov 2006
17 Beiträge
 
#2

AW: Deutsche Dezimal-Zahl in englisches Format bringen

  Alt 12. Jan 2018, 09:39
Welche Klasse verbirgt sich unter "SG_Export" ?
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#3

AW: Deutsche Dezimal-Zahl in englisches Format bringen

  Alt 12. Jan 2018, 09:46
Das ist das StringGrid, welches ich oben in der Procedure als Variable definiere SG_Export: TAdvStringGrid; und dann später zum Leben erwecke SG_Export:= TAdvStringGrid.Create(nil);
Patrick
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#4

AW: Deutsche Dezimal-Zahl in englisches Format bringen

  Alt 12. Jan 2018, 11:27
Also so könnte man es in diesem Falle lösen - allerdings ist das keine gute Lösung...
Ich ändere das Dezimalkennzeichen "manuell" von Komma auf Punkt in einer For-Schleife...
Delphi-Quellcode:
   //CSV-Datei für den UpLoad erstellen
   FillAdvGrid(SG_Export, ColsAG, RowsAG);
   WriteFile('as400');
   FCSVPfad:=FCSVPfad+'AS400UPLOADFILE.CSV';
   //decimalZahl von deutsch nach englisch ändern
   for I := 0 to SG_Export.RowCount -1 do begin
      SG_Export.Cells[21,I]:=StringReplace(SG_Export.Cells[21,I],',','.',[rfIgnoreCase, rfReplaceAll]);
   end;
   SG_Export.SaveToCSV(FCSVPfad);
   //CSV-Datei hochladen
   LoadData(FCSVPfad, 'as400temp');
   //CSV-Datei löschen
   if not DeleteFile(FCSVPfad) then ShowMessage('Datei "'+FCSVPfad+'" konnte nicht gelöscht werden!');
Wenn es einen charmanteren Weg gibt, bin ich daran sehr interessiert...

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
487 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: Deutsche Dezimal-Zahl in englisches Format bringen

  Alt 12. Jan 2018, 12:16
Und warum nimmst du nicht die Formatsettings

ALT:
Decimalseperator:='.';


aktuelles Delphi
Formatsettings.decimalseparator:='.'


ThousandSeparator
gibt die Tausendertrennzeichen an.
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: Deutsche Dezimal-Zahl in englisches Format bringen

  Alt 12. Jan 2018, 12:44
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...
Ralph
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.599 Beiträge
 
Delphi 7 Professional
 
#7

AW: Deutsche Dezimal-Zahl in englisches Format bringen

  Alt 12. Jan 2018, 16:23
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 TAdvStringGrid
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13: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