home *** CD-ROM | disk | FTP | other *** search
- * -------------------------------------------------------- *
- * CFORMAT.PRG *
- * Dokumentationshilfe *
- * für dBase, FoxBase und Clipper-Programme *
- * (c) 1992 T.Gruschke und DMV-Verlag *
- * -------------------------------------------------------- *
-
- CLEAR
- SET EXACT ON
-
- PUBLIC zeile, zeile2, cc, alt_cm, bl
- PUBLIC cor[5], coe[5], cof[140], com[170]
-
- PARAMETERS file_in, file_out
-
- DO com_setzen && Arrays laden
- IF PCOUNT() = 1 && Keine Ausgabe? Setze Default-Name
- file_out = file_in + ".LST"
- ENDIF
-
- alt_cm = 0 && Letzter Befehlswert
- kennung = FCREATE("&file_out") && Ausgabe-Datei Öffnen
- kennung2 = FOPEN("&file_in" + ".prg") && Eingabe-Datei Öffnen
- lange = FSEEK(kennung2, 0, 2) && Länge der Eingabe-Datei ?
- FSEEK(kennung2, 0) && Auf Anfang setzen
- IF lange > 65535 && Länge > 65535 ?
- mla = lange/65535 && Teillänge ermitteln
- mla = mla + (lange - (lange/65535)) && und Restlänge addieren
- ELSE
- mla = lange && sonst einfache Länge
- ENDIF
- bl = 0 && Blanks zum einrücken
- cm = 0 && Befehlswert
- gesamt = 0
- DO WHILE gesamt < lange && bis zum Ende gehen.
- zeile2 = ""
- zeile = FREADSTR(kennung2, mla) && Datei einlesen
- zz = 0
- DO WHILE zz < mla-3 && Ganze Datei durchsuchen
- IF zz = 0
- p = 0 && Neue Zeile
- ELSE
- p = AT(CHR(13) + CHR(10), SUBSTR(zeile, zz, mla)) + 1
- ENDIF
- L1 = AT(CHR(13) + CHR(10), SUBSTR(zeile, zz + p, mla)) - 1
- zeil = ALLTRIM(SUBSTR(zeile, zz+p,L1))
- lzeil = LEN(zeil) && Länge einer Zeile
- lzeil2 = 0
- zzl = 1
- zeile2 = zeile2 + space(bl)
-
- ?? SPACE(bl)
-
- DO WHILE zzl <= lzeil && Eine Zeile durchsuchen
- ixxx = zzl
- L2 = AT(" ", SUBSTR(zeil, ixxx, lzeil))
- IF L2 = 0
- L2 = lzeil && Teilstücke ermitteln
- ENDIF
- c1 = SUBSTR(zeil, ixxx, L2)
- cc = LOWER(ALLTRIM(c1)) && Umwandeln zum Suchen
- cm = 0 && Werte für Befehle,Funktionen
- cr = 0 && und Schleifen auf 0 setzen
- ce = 0
- cf = 0
- IF LEN(cc) > 0 && Wenn zum Umwandeln,
-
- IF SUBSTR(cc, 1, 2) <> CHR(34)+"&"
-
- cm = ASCAN(com, "&cc") && dann Suchen nach Befehlen,
- cr = ASCAN(cor, "&cc") && Schleifen und Funktionen
- IF cm > 0
- IF ALLTRIM(LOWER(cc)) <> ALLTRIM(LOWER(com[cm]))
- cm = 0
- ENDIF
- ENDIF
- IF cr > 0
- IF ALLTRIM(LOWER(cc)) <> ALLTRIM(LOWER(cor[cr]))
- cr = 0
- ENDIF
- ENDIF
- IF cr > 0
- IF cr = 3 .AND. alt_cm = 72 && Sonderfall : LOCATE FOR
- bl = bl - 3
- ENDIF
- IF cr = 3 .AND. alt_cm = 69 && Sonderfall: FORM ... FOR ...
- bl = bl - 3
- ENDIF
- bl = bl + 3 && Schleifenanfang?-> einrücken
- ENDIF
- ce = ASCAN(coe, "&cc") && Schleifenende?-> zurückrücken
- IF ce > 0 .AND. bl > 0
- zeile2 = LEFT(zeile2, LEN(zeile2) - 3)
- @ row(), col()-3 SAY ""
- IF cc = "else"
- bl = bl + 3
- ENDIF
- bl = bl - 3
- ENDIF
- cf = ASCAN(cof, "&cc")
- ENDIF
- ENDIF
- IF cm > 0 .OR. cr > 0 .OR. ce > 0 .OR. cf > 0
- alt_cm = cm
- zeile2 = zeile2 + UPPER(cc) + " " && Ausgabezeile schreiben
-
- ?? UPPER(cc) + " " && Befehl
-
- ELSE
- zeile2 = zeile2 + c1 && kein Befehl
-
- ?? c1
-
- ENDIF
- zzl = zzl + L2 && Neuen Offset-> Zeile
- ENDDO
- IF lzeil2 > 0
- zeile2 = zeile2 + SUBSTR(zeil, lzeil, (lzeil2 - lzeil))
-
- ?? SUBSTR(zeil, lzeil, (lzeil2 - lzeil))
-
- ENDIF
-
- ?? CHR(13) + CHR(10)
-
- zeile2 = zeile2 + CHR(13) + CHR(10)
- zz = zz + L1 + p && Neuer Offset-> Datei
- FWRITE(kennung, zeile2, LEN(zeile2))
- zeile2 = ""
- ENDDO
- FWRITE(kennung, zeile2, LEN(zeile2)) && Ausgabe-Datei schreiben
- gesamt = gesamt + mla
- ENDDO
- RETURN
-
- * -------------------------------------------------------- *
-
- PROCEDURE com_setzen && Commands in Array füllen
- anz_cor = 3 && Anzahl Befehle,
- anz_coe = 4 && Funktionen, Anfang &
- anz_com = 164 && Ende (Schleifen)
- anz_cof = 139
-
- com[ 1] = "accept"
- com[ 2] = "append"
- com[ 3] = "average"
- com[ 4] = "to"
- com[ 5] = "fields"
- com[ 6] = "from"
- com[ 7] = "say"
- com[ 8] = "get"
- com[ 9] = "picture"
- com[ 10] = "range"
- com[ 11] = "clear"
- com[ 12] = "box"
- com[ 13] = "valid"
- com[ 14] = "prompt"
- com[ 15] = "message"
- com[ 16] = "double"
- com[ 17] = "blank"
- *com[ 18] = "for"
- *com[ 19] = "while"
- com[ 20] = "sdf"
- com[ 21] = "delimited"
- com[ 22] = "with"
- com[ 23] = "begin"
- com[ 24] = "sequence"
- com[ 25] = "break"
- com[ 26] = "end"
- com[ 27] = "call"
- com[ 28] = "cancel"
- com[ 29] = "quit"
- com[ 30] = "clear"
- com[ 31] = "screen"
- com[ 32] = "all"
- com[ 33] = "gets"
- com[ 34] = "memory"
- com[ 35] = "typeahead"
- com[ 36] = "close"
- com[ 37] = "alternate"
- com[ 38] = "databases"
- com[ 39] = "format"
- com[ 40] = "index"
- com[ 41] = "commit"
- com[ 42] = "continue"
- com[ 43] = "copy"
- com[ 44] = "file"
- com[ 45] = "structure"
- com[ 46] = "extended"
- com[ 47] = "count"
- com[ 48] = "create"
- com[ 49] = "from"
- com[ 49] = "declare"
- com[ 50] = "delete"
- com[ 51] = "dir"
- com[ 52] = "display"
- com[ 53] = "off"
- com[ 54] = "print"
- com[ 55] = "do"
- com[ 56] = "eject"
- com[ 57] = "erase"
- com[ 58] = "external"
- com[ 59] = "find"
- com[ 60] = "function"
- com[ 61] = "return"
- com[ 62] = "go"
- com[ 63] = "goto"
- com[ 64] = "on"
- com[ 65] = "input"
- com[ 66] = "join"
- com[ 67] = "keyboard"
- com[ 68] = "label"
- com[ 69] = "form"
- com[ 70] = "list"
- com[ 71] = "off"
- com[ 72] = "locate"
- com[ 73] = "menu"
- com[ 74] = "note"
- com[ 75] = "pack"
- com[ 76] = "parameters"
- com[ 77] = "private"
- com[ 78] = "procedure"
- com[ 79] = "public"
- com[ 80] = "read"
- com[ 81] = "save"
- com[ 82] = "recall"
- com[ 83] = "reindex"
- com[ 84] = "release"
- com[ 85] = "rename"
- com[ 86] = "like"
- com[ 87] = "except"
- com[ 88] = "replace"
- com[ 89] = "report"
- com[ 90] = "summary"
- com[ 91] = "plain"
- com[ 92] = "heading"
- com[ 93] = "noeject"
- com[ 94] = "restore"
- com[ 95] = "run"
- com[ 96] = "seek"
- com[ 97] = "select"
- com[ 98] = "set"
- com[ 99] = "alternate"
- com[100] = "bell"
- com[101] = "century"
- com[102] = "color"
- com[103] = "colour"
- com[104] = "confirm"
- com[105] = "console"
- com[106] = "cursor"
- com[107] = "date"
- com[108] = "american"
- com[109] = "ansi"
- com[110] = "british"
- com[111] = "german"
- com[112] = "french"
- com[113] = "italian"
- com[114] = "decimals"
- com[115] = "default"
- com[116] = "deleted"
- com[117] = "delimiters"
- com[118] = "device"
- com[119] = "escape"
- com[120] = "exact"
- com[121] = "exclusive"
- com[122] = "filter"
- com[123] = "fixed"
- com[124] = "format"
- com[125] = "function"
- com[126] = "intensity"
- com[127] = "key"
- com[128] = "margin"
- com[129] = "center"
- com[130] = "order"
- com[131] = "centre"
- com[132] = "path"
- com[133] = "relation"
- com[134] = "additive"
- com[135] = "scoreboard"
- com[136] = "softseek"
- com[137] = "typeahead"
- com[138] = "unique"
- com[139] = "wrap"
- com[140] = "alias"
- com[141] = "sort"
- com[142] = "store"
- com[143] = "sum"
- com[144] = "text"
- com[145] = "endtext"
- com[146] = "total"
- com[147] = "type"
- com[148] = "unlock"
- com[149] = "update"
- com[150] = "random"
- com[151] = "use"
- com[152] = "wait"
- com[153] = "zap"
- com[154] = ".not."
- com[155] = ".or."
- com[156] = ".and."
- com[157] = "case"
- com[158] = "endcase"
- com[159] = "skip"
- com[160] = "top"
- com[161] = "bottom"
- com[162] = "else"
- com[163] = ".t."
- com[164] = ".f."
-
- cof[ 1] = "abs("
- cof[ 2] = "achoice("
- cof[ 3] = "acopy("
- cof[ 4] = "adel("
- cof[ 5] = "adir("
- cof[ 6] = "afields("
- cof[ 7] = "afill("
- cof[ 8] = "ains("
- cof[ 9] = "alias("
- cof[ 10] = "alltrim("
- cof[ 11] = "altd("
- cof[ 12] = "asc("
- cof[ 13] = "ascan("
- cof[ 14] = "asort("
- cof[ 15] = "at("
- cof[ 16] = "bin2i("
- cof[ 17] = "bin2l("
- cof[ 18] = "bin2w("
- cof[ 19] = "bof("
- cof[ 20] = "cdow("
- cof[ 21] = "chr("
- cof[ 22] = "cmonth("
- cof[ 23] = "col("
- cof[ 24] = "ctod("
- cof[ 25] = "curdur("
- cof[ 26] = "date("
- cof[ 27] = "day("
- cof[ 28] = "dbedit("
- cof[ 29] = "dbfilter("
- cof[ 30] = "dbrelation("
- cof[ 31] = "dbrselect("
- cof[ 32] = "deleted("
- cof[ 33] = "descend("
- cof[ 34] = "diskspace("
- cof[ 35] = "doserror("
- cof[ 36] = "dow("
- cof[ 37] = "dtoc("
- cof[ 38] = "dtos("
- cof[ 39] = "empty("
- cof[ 40] = "eof("
- cof[ 41] = "errorlevel("
- cof[ 42] = "exp("
- cof[ 43] = "fclose("
- cof[ 44] = "fcount("
- cof[ 45] = "fcreate("
- cof[ 46] = "ferror("
- cof[ 47] = "field("
- cof[ 48] = "file("
- cof[ 49] = "flock("
- cof[ 50] = "fopen("
- cof[ 51] = "found("
- cof[ 52] = "fread("
- cof[ 53] = "freadstr("
- cof[ 54] = "fseek("
- cof[ 55] = "fwrite("
- cof[ 56] = "gete("
- cof[ 57] = "hardcr("
- cof[ 58] = "header("
- cof[ 59] = "i2bin("
- cof[ 60] = "iif("
- cof[ 61] = "if("
- cof[ 62] = "indexext("
- cof[ 63] = "indexkey("
- cof[ 64] = "indexord("
- cof[ 65] = "inkey("
- cof[ 66] = "int("
- cof[ 67] = "isalpha("
- cof[ 68] = "iscolor("
- cof[ 69] = "iscolour("
- cof[ 70] = "islower("
- cof[ 71] = "isprinter("
- cof[ 72] = "isupper("
- cof[ 73] = "l2bin("
- cof[ 74] = "lastkey("
- cof[ 75] = "lastrec("
- cof[ 76] = "recount("
- cof[ 77] = "left("
- cof[ 78] = "len("
- cof[ 79] = "log("
- cof[ 80] = "lower("
- cof[ 81] = "ltrim("
- cof[ 82] = "lupdate("
- cof[ 83] = "max("
- cof[ 84] = "memoedit("
- cof[ 85] = "memoline("
- cof[ 86] = "memoread("
- cof[ 87] = "memory("
- cof[ 88] = "memotran("
- cof[ 89] = "memowrit("
- cof[ 90] = "min("
- cof[ 91] = "mlcount("
- cof[ 92] = "mlpos("
- cof[ 93] = "month("
- cof[ 94] = "neterr("
- cof[ 95] = "netname("
- cof[ 96] = "nextkey("
- cof[ 97] = "pcol("
- cof[ 98] = "pcount("
- cof[ 99] = "procline("
- cof[100] = "procname("
- cof[101] = "prow("
- cof[102] = "rat("
- cof[103] = "readexit("
- cof[104] = "readinsert("
- cof[105] = "readvar("
- cof[106] = "recno("
- cof[107] = "recsize("
- cof[108] = "replicate("
- cof[109] = "restscreen("
- cof[110] = "right("
- cof[111] = "rlock("
- cof[112] = "round("
- cof[113] = "row("
- cof[114] = "savescreen("
- cof[115] = "scroll("
- cof[116] = "seconds("
- cof[117] = "select("
- cof[118] = "setcancel("
- cof[119] = "setcolor("
- cof[120] = "setprc("
- cof[121] = "soundex("
- cof[122] = "space("
- cof[123] = "sqrt("
- cof[124] = "str("
- cof[125] = "strtran("
- cof[126] = "stuff("
- cof[127] = "substr("
- cof[128] = "time("
- cof[129] = "tone("
- cof[130] = "transform("
- cof[131] = "trim("
- cof[132] = "type("
- cof[133] = "updated("
- cof[134] = "upper("
- cof[135] = "used("
- cof[136] = "val("
- cof[137] = "word("
- cof[138] = "year("
- cof[139] = "browse("
-
- cor[ 1]= "if"
- cor[ 2]= "while"
- cor[ 3]= "for"
-
- coe[ 1]= "next"
- coe[ 2]= "endif"
- coe[ 3]= "wend"
- coe[ 4]= "enddo"
- coe[ 5]= "else"
-
- RETURN
-
- * -------------------------------------------------------- *
- * Ende von CFORMAT.PRG *
-
-
-