Strona 1 z 1

Zliczanie jednostek (parser jednostek)

PostNapisane: lis 19, 2020 21:27
przez badziewiak
Witajcie
Dawno, dawno temu, gdy jeszcze byłem znacznie młodszy niż dziś, napisałem takie narzędzie do zliczania nazwanego osprzętu: post7666856.html?hilit=parserMatematyczny#p7666856
Myślałem sobie wówczas, że do kompletu by było fajnie napisać coś, co robi to samo z watami i innymi jednostkami. Dla przykładu:
3W
3Wx2
2x3kW
2x3W+3x5W
(2x3MW+5kW)
5x(2x3W+5W)
5x(2x3W+5W)x4
5x(2x(2x3W+5W))
Jak widać, respektuje przedrostki k, M, G, T. Więcej nie ma sensu.
Mobilizowałem się do tego prawie 10 lat, bo zawsze było do zrobienia coś ważniejszego. Przyszła wreszcie kryska na Matyska, bo sam zacząłem tego pożądać do własnych zastosowań praktycznych. Dziś nadszedł ten dzień, że po tygodniu opracowywania algorytmu i dwóch dniach kodowania, zrobiłem coś takiego. W załączeniu przesyłam algorytm w PDF i aplikację testową. Służy ona tylko i wyłącznie do maltretowania tego silnika i wyłapywania błędów. Na chwilę obecną nie znalazłem błędów, których bym nie poprawił. Jak chcecie, to testujcie. Jak wyłapiecie błąd, to dajcie znać.

EDIT:
Nowsza wersja poniżej.

Re: Zliczanie jednostek (parser jednostek)

PostNapisane: lis 20, 2020 11:54
przez badziewiak
W załączeniu poprawiona wersja. W starej nie były rozpoznawane liczby dziesiętne. .NET Framework próbował potraktować je jako datę, więc musiałem mu jak krowie na rowie wyłożyć, że chcę liczby dziesiętne.

EDIT:
Nowsza wersja poniżej.

Re: Zliczanie jednostek (parser jednostek)

PostNapisane: lis 27, 2020 13:31
przez badziewiak
Witam ponownie
Tym razem zmodyfikowałem to pod kątem użytkowym. Dodałem mnożniki literowe poniżej jedności (u=10E-6, m=10E-3, c=10E-2, d=10E-1) oraz zmodyfikowałem algorytm, aby poradził sobie z jednostkami, które są oznaczone tak samo jak mnożnik literowy (przykładowo mm). Będzie poprawnie liczył na przykład 1m+3cm+20mm.
W załączeniu algorytm i testowy programik.

EDIT:
Nowsza wersja poniżej.

Re: Zliczanie jednostek (parser jednostek)

PostNapisane: lis 29, 2020 18:17
przez badziewiak
Witajcie ponownie
Tym razem postanowiłem dodać coś, co z premedytacją pominąłem, bo fizycznie nie miało to żadnego sensu. Chodzi o możliwość odejmowania oraz liczby ujemne. Stwierdziłem, że w moich zastosowaniach operuję również jednostkami długości, a dokładniej rzędnymi. Zdarza się, że muszę wychodzić okablowaniem poniżej zera terenu, więc operacje na ujemnych metrach i centymetrach są potrzebne.
W załączeniu aktualna wersja algorytmu i programu do testowania. W programie testowym poprawiłem błędy implementacji algorytmu, teraz powinien wykrywać więcej błędów składni.

EDIT:
Nowsza wersja poniżej.

Re: Zliczanie jednostek (parser jednostek)

PostNapisane: gru 05, 2020 15:38
przez badziewiak
Witam ponownie
Zmodyfikowałem algorytm, aby wykrywał błąd składni - brak jednostki za liczbą. W załączeniu poprawiona wersja.