/* $ver: SprDokGUI.ged 1.1 (13.02.00) BLABLA PRODUCT © 1999 Siumot/BlaBla Skrypt sprawdza poprawnoôê ortograficznâ dokumentu, który znajduje sië w programie GoldED. W tym celu otwiera panel Orta na ekranie publicznym, na którym otwarty jest GoldED. Nastëpnie kolejno sprawdza wyrazy. Korygowanie rozpoczyna sië od wyrazu znajdujâcego sië pod kursorem tekstowym. Jeôli w konfiguracji Orta jest wîâczone îâczenie wyrazów a pod kursorem tekstowym znajduje sië wyraz, który Ort îâczy (np. "nie") to skrypt odczyta nastëpny wyraz i do sprawdzenia przeôle poîâczony wyraz (np. "nie lubië"). W takiej sytuacji kursor tekstowy przemieôci sië na drugi wyraz. Skrypt najlepiej podîoûyê pod klawisz funkcyjny lub pasek narzëdzi w programie GoldED. UWAGA!!! Jeôli nie zainstalowaîeô tego skryptu instalatorem Orta, musisz dopisaê nastëpujâcâ linië: ORTFILENAME=ôcieûka dostëpu/Ort Zamiast "ôcieûka dostëpu" naleûy oczywiôcie wpisaê ôcieûkë dostëpu do programu Ort (np. ORTFILENAME=dh2:tekst/ort/ort). */ OPTIONS RESULTS loncz_wyr='NIE NA CO PO JAK OD W BEZ Z NAD' inter=D2C(39)'"/)]}!?.:,;>\' IF (LEFT(ADDRESS(), 6) ~= "GOLDED") THEN address 'GOLDED.1' 'LOCK CURRENT RELEASE=4' IF (RC ~= 0) THEN exit OPTIONS FAILAT 20 SIGNAL ON SYNTAX IF ~SHOW('P', '2b_Ort_rexx') THEN DO IF ORTFILENAME='ORTFILENAME' THEN DO REQUEST 'PROBLEM="Program Ort nie jest uruchomiony."' 'UNLOCK' EXIT END REQUEST 'STATUS="Uruchamiam program Ort" STAY' ADDRESS COMMAND 'Run >NIL: "'ORTFILENAME'" CX_POPUP' ADDRESS COMMAND 'WaitForPort 2b_Ort_rexx' END ADDRESS '2b_Ort_rexx' Prefs Join Words czylacz=RESULT ADDRESS '2b_Ort_rexx' INFO Version IF RESULT<1.13 THEN DO REQUEST 'PROBLEM="Skrypt wymaga Orta w wersji 1.13+"' 'UNLOCK' EXIT END QUERY Y amiwin_y=RESULT QUERY WINH amiwin_h=RESULT QUERY SCREEN ekran=RESULT amiwin_z=0 oldamiwin_h=amiwin_h QUERY DOC sllokalny=RESULT ADDRESS '2b_Ort_rexx' WinOpen WinOpen local '"'sllokalny'"' pub ekran IF rc>1 THEN DO REQUEST 'PROBLEM="Nie mogë otworzyê okna!"' 'UNLOCK' EXIT END ELSE IF rc=1 THEN DO ADDRESS REXX IF Open('f','t:arexxort_ged','R') THEN DO amiwin_z=ReadLn('f') amiwin_h=ReadLn('f') Close('f') END ADDRESS END ADDRESS '2b_Ort_rexx' WinGet TOPEDGE ort_y=RESULT IF oldamiwin_hort_y THEN DO amiwin_z=amiwin_h-(amiwin_y+amiwin_h-ort_y) WINDOW 'HEIGHT='amiwin_z END ADDRESS REXX IF ~exists('t:arexxort_ged') THEN DO IF Open('f','t:arexxort_ged','W') THEN DO WriteLn('f',amiwin_z) WriteLn('f',amiwin_h) Close('f') END END ADDRESS REQUEST 'STATUS="Sprawdzam dokument"' QUERY WORD IF RESULT='' THEN NEXT linia=-1 kolumna=-1 DO FOREVER dwawyr=0 kropka=0 QUERY WORD wyraz=RESULT IF Length(wyraz)>1 THEN ENDWORD RIGHT QUERY CODE znak=D2C(RESULT) LEFT IF znak='.' THEN DO kropka=1 wyraz=wyraz||znak END IF ~(wyraz='') THEN DO IF czylacz=1 THEN DO IF ~(FIND(loncz_wyr,UPPER(wyraz))=0) THEN DO IF POS(znak,inter)=0 THEN DO NEXT QUERY WORD dczlon=RESULT IF FIND(loncz_wyr' I A RESULT',UPPER(dczlon))=0 THEN DO wyraz=wyraz' 'dczlon dwawyr=1 IF Length(dczlon)>1 THEN ENDWORD RIGHT QUERY CODE znak=D2C(RESULT) LEFT IF znak='.' THEN DO kropka=1 wyraz=wyraz||znak END END ELSE DO PREV ENDWORD END END END END ADDRESS '2b_Ort_rexx' WINCOR wyraz err=RESULT IF BITAND(1,err)=1 THEN DO /* poprawka */ IF kropka=1 THEN DO RIGHT DEL LEFT END DELETE WORD IF dwawyr=1 THEN DO PREV DELETE WORD END ADDRESS '2b_Ort_rexx' WinGet 'WORD' TEXT 'T="'RESULT'"' END IF BITAND(2,err)=2 THEN DO /* stop */ ADDRESS '2b_Ort_rexx' WinClearOldWord LEAVE END IF BITAND(4,err)=4 THEN DO /* zamkniëcie okna */ IF ~(amiwin_z=0) THEN WINDOW 'HEIGHT='amiwin_h LEAVE END END QUERY LINE 'VAR=LINIA' QUERY COLUMN 'VAR=KOLUMNA' QUERY WORD 'VAR=WYR' NEXT QUERY LINE IF Abs(RESULT-linia)=0 THEN DO QUERY COLUMN IF Abs(RESULT-kolumna)=0 THEN DO QUERY WORD IF wyr=RESULT THEN DO ADDRESS '2b_Ort_rexx' WinClose IF ~(amiwin_z=0) THEN WINDOW 'HEIGHT='amiwin_h LEAVE END END END END REQUEST 'STATUS=""' 'UNLOCK' exit SYNTAX: SAY "Sorry, error line" SIGL ":" ERRORTEXT(RC) 'UNLOCK' exit