?SUBSTR(DTOS(DATE()),7,2)+"."+ SUBSTR(DTOS(DATE ()),5,2)+"."+ SUBSTR(DTOS(DATE()),3,2)ale rozhodně je jednodušší
?CHRTRAN("78.56.34", "12345678", DTOS(DATE()))Nápověda : druhý řetězec "očísluje" znaky v třetím řetězci, první řetězec určuje pořadí těchto očíslovaných znaků ve výsledném řetězci a také přidané znaky.
jmeno = "Milan " prijmeni = "Kosina "často složitě píšeme
?alltrim(jmeno)+" "+alltrim(prijmeni)Jednodušší ale je
?jmeno-(" "+prijmeni)
lnPočetSlov = ALINES(laSlova,CHRTRAN(lcStr, " ", CHR(13)), .T.)Podobně bychom postupovali pro slova oddělená čárkami,…
lcStr = "00000123000456000"kde se potřebujeme zbavit vedoucích nul. K tomu stačí
lcCharX = "0" ?CHRTRAN(LTRIM(CHRTRAN(lcStr, lcCharX+" ", " "+lcCharX)), " "+lcCharX, lcCharX+" ")Nápověda : nejprve CHRTRAN() vymění v celém řetězci znak za mezeru, potom pomocí LTRIM() odstraníme mezery pouze ze začátku řetězce a nakonec pomocí dalšího CHRTRAN() vyměníme zpět mezeru za znak.
lcStr = "Posíláme Vám fakturu na 123 šroubků"a chceme z něj vybrat všechny číslice. Definujme proto které znaky chceme vybrat
lcCharOK = "0123456789"a potom už stačí použít
?CHRTRAN(lcStr, CHRTRAN(lcStr, lcCharOK, ""), "")Nápověda : nejprve pomocí CHRTRAN() vytvoříme tabulku znaků, které NECHCEME, a ty pomocí ní v dalším CHRTRAN() odstraníme.
#define WM_SYSCOMMAND 0x0112 #define SC_SCREENSAVE 0xF140 DECLARE INTEGER SendMessage IN Win32API ; INTEGER hwnd, INTEGER uMsg, INTEGER wParam, INTEGER lParam DECLARE INTEGER GetDesktopWindow IN Win32API lnhWnd = GetDesktopWindow() = SendMessage(lnhWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0)
A to je vše. Zdraví vás
Milan Kosina, kosina@vol.cz