Na akkor mondom: Néhány hónapja dolgozom egy programon, elég sokféle szála van. Sok adatot kell bevinni, rögzíteni, aztán ezekből megadott algoritmus segítségével eredménytáblázatokat készíteni. Excelben írtam meg, és - szerencsére - a rendszerbeállításokban és az Excelben is a tizedespontot használom, így tegnapra gond nélkül elkészült, és hiba nélkül működik.
Ekkor gondoltam arra, hogy mi van, ha valaki a vesszőt használja tizedes határolóként. Átállítottam a területi beállításokat majd próbálgattam az Excel beállításait tizedespontra, vagy vesszőre átállítani. Kiderült, hogy a vesszőtől az Excel megbolondul. Akkor is, ha az Excelben a pont van megadva határolóként. Illetve csak az úgynevezett TextBox-ok, ami egyébként is egy külön világ speciális szabályokkal, amire gyakran nem érvényesek az egyéb helyeken megszokott működési módok (például az eseménykezelés tiltása sem működik, és mint most kiderült, a tizedes kezelés sem zökkenőmentes)
Néhány óra munkával próbáltam a számok formázásával javítani a helyzetet, de éjfél körül beláttam, hogy ez tévút. Aztán rájöttem, hogy az a gond, hogy ezek az Excel TextBox-ok nem veszik figyelembe az Excel saját beállításait, ők mindenképp a Registry-ben tárolt értékkel dolgoznak. Így a beléjük írt adatot hol valami dátumértékre alakítják (például 1,1 helyett valami 41000 feletti számra, hol más lehetetlen formátumra.)
Ekkor jött az ötlet, hogy programból kiolvasom a Registry szerinti tizedesjelet, és ha vessző, akkor átjavítom pontra, majd a program végén visszaírom a kiolvasottat (mert az elvileg bármilyen más karakter is lehet, és nem akarom a felhasználó beállításait elrontani)
Ezt a technikát kipróbáltam, és erre írtam, hogy "A dolog hibátlanul működik."
És csak a biztonság kedvéért kérdeztem meg, hogy a Windows későbbi verzióiban (feltéve, hogy mégsem a Windows 10 lesz az utolsó) kell-e attól tartani, hogy a "HKCUControl PanelInternationalsDecimal", ".", "REG_SZ" (illetve a visszaállítása az eredetire - mutatis mutandis - ugyanezzel a szintaxissal) valaha is nem így lesz érvényes.
Meg lennék lepve, ha igen, de azért kértem a nálam hozzáértőbbek véleményét.
Más: Talán a jövő héten már jelentkezem a csepeli boltban a laptop tisztításra. Előtte írok, és szívesen meghívlak egy sörre.