Skocz do zawartości

REGEX walidacja wprowadzonych danych [Rozwiązany]


Pomocna odpowiedź

5 minut temu, _LM_ napisał:

A dobra widzę twoje artykuły, więc jeszcze inna opcja od QT. Zapoznam się 

ANTLR4 służy do projektowania języków programowania wbudowanych w projekty 😉 

Póki co nie widzę dodatku do b4x, swoją drogą program ma jeszcze jeden bug - pozwala zdefiniować wielokrotnie te same indeksy 

[A=40009][B=20000][A = 2222][C=300002]

mapa nadpisze indeksy na szczęście jest dosyć łatwe do wykrycia

Zrobiłem to w taki sposób:

		If indexList.Size <> mathComponents.Size Then
			tfArgs.Color = xui.Color_Red ' coś nie tak
		End If
	

Jeśli wstępna lista ma różny rozmiar od mapy... obiekt map działa w taki sposób że jeśli podczas dodawania kluczy trafią się dwa takie same to zostaną one nadpisane, wtedy rozmiar mapy będzie inny od rozmiaru listy. Taki błąd nie pozwoli zamknąć okna dialogowego z sukcesem wymusi na użytkownikowi weryfikację wprowadzonych danych. 

(edytowany)

No, można powiedzieć że tworzenie wyrażeń matematycznych mam z głowy. O co chodziło - program pobiera dane z urządzeń magistrali modbus TCP, następne wyświetla je w tabeli:

java_EekFcChoO1.thumb.png.66d6473f460c65bb91b4a2e0fb8a3c51.png

Znając dokumentację odczytywanego urządzenia można przeprowadzić dowolne obliczenia na pobranych danych (po to mi było tworzenie wyrażeń)

java_mhqiYosie4.thumb.png.6eca04e12513d7cb0acfad9308b15f63.png

W istocie przypisanie np:[A=400000] wskazuje adres komórki z której mają być wzięte parametry. Biblioteka którą mam do zapisywania wzoru równania pozwala na wszelkie znane równania łącznie z notacją naukową. 

deg, rad, abs, acos, asin, atan, atan2, cbrt, ceil, constrain, cos, cosh, exp, floor, hypot, log, log10, map, max, min, pow, round, sin, sinh, sqrt, tan, tanh

i tworzenie rozmaitych równań
 

x=2*2;y=sqrt(4);25/x+y

https://www.b4x.com/android/forum/threads/mflib-common-functions-image-manipulation-math-parser.40172/

Edytowano przez _LM_
  • 6 miesiące później...

Kolejna formułka poszukiwana! Mam zbiór danych:

W (2892) T::  13 {1600,1547,1587},
W (17552) T:: 14 {1595,1537,1584},
W (32312) T:: 15 {1591,1535,1580},
W (47012) T:: 16 {1588,1534,1577},
W (59912) T:: 17 {1587,1533,1576},
W (74592) T:: 18 {1584,1529,1574},
W (89352) T:: 19 {1581,1527,1572},
W (104052) T:: 20 {1579,1524,1570},
W (120592) T:: 21 {1577,1523,1569},
W (137192) T:: 22 {1576,1522,1567},
W (153732) T:: 23 {1574,1521,1566},
W (173952) T:: 24 {1571,1520,1564},
W (192372) T:: 25 {1570,1519,1563},
W (214432) T:: 26 {1568,1519,1562},
W (236492) T:: 27 {1565,1519,1560},
W (260432) T:: 28 {1564,1519,1558},
W (286152) T:: 29 {1562,1518,1557},
W (313752) T:: 30 {1560,1518,1556},
W (343192) T:: 31 {1558,1518,1554},
W (374452) T:: 32 {1557,1519,1553},
W (409392) T:: 33 {1555,1519,1551},
W (448032) T:: 34 {1553,1520,1550},
W (486692) T:: 35 {1553,1519,1548},
W (530852) T:: 36 {1552,1519,1547},
W (576812) T:: 37 {1550,1516,1545},
W (626512) T:: 38 {1548,1507,1544},
W (679812) T:: 39 {1546,1506,1543},
W (738712) T:: 40 {1545,1503,1541},
W (801252) T:: 41 {1540,1501,1540},
W (869332) T:: 42 {1539,1499,1539},
W (942892) T:: 43 {1538,1497,1537},
W (1022012) T:: 44 {1535,1495,1535},
W (1106612) T:: 45 {1534,1494,1534},
W (1296172) T:: 46 {1529,1491,1533},
W (1320052) T:: 47 {1520,1476,1532},
W (1334792) T:: 48 {1516,1476,1531},
W (1347692) T:: 49 {1513,1473,1530},
W (1360592) T:: 50 {1512,1474,1529},
W (1371632) T:: 51 {1511,1470,1528},
W (1382672) T:: 52 {1510,1469,1529},
W (1391852) T:: 53 {1509,1466,1526},
W (1401032) T:: 54 {1512,1465,1523},
W (1410272) T:: 55 {1513,1466,1523},
W (1417592) T:: 56 {1513,1468,1522},
W (1424972) T:: 57 {1511,1470,1524},
W (1436012) T:: 58 {1510,1472,1524},
W (1443392) T:: 59 {1508,1471,1521},
W (1450712) T:: 60 {1508,1472,1520},
W (1461792) T:: 61 {1507,1469,1519},
W (1474632) T:: 62 {1505,1464,1519},
W (1485672) T:: 63 {1503,1465,1517},
W (1496692) T:: 64 {1502,1463,1516},
W (1509592) T:: 65 {1501,1462,1515},
W (1520612) T:: 66 {1500,1462,1514},
W (1535312) T:: 67 {1498,1461,1513},
W (1550012) T:: 68 {1496,1459,1511},
W (1566572) T:: 69 {1495,1459,1510},
W (1584992) T:: 70 {1493,1459,1510},
W (1605212) T:: 71 {1492,1459,1509},
W (1629152) T:: 72 {1489,1456,1507},
W (1660452) T:: 73 {1488,1456,1506},
W (1700932) T:: 74 {1487,1454,1506},
W (1766992) T:: 75 {1486,1454,1504},

Potrzebuję z tego wyłuskać tylko to co znajduje się w klamrach, tak aby można z tego zrobić tablicę wartości szukanych:

{1488,1456,1506},
{1487,1454,1506},
{1486,1454,1504},

testuję to na https://regexr.com/ z wyrażeniem 

([{,},])\w+

zwraca 

{1600
,1547
,1587
{1595

A więc nie domyka klamerek. 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...