Stránka 4 z 4

Napsal: 08 čer 2021, 21:57
od termit256
Tohle moc spolehlive neni. Je lepsi to udelat tak jak radil FHonza. Cokoliv kdykoliv bude chtit komunikovat s GSM modulem nejdriv zkontroluje nejaky priznak jestli uz s tim nekomunikuje neco jineho a pokud ne, pred zacatkem komunikace tento priznak nastavi a po ukonceni zase vynuluje.

Hodnotou priznaku si treba muzes nastavit priority komunikace, muzes pozadavky na komunikaci bufferovat, radit podle dulezitosti a vyridit je postupne az na ne dojde cas apod. A hlavne pokud se tohoto budes dusledne drzet, zabranis tak jednoduse kolizim aniz bys musel premyslet ze mas zaply timer, ze ti pozadavek na komunikaci posle tamto nebo ono apod.

Ted tam mas jen timer a nejaky testovaci program, ale casem ti toho muze pribyt vic, budes potrebovat aby program delal neco jineho i v dobe kdy komunikuje apod. a pak se do toho zamotas, neco zapomenes a nestesti je na svete.

Napsal: 08 čer 2021, 22:17
od scorpions-cz
Asi začínám tušit jak to myslíte. Zítra když budu mít chvíli čas tak se pokusím něco vymyslet.

Napsal: 15 čer 2021, 08:28
od scorpions-cz
Tak bych zase potřeboval trochu postrčit :roll:
Vybrat část řetězce od nějakého znaku v určité délce umím, ale jde nějak vybrat část stringu, která je v uvozovkách? Je problém, že tato část je pokaždé na trochu jiném místě a je různě dlouhá.
Dík.

Napsal: 15 čer 2021, 23:11
od Mek7
Ten jazyk co pouzivas, pozna regular expressions? Cez tie by to mohlo ist.

Napsal: 16 čer 2021, 10:41
od FHonza
Metodou IndexOf najdeš první uvozovky. Zahodíš to, co je před nimi (metoda Substring). Pak najdeš druhé uvozovky a zahodíš to, co je za nimi.

Tady je příklad použití.

Napsal: 16 čer 2021, 13:46
od scorpions-cz
Dík. To by šlo. Zkusím se s tím poprat.

Napsal: 16 čer 2021, 14:52
od termit256
Tady mas funkci ktera dela presne to co potrebujes. Jako argumenty zadej retezec ze ktereho chces vytahnout text a zvoleny oddelovac (v tvem pripade uvozovky). Vrati text mezi oddelovaci.

Public Function GetStringFromQuotation(sText As String, sDelimiter As String)
Dim iPositionOfFirstDelimiter As Integer, iPositionOfSecondDelimiter As Integer
Dim iLenDelimiter As Integer
If Len(sText) = 0 And Len(sDelimiter) = 0 Then
GetStringFromQuotation = ""
Exit Function
End If
iLenDelimiter = Len(sDelimiter)
iPositionOfFirstDelimiter = InStr(sText, sDelimiter)
iPositionOfSecondDelimiter = InStr(iPositionOfFirstDelimiter + iLenDelimiter, _
sText, sDelimiter)
If iPositionOfFirstDelimiter > 0 And iPositionOfSecondDelimiter > 0 Then
GetStringFromQuotation = Mid(sText, iPositionOfFirstDelimiter + iLenDelimiter, _
iPositionOfSecondDelimiter - iPositionOfFirstDelimiter - iLenDelimiter)
Else
GetStringFromQuotation = ""
End If
End Function