home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1989-10-02 | 28.4 KB | 1,152 lines
******************* PROCEDURE Word_pro PARAMETERS test_frame, clip_help, keyfunc word_color = SETCOLOR() DO CASE CASE PCOUNT() = 0 test_frame = "*.TXT" clip_help = "CLIP" IF TYPE("Keystroke()") = "UI" keyfunc = "KEYSTROKE" ELSE keyfunc = "" ENDIF CASE PCOUNT() = 1 clip_help = "CLIP" IF TYPE("Keystroke()") = "UI" keyfunc = "KEYSTROKE" ELSE keyfunc = "" ENDIF CASE PCOUNT() = 3 IF EMPTY(clip_help) clip_help = "CLIP" ENDIF IF EMPTY(test_frame) test_frame = "*.TXT" ENDIF ENDCASE IF !FILE("Screen.sys") .AND. TYPE("scrdata") = "U" RETURN ENDIF IF TYPE("allscreens") = "A" Savearray("SCREENS", allscreens) Savearray("COLORS", allcolor) Savearray("WINDOWS", allwindows) SAVE ALL TO (scrprog + "Holding.sys") Wordproc() Bringitup() RESTORE FROM (scrprog + "Holding.sys") ADDITIVE Restarray("SCREENS", allscreens) Restarray("COLORS", allcolor) Restarray("WINDOWS", allwindows) ERASE (scrprog + "Holding.sys") Delfile("*.arr") ELSE Wordproc() ENDIF ******************** PROCEDURE Wordproc PUBLIC tot_line, already EXTERNAL Dside STORE "" TO workfile, document, datafile, getfield, mac_file, head_text, foot_text STORE .F. TO mergefile, already, file_saved, quit_to, scrhelp STORE 0 TO intab, tot_line, left_mar, mac_point STORE 1 TO copies, line_sp STORE 79 TO right_mar STORE " " TO front_file STORE "" TO macros, macrostr, use_fils, use_names STORE "" TO word_pmts, good_files DECLARE macros[12], macrostr[12], use_files[8], use_names[8] CLEAR SCREEN @ 00,00 SAY "Loading Files into Table!" SET MESSAGE TO IF !FILE(clip_help + ".PMT") clip_help = "" ELSE DECLARE word_pmts[DEC_ARRAY(clip_help + ".PMT")] DO Restarray WITH clip_help + ".PMT", word_pmts ENDIF AFILL(macros, .F.) AFILL(macrostr, "") FOR tempx = 1 TO 12 IF tempx <= 8 use_names[tempx] = " " + TRANSFORM(tempx, "9") + "> No File Issued " use_files[tempx] = "" ENDIF NEXT SET KEY 306 TO Build_mac no_of_file = ADIR(test_frame) IF !EMPTY(no_of_file) && Loading the files for the word processor to scan DECLARE good_files[no_of_files] ADIR(test_frame, good_files) ASORT(good_files) ELSE good_files = "" ENDIF BRINGSETUP() IF FILE("Dataname.txt") && Load in Databases Only.. @ 01,00 SAY "Data Table Found!" DO Load_data ELSE DO Use_files ENDIF @ 0,0 CLEAR SET SCOREBOARD OFF @ 0,0 SAY "Steve Straley's Text Editor" PUSHSCREEN(1,1,10,12,.T.,.T.,.T.,.T.) DO WHILE .T. IF file_saved no_of_file = ADIR(test_frame) DECLARE good_files[no_of_files] ADIR(test_frame, good_files) ASORT(good_files) file_saved = .F. ENDIF DO Filestat @ 2,2 PROMPT " Open " @ 3,2 PROMPT " Make " @ 4,2 PROMPT " Save " @ 5,2 PROMPT " Clear " @ 6,2 PROMPT " Edit " @ 7,2 PROMPT " Features " @ 8,2 PROMPT " Printing " @ 9,2 PROMPT " Quit " MENU TO option5 DO CASE CASE option5 = 1 Open_file() CASE option5 = 2 Crea_file() CASE option5 = 3 @ 24,01 CLEAR @ 24,01 SAY "One Moment. Building Table...." Save_file() @ 24,01 CLEAR CASE option5 = 4 Clean_all() CASE option5 = 5 Edit_file() CASE option5 = 6 Features() CASE option5 = 7 Word4() CASE option5 = 8 @ 12,3 SAY "Are you sure you want to exit? " IF PROMPT() EXIT ELSE @ 12,00 ENDIF OTHERWISE KEYBOARD "Q" ENDCASE ENDDO POPSCREEN(1,1,10,12,.T.) SET KEY ASC("?") TO SET KEY 306 TO SET KEY 28 TO IF TYPE("Keystroke()") != "UI" SET KEY 291 TO ENDIF ******************** PROCEDURE Features mac_file = "KEYS" option6 = 1 PUSHSCREEN(8,3,19,27,.T.,.T.,.T.,.T.) DO WHILE .T. mac_file = mac_file + SPACE(8 - LEN(mac_file)) DO Filestat option6 = MAKEMENU("Set Left Margin/Set Right Margin/Set Line Spacing/Number of Copies/Header Information /Footer Information/Set Tab Indent/Save Macro File/Load Macro File/Save ASCII",9,4, "option6", 1, .T.) DO CASE CASE option6 = 1 @ 9,31 SAY "═══ " GET left_mar PICT "###" VALID Margin(left_mar, 1) READ @ 9,31 CASE option6 = 2 @ 10,31 SAY "═══ " GET right_mar PICT "###" VALID Margin(right_mar, 2) READ @ 10,31 CASE option6 = 3 @ 11,31 SAY "═══ " GET line_sp PICT "##" VALID Margin(line_sp, 3) READ @ 11,31 SAY SPACE(40) CASE option6 = 4 @ 12,31 SAY "═══ " GET copies PICT "##" VALID Margin(copies, 4) READ @ 12,31 SAY SPACE(40) CASE option6 = 5 @ 13,31 SAY "═══ Enter Header Text " head_text = FILL_OUT(TRIM(head_text),79) @ 14,31 GET head_text PICT "@S20" READ @ 13,31 SAY SPACE(40) @ 14,31 SAY SPACE(40) CASE option6 = 6 @ 14,31 SAY "═══ Enter Footer Text " foot_text = FILL_OUT(TRIM(foot_text),79) @ 15,31 GET foot_text PICT "@S20" READ @ 14,31 SAY SPACE(40) @ 15,31 SAY SPACE(40) CASE option6 = 7 @ 15,31 SAY "═══ Set Tab to " GET intab PICT "##" VALID Margin(intab, 5) READ @ 15,31 CASE option6 = 8 @ 16,31 SAY "═══ Save to " GET mac_file PICT "@K" READ IF EMPTY(mac_file) .OR. LASTKEY() = 27 ELSE mac_file = TRIM(mac_file) DO Save_mac ENDIF @ 16,31 SAY SPACE(40) CASE option6 = 9 @ 17,31 SAY "═══ Load from " GET mac_file PICT "@K !!!!!!!!" READ IF EMPTY(mac_file) .OR. LASTKEY() = 27 ELSE mac_file = TRIM(mac_file) DO Load_mac ENDIF @ 17,31 SAY SPACE(40) CASE option6 = 10 workfile = FILL_OUT(workfile, 12) @ 19,31 SAY "═══ SAVE to ASCII File " GET workfile PICT "@K !!!!!!!!!!!!" READ workfile = LTRIM(TRIM(workfile)) IF Occurence(".", workfile) > 1 workfile = SUBSTR(workfile, 1, AT(".", workfile) + 3) ENDIF IF LASTKEY() <> 27 @ 20,31 SAY "Now writing file &workfile. One Moment Please." IF !ASCII_SAVE(workfile, .T.) RID(20,29, "Now writing file &workfile. One Moment Please.") old_color = SETCOLOR() new_color = REVERSE(old_color) SETCOLOR(new_color) @ 20,31 SAY "Problems Writing the File. Please Check!! Any Key!!" INKEY(0) SETCOLOR(old_color) ENDIF ENDIF @ 19,31 SAY SPACE(40) OTHERWISE EXIT ENDCASE ENDDO POPSCREEN(8,3,19,27,.T.) ******************** PROCEDURE Word4 option6 = 1 Wpush(9,3,13,13) Filestat() IF !EMPTY(workfile) @ 10,4 SAY "No FIle " @ 11,4 SAY "can be " @ 12,4 SAY "open...! " INKEY(0) ELSE outfile = SPACE(8) @ 10,4 PROMPT " Screen " @ 11,4 PROMPT " Printer " @ 12,4 PROMPT " File " MENU TO option6 IF LASTKEY() != 27 Wpush(13,5,15,50) thefile = SPACE(12) @ Wrow(1), Wcol(1) SAY "Name of file to print => " GET thefile PICT "@!" VALID FILE(TRIM(thefile)) READ Wpop() DO CASE CASE option6 = 1 Pushscreen() Merging_it(TRIM(thefile), option6, outfile) Popscreen() CASE option6 = 2 IF !ISPRINTER() @ 11,25 SAY " ═ Your Printer is NOT on Line" INKEY(5) @ 11,25 SAY SPACE(31) ELSE Merging_it(TRIM(thefile), option6, outfile) ENDIF CASE option6 = 3 @ 12, 25 SAY " ═ Enter Output File Name ═══" @ 12, 17 GET outfile PICT "@!" VALID MAKE_TEXT(outfile, 14, 17) READ IF !EMPTY(outfile) Merging_it(TRIM(thefile), option6, outfile) ENDIF ENDCASE @ 12,17 @ 14,17 ENDIF ENDIF Wpop() ******************** PROCEDURE Merging_it PARAMETERS read_what, whatway, whatfile nofile = .T. IF whatway = 3 @ 24,00 @ 24,00 SAY "Now printing out &whatfile." SET ALTERNATE TO &whatfile SET ALTERNATE OFF ENDIF SELECT A GO TOP DO WHILE BREAKOUT() .AND. DISKSPACE() >= 4096 FOR temp_x = 1 TO copies Print_st(read_what, whatway, whatfile) IF LASTKEY() = 27 .OR. INKEY() = 27 EXIT ENDIF IF whatway = 1 @ 24,00 @ 24,00 SAY "Any key..." INKEY(0) ELSEIF whatway = 2 @ 24,00 SAY "Any key for next page, 'Q' to Quit.." IF Qwait("Q") GO BOTTOM SKIP EXIT ENDIF ELSE SET ALTERNATE ON SET CONSOLE OFF ? ? REPLICATE("-", 80) ? SET CONSOLE ON SET ALTERNATE OFF ENDIF NEXT IF nofile .OR. EOF() EXIT ENDIF SKIP ENDDO CLOSE ALTERNATE ******************** PROCEDURE Print_st PARAMETERS _pfile, _pway, _pout * _pfile is the name of the file to print * _pway is the output way: 1 for screen, 2 for printer, 3 for file * _pout is the name of the output file IF _pway = 1 CLEAR SCREEN ELSEIF _pway = 2 SET CONSOLE OFF @ 24,00 @ 24,00 SAY "Printing the file..." SET DEVICE TO PRINT SET PRINT ON ELSE SET CONSOLE OFF SET ALTERNATE ON ENDIF fhandle = FOPEN(_pfile) bytes = 1024 end = FSEEK(fhandle, 0, 2) line = "" count = 0 FSEEK(fhandle, 0, 0) DO WHILE .T. char = SPACE(bytes) exit = FREAD(fhandle, @char, bytes ) != bytes char = line + char DO WHILE !EMPTY(char) line = STRTRAN(Parsing(@char, CHR(13)+CHR(10) ), CHR(26), "") IF nofile IF CHR(174)$line nofile = .F. ENDIF ENDIF ?? SPACE(left_mar) + Print_stri(line) + REPLICATE( CHR(13)+CHR(10), line_sp) count = count + 1 ENDDO IF exit line = STRTRAN(line, CHR(26), "") ?? SPACE(left_mar) + Print_stri(line) + REPLICATE( CHR(13)+CHR(10), line_sp) count = count + 1 EXIT ENDIF ENDDO IF _pway = 2 && To the printer! EJECT ELSE FOR x = 66 TO count STEP -1 ? NEXT ENDIF FCLOSE(fhandle) SET CONSOLE ON SET DEVICE TO SCREEN SET PRINT OFF SET ALTERNATE OFF ******************** PROCEDURE Filestat @ 24,00 @ 24, 1, IF(!EMPTY(workfile), "Document Name => " + FILL_OUT(workfile, 15), SPACE(29)) @ 24,40, IF(!EMPTY(datafile), "Data File => " + FILL_OUT(datafile, 15), SPACE(36)) ******************** PROCEDURE Open_file SET KEY ASC("?") TO Inq_file IF !EMPTY(workfile) workfile = TRIM(SUBSTR(workfile, 1, AT(".", workfile)-1)) ELSE workfile = SPACE(13) ENDIF workfile = FILL_OUT(workfile, 13) @ 2,45 SAY [Press "?" to Get Listing] @ 2,15 SAY "═══ File " GET workfile PICT "@K@!" VALID(GOOD_TEXT(workfile)) READ @ 2,15 SAY SPACE(64) SET KEY ASC("?") TO IF EMPTY(workfile) document = "" RETURN ENDIF IF AT(".", workfile) = 0 .AND. test_frame = "*.TXT" workfile = Extention(TRIM(workfile), "TXT") ENDIF IF !FILE(workfile) @ 21,00 SAY CENTR("Unable to Open Document. Any key to continue...") INKEY(0) workfile = "" RETURN ENDIF already = .F. readi = (MEMORY(0) * 1000 ) / 3 _fhandle = FOPEN(workfile) FSEEK(_fhandle, 0) front_file = "" IF readi < 1000 readi = 1000 ENDIF document = FREADSTR(_fhandle, readi) FCLOSE(_fhandle) mergefile = .T. ******************** PROCEDURE Inq_file PARAMETERS p, l, v KEYBOARD "/" + CHR(13) ******************** PROCEDURE Edit_file IF EMPTY(workfile) @ 6,15 SAY "═══ You need to OPEN or MAKE a document first." INKEY(0) @ 6,15 SAY SPACE(50) RETURN ENDIF PUSHSCREEN() @ 0, 0 CLEAR @ 0, 0 SAY "Working with " GET workfile CLEAR GETS @ 1,0 SAY REPLICATE("═", 80) @ 21,0 SAY REPLICATE("═", 80) @ 1,left_mar SAY CHR(209) @ 1,IF(right_mar <= 79, right_mar, 79) SAY CHR(209) @ 21,left_mar SAY CHR(207) @ 21,IF(right_mar <= 79, right_mar, 79) SAY CHR(207) @ 24,00 SAY "Alt-H for On-Line Help" IF TYPE("Keystroke()") = "UI" IF !EMPTY(clip_help) @ ROW(), COL()+2 SAY "[ OR ] ALT T for Tutorial" ENDIF ELSE SET KEY 291 TO Wordhelp ENDIF SET SCORE OFF SET KEY -4 TO Showfield Set_macro(.T.) SET KEY 9 TO Tabbing SET KEY -1 TO Showmacro SET FUNCTION 10 TO CHR(23) right_side = IF(right_mar <= 79, right_mar, 79) document = ASCII_SAVE( MEMOEDIT(document, 2,left_mar, 20, right_side, .T., keyfunc, right_mar), .F. ) IF LASTKEY() = 23 Save_file() ENDIF SET KEY 9 TO SET KEY -4 TO SET KEY 28 TO SET KEY -1 TO Set_macro(.F.) POPSCREEN() ******************** PROCEDURE Tabbing PARAMETERS p, l, v KEYBOARD REPLICATE(" ", intab) ******************** PROCEDURE Crea_file IF !EMPTY(workfile) workfile = SUBSTR(workfile, 1, AT(".", workfile)-1) ENDIF workfile = workfile + SPACE(12 - LEN(workfile)) @ 3,15 SAY "════ File " GET workfile PICT "@K!!!!!!!!!!!!" VALID Make_text(workfile) READ @ 3,15 SAY SPACE(40) IF EMPTY(workfile) document = "" ELSE IF !mergefile front_file = "" ENDIF workfile = Extention(TRIM(workfile), "TXT") ENDIF ******************** PROCEDURE Clean_all @ 5,15 SAY "════ Are you sure you want to clean out system? " IF PROMPT() STORE "" TO workfile, document, datafile, clam, front_file STORE .F. TO mergefile SET KEY -4 TO ENDIF @ 5,15 SAY SPACE(60) ******************** PROCEDURE Save_file IF EMPTY(workfile) document = "" ELSE IF FILE(workfile) backup = SUBSTR(workfile, 1, AT(".", workfile)) + "BAK" COPY FILE (workfile) TO (backup) ENDIF IF workfile = "DATANAME.TXT" document = FORM(document) ENDIF SKIP 0 MEMOWRIT(workfile, document) STORE "" TO document, workfile, datafile, front_file STORE .F. to mergefile STORE .T. TO file_saved ENDIF ******************** FUNCTION Good_text PARAMETERS what_file IF EMPTY(what_file) .OR. FILE(what_file) RETURN(.T.) ENDIF IF EMPTY(LEN(good_files)) ?? " There are no files on disk to Open " STORE "" TO workfile, document INKEY(3) RETURN(.T.) ENDIF DO CASE CASE AT(".", what_file) = 0 IF test_frame = "*.TXT" what_file = TRIM(what_file) + ".TXT" ENDIF locat = ASCAN(good_files, TRIM(what_file)) CASE AT(".TXT", what_file) > 0 locat = ASCAN(good_files, what_file) CASE AT(".", what_file) > 0 locat = -1 OTHERWISE IF test_frame = "*.TXT" locat = 0 ELSE locat = ASCAN(good_files, TRIM(what_file)) ENDIF ENDCASE IF locat = -1 RETURN(.T.) ENDIF IF !EMPTY(locat) RETURN(.T.) ELSE where = APOP(2, 25, 20, 15, good_files, .T., "", .T.) IF where = 0 workfile = SPACE(8) ELSE workfile = good_files[where] IF test_frame = "*.TXT" workfile = SUBSTR(workfile, 1, AT(".", workfile) - 1) workfile = workfile + SPACE(8 - LEN(workfile)) ENDIF ENDIF KEYBOARD CHR(13) RETURN(.F.) ENDIF ******************** FUNCTION Make_text PARAMETERS what_file, mes_row, mes_col IF PCOUNT() = 1 mes_row = ROW() mes_col = COL() ENDIF IF EMPTY(what_file) RETURN(.T.) ENDIF IF AT(".", what_file) > 0 .AND. AT("TXT", what_file) = 0 RETURN(.T.) ENDIF IF AT(".", what_file) = 0 what_file = TRIM(what_file) + ".TXT" ENDIF * locat = IF(EMPTY(good_files), 0, ASCAN(good_files, what_file)) IF !FILE(what_file) @ mes_row, mes_col SAY " " RETURN(.T.) ELSE @ mes_row, mes_col SAY " That file is already on disk" RETURN(.F.) ENDIF ******************** PROCEDURE Showfield PARAMETERS p, l, v _holdcolor = SETCOLOR() trow = ROW() tcol = COL() * First pick the database to work with IF GOODFIELD() @ 1,0 SAY REPLICATE("═", 80) IF !EMPTY(getfield) SPELLIT(TRIM(getfield)) ENDIF ENDIF @ trow, tcol SAY "" SETCOLOR(_holdcolor) ******************** PROCEDURE Macro_show PARAMETERS p, l, v SETCOLOR(word_color) mac_point = LASTKEY() SET TYPEAHEAD TO LEN(macrostr[mac_point - 375]) CALL __cclr KEYBOARD macrostr[mac_point - 375] + CHR(0) ******************** PROCEDURE Spellit PARAMETERS the_word, extra IF EMPTY(the_word) RETURN ENDIF extra = IF(PCOUNT() = 1, .T., extra) spell = IF(extra, CHR(174), spell) spell = spell + ALIAS() + "->" + the_word + IF(extra, CHR(175), spell) KEYBOARD spell ******************** FUNCTION Goodfield PRIVATE _amount SETCOLOR(word_color) SET INTENS ON _amount = WITHFILE() IF !EMPTY(_amount) @ 00,40 SAY "Pick the File" IF Picktheone(_amount) @ 00,40 SAY "Pick the Field to Merge" DECLARE all_fields[FCOUNT()] AFIELDS(all_fields) where_x = Apop(1, 40, 13, 15, all_fields) getfield = IF((where_x = 0), SPACE(10), all_fields[where_x]) Rid(00,40,"Pick the Field to Merge") RETURN(.T.) ELSE @ 00,40 SAY " " RETURN(.F.) ENDIF Rid(00,40,"Pick the Field to Merge") ELSE RETURN(.F.) ENDIF ******************** FUNCTION Withfile PRIVATE _tmp _count = 0 FOR _qaz = 1 TO 50 _tmp = LTRIM(STR(_qaz)) SELECT &_tmp. IF !EMPTY(LEN(ALIAS())) _count = _count + 1 ENDIF NEXT RETURN(_count) ******************* FUNCTION Picktheone PARAMETERS _dec PRIVATE _tarray[_dec] FOR _qaz = 1 TO 50 SELECT (_qaz) IF !EMPTY(LEN(ALIAS())) _tarray[_qaz] = ALIAS() ENDIF NEXT SELECT 1 where_x = APOP(1, 40, 13, 15, _tarray) IF !EMPTY(where_x) SELECT(where_x) RETURN(.T.) ELSE RETURN(.F.) ENDIF ******************** PROCEDURE Build_mac PARAMETERS p, l, v SET KEY 306 TO trow = ROW() tcol = COL() _ocolor = SETCOLOR() SETCOLOR(IF(ISCOLOR() .AND. !(IF(TYPE("scrmono")="U", .T., scrmono)), "W+/B", SETCOLOR())) Wpush(4,0,18,75,3,.T.) Wsayget(1,2,"Press key to begin macro / ESC to Abort ═══ ") DO WHILE .T. the_key = INKEY(0) IF (the_key >= 376 .AND. the_key <= 387) .OR. the_key = 27 EXIT ENDIF ENDDO IF !(the_key = 27) mac_point = the_key - 375 SETCOLOR(_ocolor) Wsayget(Wdepth()-4,45, " KEY = ALT " + LTRIM(TRIM(STR(mac_point))) + " " ) SETCOLOR(IF(ISCOLOR() .AND. !(IF(TYPE("scrmono")="U", .T., scrmono)), "W+/B", SETCOLOR())) macros[mac_point] = .T. Clear_area() IF !EMPTY(macrostr[mac_point]) Wsayget(1,2,"Do you want to clear the original macro? ") IF Prompt() macrostr[mac_point] = "" ENDIF Rid(5, 7, "Do you want to clear the original macro? ") ENDIF Wsayget(1,2, "Enter keys to be in the macro. ") SETCOLOR(IF(ISCOLOR() .AND. !(IF(TYPE("scrmono")="U", .T., scrmono)), "W*+/R", SETCOLOR())) Wsayget(1,35," F10 TO Save! ") SETCOLOR(IF(ISCOLOR() .AND. !(IF(TYPE("scrmono")="U", .T., scrmono)), "W+/B", SETCOLOR())) tempmacro = macrostr[mac_point] infer = .F. tempmacro = MEMOTRAN(MEMOEDIT(tempmacro,WROW(3),WCOL(4),WROW(12),WCOL(60),.T.,"Myedit")) macrostr[mac_point] = "" macrostr[mac_point] = tempmacro IF LASTKEY() = 27 macrostr[mac_point] = tempmacro ELSE Set_macro(.T.) ENDIF ENDIF Wpop() SETCOLOR(_ocolor) @ trow, tcol SAY "" SET KEY 306 TO Build_mac ******************** PROCEDURE Set_macro PARAMETERS on IF on FOR tempx = 1 TO 12 IF !EMPTY(macros[tempx]) SET KEY 375 + tempx TO Macro_show ELSE SET KEY 375 + tempx TO ENDIF NEXT ELSE FOR tempx = 1 TO 12 SET KEY 375 + tempx TO NEXT ENDIF ******************** PROCEDURE Save_mac FOR _qaz = 1 TO 12 _ext = LTRIM(TRIM(STR(_qaz))) zmac&_ext. = macros[_qaz] zmacstr&_ext.= macrostr[_qaz] NEXT SAVE ALL LIKE zmac* TO (scrprog + mac_file + ".mac") ******************** PROCEDURE Load_mac IF !FILE(scrprog + mac_file + ".MAC") RETURN ENDIF RESTORE FROM (scrprog + mac_file + ".mac") ADDITIVE FOR _qaz = 1 TO 12 _ext = LTRIM(TRIM(STR(_qaz))) macros[_qaz] = zmac&_ext. macrostr[_qaz] = zmacstr&_ext. NEXT RELEASE ALL LIKE zmac* ******************** PROCEDURE Showmacro PARAMETERS p, l, v _t1 = ROW() _t2 = COL() Wpush(3,5,18,75,3,.T.) Wsayget( 0,10,CHR(194)) Wsayget( 1, 1, " Alt 1 │ ") Wsayget( 2, 1, " Alt 2 │ ") Wsayget( 3, 1, " Alt 3 │ ") Wsayget( 4, 1, " Alt 4 │ ") Wsayget( 5, 1, " Alt 5 │ ") Wsayget( 6, 1, " Alt 6 │ ") Wsayget( 7, 1, " Alt 7 │ ") Wsayget( 8, 1, " Alt 8 │ ") Wsayget( 9, 1, " Alt 9 │ ") Wsayget(10, 1, " Alt 0 │ ") Wsayget(11, 1, " Alt - │ ") Wsayget(12, 1, " Alt = │ ") Wsayget(13, 1, " │ ") Wsayget(14, 1, " │ ") Wsayget(15,10, CHR(193)) FOR qaz = 1 TO 12 IF EMPTY(macros[qaz]) Wsayget(qaz, 15, "---<not set>---") ELSE the_posit = AT(CHR(13), macrostr[qaz]) IF the_posit = 0 the_posit = AT(CHR(9), macrostr[qaz]) IF the_posit = 0 the_posit = LEN(macrostr[qaz]) ELSE the_posit = the_posit - 1 ENDIF ELSE the_posit = the_posit - 1 ENDIF Wsayget(qaz, 18, SUBSTR(macrostr[qaz], 1, IF((the_posit > 45), 45, the_posit))) ENDIF NEXT Wsayget(14, 30, "Press any key to resume Editing...") INKEY(0) Wpop() @ _t1, _t2, "" ******************** FUNCTION Form PARAMETERS clam tot_line = MLCOUNT(clam, right_mar - left_mar) RETURN( ASCII_SAVE(clam, .F.) ) ******************** PROCEDURE Load_data @ 02,00 SAY "Creating Temprorary Data File!" CREATE Template USE Template APPEND BLANK REPLACE field_name WITH "Name", field_type WITH "C", field_len WITH 18 USE CREATE Datafile FROM Template ERASE Template.dbf @ 03,00 SAY "Checking Data Table!" USE Datafile APPEND FROM Dataname.txt SDF GO TOP xxx = 1 @ 04,00 SAY "Creating Menu Items Accordingly!" DO WHILE !EOF() @ 05+xxx, 00 SAY " Menu " + LTRIM(TRANSFORM(xxx, "9")) + "!" use_files[xxx] = UPPER(TRIM(name)) SKIP use_names[xxx] = " " + TRANSFORM(xxx, "9") + "> " + FILL_OUT(UPPER(TRIM(name)),19) SKIP xxx = xxx + 1 IF xxx > 8 EXIT ENDIF ENDDO ******************** PROCEDURE Use_files c_nter = 1 FOR qaz = 1 TO 10 ext = LTRIM(TRIM(STR(qaz))) SELECT &ext. IF !EMPTY(ALIAS()) j_s_nter = LTRIM(TRIM(STR(c_nter))) use_files[c_nter] = ALIAS() use_names[c_nter] = FILL_OUT(" " + j_s_nter + "> " + ALIAS(), 23) c_nter = c_nter + 1 ENDIF NEXT ******************** FUNCTION Ascii_save PARAMETERS ascii_file, returned SKIP 0 IF returned MEMOWRIT(ascii_file, document ) RETURN((DOSERROR() = 0)) ELSE RETURN( HARDCR(ascii_file) ) ENDIF ******************** FUNCTION Myedit PARAMETERS _amode, _arow, _acol IF LASTKEY() = -9 KEYBOARD CHR(23) ELSEIF LASTKEY() = 279 && Inference IF infer && inference is on ELSE ENDIF infer = !infer ELSEIF LASTKEY() = 28 Wpush(WROW(2), WCOL(2), WROW(12), WCOL(65), 3, .T.) Wsayget(2,10, "Press F10 TO save the macro") Wsayget(3,10, "F1 is this screen") Wsayget(4,10, "ALT I - toggle inference") Wsayget(5,10, "F2 - Show Macros") Wsayget(7,10, "Any key to continue....") INKEY(0) Wpop() ENDIF RETURN(0) ******************** FUNCTION Margin PARAMETERS _themar, _toggle IF _toggle = 1 IF _themar < 0 @ 9,50 SAY "Margin MUST be > 0" RETURN(.F.) ELSEIF _themar > (right_mar - 5) @ 9,50 SAY "Margin MUST be < " + TRIM(TRANSFORM(right_mar - 5, "@B")) RETURN(.F.) ELSE @ 9,50 SAY SPACE(28) RETURN(.T.) ENDIF ELSEIF _toggle = 2 IF _themar > 150 @ 10,50 SAY "Margin MUST be < 150" RETURN(.F.) ELSEIF _themar < (left_mar + 5) @ 10,50 SAY "Margin MUST be > " + TRIM(TRANSFORM(left_mar + 5, "@B")) RETURN(.F.) ELSE @ 10,50 SAY SPACE(28) RETURN(.T.) ENDIF ELSEIF _toggle = 3 IF _themar < 1 @ 11,50 SAY "Line Space Must be > 1 " RETURN(.F.) ELSEIF _themar > 50 @ 11,50 SAY "Line Space Must be < 50" RETURN(.F.) ELSE @ 11,50 SAY SPACE(28) RETURN(.T.) ENDIF ELSEIF _toggle = 4 IF _themar < 1 @ 12,50 SAY "Number of Copies Must be > 1 " RETURN(.F.) ELSEIF _themar > 99 @ 12,50 SAY "Number of Copies Must be < 99" RETURN(.F.) ELSE @ 12,50 SAY SPACE(28) RETURN(.T.) ENDIF ELSEIF _toggle = 5 IF _themar < 0 @ 15,50 SAY "Tab settings MUST be > 0 " RETURN(.F.) ELSEIF _themar > 75 @ 15,50 SAY "Tab settings MUST be < 75" RETURN(.F.) ELSE @ 15,50 SAY SPACE(28) RETURN(.T.) ENDIF ENDIF ******************** PROCEDURE Wordhelp PARAMETER wp1, wp2, wp3 _cccolor = SETCOLOR() _ncolor = REVERSE(_cccolor) SETCOLOR(_ncolor) Wpush(2,5,11,75,3,.T.) WSAYGET( 1, 3, " ESC => Exits ║ Home => Beginning of Line") WSAYGET( 2, 3, " F1 => This Screen ║ End => End of Line") WSAYGET( 3, 3, " F2 => Show Macros ║ Ctrl PgUp => Top of File") WSAYGET( 4, 3, " F5 => Show Fields ║ Ctrl PgDn => End of File") WSAYGET( 5, 3, " F10 => Saves File ║ Ctrl RArrow => Right One Word") WSAYGET( 6, 3, "ALT H => This Screen ║ Ctrl LArrow => Left One Word") WSAYGET( 7, 3, "ALT M => Set Macro Keys ║ Ctrl W=> Saves in Memory") WSAYGET( 8, 3, "ALT W => Saves File ║ NOT ON DISK!") @ 10,RIGHT_JUST("Press Any Key to Return to Edit", 75) SAY "Press Any Key to Return to Edit" INKEY(0) Wpop() SETCOLOR(_cccolor) * End of File