有沒有一個Windows API調用或Delphi調用,它會告訴我什麼字符集的Delphi 6期望通過其格式轉換例程,如StrToFloat()數字使用?例如,我怎樣才能知道Delphi是否會看到逗號或小數點的時間段?如何根據語言環境獲取Delphi 6程序中用於數字的字符集?
回答
不確定D6中是否有GetLocaleFormatSettings
可供選擇。 (但它不在D5中)。
您可以使用DecimalSeparator
全局變量(SysUtils
)。
StrToFloat
:
的DecimalSeparator全局變量定義了必須 用作小數點的字符。 1000個分隔符(千分隔符)和貨幣符號 不允許在字符串中。如果S不包含有效值,則 StrToFloat引發EConvertError異常。
DecimalSeparator
由SysUtils
單元自動在Forms
單元響應分配通過在內部使用GetLocaleInfo
API與LOCALE_SDECIMAL
LCType
,並保持到WM_SETTINGSCHANGE
(僅GUI應用程序)。
編輯:
GetLocaleFormatSettings
可自D7。DecimalSeparator
已棄用於Delphi的較新版本(使用FormatSettings.DecimalSeparator
)。
謝謝Kobik。現在我做一個簡單的搜索,並根據您的答案替換DecimalSeparator的源字符串中找到的任何小數點。 – 2012-03-28 01:24:24
+1。在'System'中還有'ShortDateFormat'和其他全局格式設置,這對於瞭解相關內容也很有幫助。 – 2012-03-28 02:42:44
@ user539484,感謝編輯修正。 – kobik 2012-03-28 13:58:20
- 1. 在C中獲取當前語言環境的字符集?
- 2. 如何根據語言環境獲取不同的字符串值?
- 3. 從特定於語言環境的字符串中獲取NSDecimalNumber?
- 4. 如何根據語言環境更改我的應用程序中的字體?
- 5. 根據您的語言環境在Zend_Date中獲取週數
- 6. 如何從當前Windows語言環境獲取HTTP字符集名稱?
- 7. Android:如何在特定語言環境中獲取字符串而不更改當前語言環境
- 8. 從Java語言環境獲取語言的字母表
- 9. 如何獲取語言環境的ISO2語言代碼?
- 10. 停用語言環境Unicode字符
- 11. 如何測試僅用於字母的u32字符串(使用語言環境)
- 12. 獲取特定語言環境的本地化字符串
- 13. 如何從Java的字符串表示中獲取語言環境?
- 14. Python 3字符串排序依賴於語言環境嗎?
- 15. 從語言環境日期字符串獲取時刻對象
- 16. 根據iOS中的語言環境使用其他數據庫
- 17. 如何在更改應用程序語言環境後獲取設備語言環境
- 18. 哪些語言環境用於kotlin的字符串模板?
- 19. 更改字符串語言環境
- 20. 如何比較GWT中的語言環境字符串?
- 21. 如何在Mac/iOS上獲取當前語言環境的負號字符
- 22. 如何從模擬環境獲取語言環境
- 23. symfony2.0.0獲取security.yml中的語言環境
- 24. 獲取可用於文本到語音的語言環境(TTS)
- 25. 在片段中獲取語言環境
- 26. 獲取語言環境的貨幣
- 27. 如何從字符串中選擇語言環境
- 28. 如何使用PhoneGap構建獲取設備語言環境或語言?
- 29. 來自GregorianCalendar的基於語言環境的日期字符串
- 30. 使用getCurrentDirectoryW不讀取非語言環境字符
又見這個問題的答案:它是確定使用DecimalSeparator強制Floattostr/Strtofloat功能使用小數點(http://stackoverflow.com/a/9816979/576719) – 2012-03-28 06:05:22
@LURD 。這是一個很好的鏈接。幸運的是,我只讀取了DecimalSeparator的價值並對其進行了調整而不是改變它,但是,鏈接到的SO貼子是非常寶貴的。 – 2012-03-28 12:14:04