AndrisBB Maijs 21, 2023 Share Maijs 21, 2023 Interesanta matemātika Pitonam >>> print(356.21 - 356) 0.20999999999997954 Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 21, 2023 Author Share Maijs 21, 2023 Tāpēc naudu iesaka labāk rēķināt veselos skaitļos. Frībeisikam ar centiem nav problēmu: centi = Round((summa - Int(summa)) * 100) Link to comment Share on other sites More sharing options...
AndrisBB Maijs 21, 2023 Share Maijs 21, 2023 Nu var jau pašā sākumā pareizināt ar 100 un tad rēķināt. Bet nu ganjau arī Pitonam ir veids kā apiet tās problēmas. Link to comment Share on other sites More sharing options...
AndrisBB Maijs 21, 2023 Share Maijs 21, 2023 šādi mazliet labāk >>> print(Decimal(356.21) - Decimal(356)) 0.2099999999999795363692101091 >>> getcontext().prec = 3 >>> print(Decimal(356.21) - Decimal(356)) 0.210 Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 22, 2023 Author Share Maijs 22, 2023 pirms 16 stundām , camel teica: https://www.bdo.lv/lv-lv/publikacijas/featured-insights/vai-summa-rekina-janorada-ar-vardiem Pirkšanas-pārdošanas līgumu paraugos visur ir summa vārdiem. Tā ka tūlim pielietojums ir. Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 22, 2023 Author Share Maijs 22, 2023 (labots) pirms 16 stundām , AndrisBB teica: Linux jau arī Atņemam nosperto centu: amount = 356.21 euros = int(amount) print(euros) cents = round((amount - euros)*100) print(cents) Rezultāts: 356 21 Rēķinot centus vajag round nevis int. Labots Maijs 22, 2023 - HIGH-Zen Link to comment Share on other sites More sharing options...
AndrisBB Maijs 22, 2023 Share Maijs 22, 2023 Pirms 56 minūtēm , HIGH-Zen teica: Rēķinot centus vajag round nevis int. Drīzāk jau neviens, ne otrs variants būs tas 'pareizākais'. Bet ja darbojas, tad kapēc ne. Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 22, 2023 Author Share Maijs 22, 2023 (labots) Nu tāda pieeja ir oriģinālajā izejas kodā MS VBA: santimi = Round((summa - Int(summa)) * 100) Labots Maijs 22, 2023 - HIGH-Zen Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 22, 2023 Author Share Maijs 22, 2023 (labots) Šodien iešāvās prātā tāda interesanta ideja, ka varētu to DLL funkciju importēt atpakaļ iekš Excel VBA, lai DLL rēķinātu summu vārdiem. Kas kā izrādījās nav iespējams (forši krešoja ekselis). Un tikai tāpēc, ka DLL ir Unicode, bet VBA ir Non Unicode Program. Visual Beisiks nerubī Unicode, atšķiras String-i, DLL izmanto WChar, bet vižual beisiks Char. Arhaisms īsāk sakot. Un tas ir Microsoft Ofisā 2021. Teorētiski importēt funkciju Excel-ī varētu pārtaisot DLL failu uz Non Unicode, kur piedevām Windows-ā būtu jābūt "Language for non-Unicode programs" uzstādītam latviešu valodā. Edit: Apstiprinājums. https://www.spreadsheet1.com/how-to-display-foreign-characters-in-vbe.html# Labots Maijs 23, 2023 - HIGH-Zen Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 23, 2023 Author Share Maijs 23, 2023 Patiesībā viss ir vēl nedaudz sarežģītāk. Pats Excel-is saprot Unicode, to nesaprot tikai VBA Editor-s. Tātad iekš Excel VBA iekopējam kodu: Private Declare PtrSafe Sub EuroSummaVardiem Lib "C:\skaitlivardiem.dll" (ByVal summa As Double, ByVal Atbilde As String) Public Function SummaVardiem(summa As Double) As String ' Dim result_1(0 To 1024) As Byte Dim result_1 As String * 512 Call EuroSummaVardiem(summa, result_1) SummaVardiem = StrConv(result_1, vbFromUnicode) End Function Private Sub testit() MsgBox (SummaVardiem(14)) End Sub DLL tātad atrodas šeit C:\skaitlivardiem.dll Tagad iekš Excel varam izmantot funkciju SummaVardiem. Rezultāts: Un šis darbojas neskatoties ne uz kādiem Regional Settings -> "Language for non-Unicode programs". Testam tika izmantots Microsoft Office 2021 Excel, uz Windows 11 Pro. 1 Link to comment Share on other sites More sharing options...
camel Maijs 23, 2023 Share Maijs 23, 2023 (labots) Patiesībā viss ir vēl vienkāršāk. MS Word var pārvērst summas tekstā izmantojot aprēķinus laukos (field). Te piemēra doc fails. Norādam summu, peles labais klik uz lauka ar summa vārdiem, update field (vai latvisks analogs). Summa vardiem.docx Labots Maijs 23, 2023 - camel Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 23, 2023 Author Share Maijs 23, 2023 Pirms 24 minūtēm , camel teica: MS Word var pārvērst summas Kātad ka var: Link to comment Share on other sites More sharing options...
ggg97 Maijs 23, 2023 Share Maijs 23, 2023 Punkta vietā komats jāliek, vismaz man. Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 23, 2023 Author Share Maijs 23, 2023 Tikko atverot tur stāv punkts. Ar komatu darbojas. Link to comment Share on other sites More sharing options...
ggg97 Maijs 23, 2023 Share Maijs 23, 2023 Jā, tas punkts nefurīčija. Iespējams, Camel kaut kur savādāki reģionālie iestatījumi. Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 23, 2023 Author Share Maijs 23, 2023 (labots) Pa kādai blusai jau ir: deviņisimti piecdesmittūkstoši bet kur tamlīdzīgu nav? Arī manis izmantotais kods uz ļoti retiem skaitļiem tāpat dara, nu nav jau grūti ielikt atstarpi. Labots Maijs 24, 2023 - HIGH-Zen Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 24, 2023 Author Share Maijs 24, 2023 (labots) Ja jau, tad jau - tagad pamēģināsim to pašu DLL izsaukt no LibreOffice Calc. Tātad LibreOffice Calc kods ir līdzīgs: Private Declare PtrSafe Sub EuroSummaVardiem Lib "C:\skaitlivardiem.dll" (ByVal summa As Double, ByRef Atbilde As ByteArray) Public Function SummaVardiem(summa As Double) As String Dim result_1(0 To 512) As Byte ' Dim result_1 As String * 512 Call EuroSummaVardiem(summa, result_1) SummaVardiem = result_1 ' StrConv(result_1, vbFromUnicode) End Function Private Sub testit() MsgBox (SummaVardiem(145.82)) End Sub Sub Main MsgBox (SummaVardiem(14.51)) End Sub DLL tātad atrodas šeit C:\skaitlivardiem.dll Neaizmirstam saglabāt dokumentu. Tagad iekš Calc varam izmantot funkciju SUMMAVARDIEM. Rezultāts: Ja funkcija nedarbojas, tad palaižam Main makrosu: Tools -> Macros -> Run Macro... failanosaukums.ods -> Standard -> Module1 Macro Name -> Main un poga Run. Un tad var rakstīt no jauna formulu un tā darbosies. Testam tika izmantots LibreOffice Calc 7.4.2.3 (x64), uz Windows 11 Pro. Labots Maijs 24, 2023 - HIGH-Zen 2 Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 25, 2023 Author Share Maijs 25, 2023 (labots) Nu un odziņa uz tortes - C programmēšanas valodā. CodeBlocks 20.03 GCC C Win11 projekts, libskaitlivardiem.dll.a arī ir atrodams arhīvā. #include <stdio.h> #include <stdlib.h> #include <windows.h> __declspec(dllimport) void __cdecl EuroSummaVardiem(double summa, wchar_t* Atbilde); int main() { wchar_t buf[256]; // UTF-16 double summa; summa = 98.51; EuroSummaVardiem(summa, buf); MessageBoxW(0, buf, buf, 0); return 0; } SimpleCallDll.zip Visual Studio 2017 Win11 jāizveido pliks C projekts ar augstāk redzamo kodu un jāpievieno bibliotēka skaitlivardiem.lib Neaizmirstam uzlikt konfigurāciju uz Release un platformu uz x64. Viss ir notestēts un darbojas. skaitlivardiem.lib Visual Studio 2010 (+WinSDK7.1incl64) Win7 SP0 notestēts, darbojas. Labots Maijs 26, 2023 - HIGH-Zen Notestēts uz Visual Studio 2017 un 2010 Link to comment Share on other sites More sharing options...
Jurkins Maijs 25, 2023 Share Maijs 25, 2023 Grāmatvedība nekad nav interesējusi un neko praktiski par to nezinu, kā tur ir pareizi, bet kādreiz sen atpakaļ rakstīju vba šo lietu. Neatceros, kāpēc no neta neņēma. Bet toreiz grāmatvede gribēja, lai 123 rakstītos kā "viens simts divdesmit trīs" nevis "simts divdesmit trīs" u.t.t. Link to comment Share on other sites More sharing options...
vvv Maijs 25, 2023 Share Maijs 25, 2023 Pirms 1 minūtes , Jurkins teica: Bet toreiz grāmatvede gribēja, lai 123 rakstītos kā "viens simts divdesmit trīs" nevis "simts divdesmit trīs" Tā ir ķēmošanās. Link to comment Share on other sites More sharing options...
Jurkins Maijs 25, 2023 Share Maijs 25, 2023 Varbūt. Grāmatvedība vispār bieži vien ir ķēmošanās 😁. 1 2 Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 25, 2023 Author Share Maijs 25, 2023 (labots) Citēt 123 Citēt Viens simts divdesmit trīs euro, 00 centi Tā arī darbojas manis izmantotā versija. Labots Maijs 25, 2023 - HIGH-Zen 1 Link to comment Share on other sites More sharing options...
AndrisBB Maijs 25, 2023 Share Maijs 25, 2023 Un kā ar .so vai .dylib versijām? Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 25, 2023 Author Share Maijs 25, 2023 Pagaidām neplānoju. Moš iet caur WINE. Link to comment Share on other sites More sharing options...
AndrisBB Maijs 25, 2023 Share Maijs 25, 2023 Reali jau ja rakstīts kādā kompilējamā valodā, aka C/C++, tad jau tik makefailā atkarībā no platformas pamaina kompilātoram mazliet citus flagus. clang, ccc jau iet uz visām platformām, nekas īpaši nav jāmaina. Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 25, 2023 Author Share Maijs 25, 2023 Principā jau tā ir, FreeBasic iet uz Linux, FreePascal arī. Bet domāju, ka pieprasījums uz Linux būtu tiešām mazs. Tiem retajiem gadījumiem tad noderētu WINE. Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 26, 2023 Author Share Maijs 26, 2023 pirms 10 stundām , AndrisBB teica: Reali jau ja rakstīts kādā kompilējamā valodā, aka C/C++ Nu FreeBasic konvertē kodu uz C un tad ar GCC nokompilē to. Tā ka var uzskatīt, ka DLL fails ir rakstīts C. Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 26, 2023 Author Share Maijs 26, 2023 Notestēju uz Linux Mint 21.1 Vera 64-bit MATE 1.26.0. Ar PlayOnLinux WINE 64-bitu versiju neizdevās uzlikt, bet WINE 32-bitu versija ļāva mierīgi uzlikt un darbojas ne sliktāk kā natīvā programma. Spoiler Tātad ja kādam vajadzīga programmas 32-bitu versija - PM. Manas domas ir, ka nepieteiksies neviens linuksoīds, bet nu kas zina. Papildus varu dot instrukcijas kā uzstādīt skaitlivardiem ar PlayOnLinux palīdzību. Link to comment Share on other sites More sharing options...
AndrisBB Maijs 26, 2023 Share Maijs 26, 2023 Grūti iedomāties, kam to programmu vajadzētu kā programmu, ja nu vienīgi paspēlēties. Pa to laiku kamēr atver, ieraksti summu utt, tikmēr jau pats vārdiem uzrakstījis kur vajag (ja nav miljonu lieli skaitļi). Citu runa ka ja vajag dokumentus automātiski kvantumos apstrādāt (bet tad arī to applikāciju neizmantosi), kauvai tanī pašā Librē aizpildīt lauku, kur summa vārdiem, ja updeito kādu no ailēm. Droši vien vislielākā jēga no tā .dll/.so/.dylib būtu ja palaid instalāciju, viņš automātiski installē bibliotēku, pievieno Librei/Ekselim un jūzerim vienīgā lieta kas ir jāizdara ir jāieraksta ailē =SUMMA_VĀRDIEM(B6). Es ez kautko tādu fokusētos, tad ganjau arī kāds lejupielādētu. Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 26, 2023 Author Share Maijs 26, 2023 Pirms 21 minūtēm , AndrisBB teica: Grūti iedomāties, kam to programmu vajadzētu kā programmu Grāmatvežiem, kam tad vēl. Ir pat online tooļi. Kāds taču tos izmanto. Ver vaļā browseri, iet uz weblapu, raksta kaut ko iekšā, spiež pogu aprēķināt, kopē rezultātu. Neko diži ātri jau nav. Un ja nu tas jādara vairākkārtīgi. Šādā gadījumā programma uzvar. Kalkulatorus taču arī ir kas izmanto, nevis visu rēķina uz papīra. Link to comment Share on other sites More sharing options...
AndrisBB Maijs 26, 2023 Share Maijs 26, 2023 Nu tapēc es saku, ka ja viegli integrēt Ekselī, tad arī grāmatvedim būs vieglāk izmantot tur, nekā atsevišķu programmu. Iekopē kollonu ar summām vienā piegājienā, ja vajag daudz. Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 26, 2023 Author Share Maijs 26, 2023 Un ja nu tas vajadzīgs Word-ā vai vēl sazin kur. Tu domā, ka zini grāmatvežu use cases. Esmu redzējis, ka sēžot pie Excel tabulas kaut kādas summas grāmatvede pārrēķina vēlreiz ar fizisku kalkulatoru, kas cilvēkiem no citām aprindām liekas nonsenss. Link to comment Share on other sites More sharing options...
AndrisBB Maijs 26, 2023 Share Maijs 26, 2023 Wordā nevar lietot funkcijas? Tjip labais klikšķis uz cipariem -> pārvērt summā vārdiem? Zin kā, uz Maka cilvēki reizēm gatavi maksāt piecus bakšus par relatīvi vienkāršām lietām, kas padara dzīvi vienkāršāku. Worda tabulās jau izskatās var lietot tās pašas Excel formulas, aka =SUM utt Link to comment Share on other sites More sharing options...
vvv Maijs 26, 2023 Share Maijs 26, 2023 (labots) Pirms 14 minūtēm , AndrisBB teica: Worda tabulās jau izskatās var lietot tās pašas Excel formulas, aka =SUM utt Var. Dažas. Čakarīgi, bet var. https://support.microsoft.com/lv-lv/office/formulas-izmantošana-programmas-word-vai-outlook-tabulā-cbd0596e-ea8a-485e-a35d-b2cb2c4f3e27#__toc281293375 Labots Maijs 26, 2023 - vvv Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 26, 2023 Author Share Maijs 26, 2023 (labots) Wordā tādus brīnumus neesmu redzējis, izņemot jau iepriekš sagatavotos laukos kā @camel piemērā. Bet tur bija savas neprecizitātes - jābūt Viens simts divdesmit trīs euro, 00 centi nevis simts divdesmit trīs. Šis pasākums ir bez maksas. Patīk ņemam, nepatīk neņemam. Bakši paliek makā jebkurā gadījumā. Labots Maijs 26, 2023 - HIGH-Zen Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 29, 2023 Author Share Maijs 29, 2023 26.05.2023. , 16:39, AndrisBB teica: Droši vien vislielākā jēga no tā .dll/.so/.dylib būtu ja palaid instalāciju, viņš automātiski installē bibliotēku, pievieno Librei/Ekselim un jūzerim vienīgā lieta kas ir jāizdara ir jāieraksta ailē =SUMMA_VĀRDIEM(B6). Es ez kautko tādu fokusētos... Update! Pievienoju pirmajā postā Excel bibliotēku ar visu instalāciju. Tagad var darboties izmantojot Excel Add In-u. Izmantojot formulu, piemēram =SUME(A1) Programmēšanas valoda C++. 1 Link to comment Share on other sites More sharing options...
camel Maijs 29, 2023 Share Maijs 29, 2023 Ar ko tava excel bibliotēka būs labāka par to manu excel failu? Ja tabulā izmanto funkciju no tas bibliotēkas, tad failam līdzi jāsūta arī tavs dll? Tak pilnīgi pietiktu kautvai ar VBA funkciju, nav nekādi freebasici utt. vajadzīgi. Link to comment Share on other sites More sharing options...
HIGH-Zen Maijs 29, 2023 Author Share Maijs 29, 2023 Pirms 29 minūtēm , camel teica: Ar ko tava excel bibliotēka būs labāka par to manu excel failu? Ja xlsx fails ar formulām tiks izmantots arī uz cita datora, tad jādod līdzi Excel bibliotēkas instalācija vai interneta links kur ielādēt. Excel bibliotēkas instalācija ir vienkārša un ērta. Labāks ir tas, ka formulu var ierakstīt jebkurā ailē un nav nekādu slēpto rindu. Varbūt mazsvarīgāk, bet aprēķins notiek ātri, jo tiek darbināts C++ kods nevis makross. Nav arī tādu pārrakstīšanās kļūdu, kā piemēram: Citēt 123357,12 Viens simts divdesmit trīs tukstoši trīs simti piecdesmit septiņi eiro 12 c. Link to comment Share on other sites More sharing options...
camel Maijs 29, 2023 Share Maijs 29, 2023 Jēziņ, tu tik stum savu, it kā nesaprastu. Bet paldies par norādi uz kļūdu, labošana ir viegli pieejama, jebkuršs var pats izdarīt. Šeit salabota versija: eiro vārdiem.xlsx Link to comment Share on other sites More sharing options...
AndrisBB Maijs 29, 2023 Share Maijs 29, 2023 Pluss varētu būt ka darbojas arī iekš Numbers vai Google doks. Tik laikam tad labāk to formulu likt citā šītā. Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!