ejs rašė: > > Laba, > > kaip sprendžiate 'decimal separator' problemytę? > > Išvedinėju duomenis į CSV ir juos nuskaitinėju su OpenOffice Calc'u > grafikų braižymui. Kadangi fprintf naudoja "." trupmeninei daliai > atskirti, o OOo Calc'as 'decimal separator' ima pagal lokalės nuostatas, > jis ten tikisi pamatyti ",". > Ar įmanoma paprastu būdu fprintf'ui nurodyti kaip atskirti trupmeninę dalį? > > Duomenis išvedinėja MatLAB R2010a, kaip jį priversti naudoti lokalės > nuostatas, dar neradau. > O paprasto būdo sumaitinti duomenis į OOo Calc'ą irgi nėra. Yra > 'xlswrite', bet reikia turėti suinstaliuotą MSO. Pirmas įspūdis, kad Matlab'e taškas „įsiūtas“, tačiau galima išspręsti bent jau trejopai: 1) matlab'e: str = sprintf('%f', x) str = strrep(str, '.', ','); fprintf(fout, '%s...', str, ...); 2) sed, awk (priklausomai nuo to ar galima tiesmukiškai keisti visus stulpelius, t.y. ar nėra tekstinių/datos stulpelių, kuriuose galėtų būti taškai/kableliai): sed -i.orig -e 's/\./\,/g' file.csv 3) OO Calc importuojant CSV turbūt galima pasirinkti kalbą ir pažymėti „detect special numbers“. Neturiu po ranka ir negaliu patikrinti, tačiau nustatčius atitinkamą kalbą, turėtų traktuoti taškus, kaip decimal separatorius, o po importo, lape, pagal logiką, turėtų gautis kableliai (pagal OO/sistemos lokalės nuostatas).