// // SAP-HINWEISE.VDM 10.12.2002 // 10.02.2004 Wieder alles in einem Directory ... // 13.08.2004 // 15.12.2004 // // // 2do: // bessere Index-Verwaltung (und Laden von Hinweisen). Evtl. eigene Index-Datei // Doubletten finden/bearbeiten // root-directory und dazu relative // bei falsch einsortieren HW: Frage, ob a) in Liste korrigiert oder b) auf Platte korrigiert werden soll (Doubletten beachten) // bei nicht gefunden HW: Frage, ob gedownloaded werden soll // Datum aktualisieren // // #90 current buffer# // #91 buf# Inhalt.txt // #92 buf# Inhalt.neu // #93 buf# temp for opening hint(s) // #94 // #95 flag: not found // #96 flag // #97 // #98 // #99 temp // // #103 temp. Cur_Pos // #104 temp. Buf# // #105 temp. Cur_Pos // #106 temp. Match result // // $90 // $91 // $92 // $93 Dir for Hinweise // $94 Kurztext // $95 Komponente // $96 Hnnnnn // $97 Hnnnnn.txt // $98 Directory // $99 // // $103 hint filename // $104 Directory // $105 hint# // $106 FILENAME / temp. #90=Buf_Num // current buffer Key_Add("Shft-F1", "[VISUAL EXIT] Call(100,'HELP')",OK) Key_Add("F12", '[VISUAL EXIT] #103=0 Call(100, "SHOWHINT")', OK) Key_Add("Shft-F12", '[VISUAL EXIT] #103=1 Call(100, "SHOWHINT")', OK) Key_Add("Ctrl-F12", '[VISUAL EXIT] #103=0 Call_File(Reg_Free, "SAP-OSS-Hinw.vdm") Save_Pos() Call(100, "INITREAD") Restore_Pos()', OK) Key_Add("Ctrl-Shft-F12", '[VISUAL EXIT] #103=1 Call_File(Reg_Free, "SAP-OSS-Hinw.vdm") Save_Pos() Call(100, "INITREAD") Restore_Pos()', OK) Key_Add("Shft-F10", '[VISUAL EXIT] Call(100, "SORTNUM")', OK) Key_Add("Ctrl-F10", '[VISUAL EXIT] Call(100, "SORTDATE")', OK) Key_Add("Shft-F11", '[VISUAL EXIT] Call(100, "SORTCOMP")', OK) Key_Add("Ctrl-F11", '[VISUAL EXIT] Call(100, "INITREAD")', OK) Reg_Set(116,` Call(100,'SHOWHINT') Update `) //----------------------------------------------------------------------------- :INITREAD: //Reg_Set(93, "F:\Data at Essen\Informatik\R3Basis\Infos\Hinweise") Reg_Set(93, "F:\Data at Gelsenkirchen\Informatik\SAP-R3\BC\Infos\Hinweise") chdir("|@(93)") Statline_Message("Please wait...") File_Open("Inhalt.txt") #91=Buf_Num File_Save(NOMSG) // if modified ... #99=File_Check("Inhalt.neu") if(#99 != -1){ Buf_Switch(#99) Buf_Quit(OK) } Buf_Switch(Buf_Free) #92=Buf_Num Statline_Message("Getting directory ...") File_Save_As("Inhalt.neu", OK+NOMSG) Out_Ins() dir('"*.txt" -s', COUNT, 1) Out_Ins(CLEAR) File_Save(NOMSG) #93=Buf_Free // temp buffer Buf_Switch(#92) // Inhalt.new BoF Statline_Message("Checking for new ...") Reg_Empty(98) // o.k. ? // neu im DIR dazu gekommene in Inhalt.txt nachtragen #95=0 // flag while (! At_EoF){ Update if (Match("|") Search("Kurztext", ADVANCE+NOERR) if(! EM){ Search("|!|W") Reg_Copy_Block(97, Cur_Pos, EoL_Pos) } Buf_Empty(OK) Buf_Switch(#92) EoL IT(" ") // it kurztext Reg_Ins(97) } } Line(1, NOERR) } Buf_Switch(#92) File_Save_As("Inhalt.txt", NOMSG) BoF return //-------------------------------------------------- :GET-DATES: // nur manuell! Buf_Switch(#91) // Inhalt.txt BoF while(! At_EoF){ if(Match("|") Search("Komponente", BEGIN+ADVANCE+NOERR) if(! EM){ Search("|!|W") #103=Cur_Pos Search("|X") Reg_Copy_Block(95, #103, Cur_Pos) } Buf_Quit(OK) Buf_Switch(#91) // Inhalt.txt // it komponenete Char(2) Reg_Ins(95) if(Cur_Col < 32){ Ins_Indent(32) }else{ Ins_Text(" ") } } } Line(1, NOERR) } Buf_Switch(#91) BoF Statline_Message("Ready.") return //-------------------------------------------------- :SHOWHINT: #104=Buf_Num // // Reg_Set(106, FILE_ONLY) // ist die aktuelle Datei schon ein Hinweis? // Buf_Switch(Buf_Free(EXTRA)) // Reg_Ins(106, BEGIN) // #106=Match("H|D|D|D|D") // Buf_Quit(OK) // if(#106==0){ // Buf_Quit() // dann schliessen und zurück zur Liste // Buf_Switch(#91) // Search(@106, BEGIN+NOERR) // return // } Save_Pos() if (! At_BoL) { Search("|{|X,|<}", REVERSE+NOERR+ADVANCE) // Wortbeginn suchen if(EM){ Restore_Pos() return } } // if(Match("H|D") != 0){ // wenn nicht auf Hnnnn ???? // BoL // Search("|!|X") // if(EM){ // Restore_Pos() // return // } // } if(Match("|[H]|D|D|D") == 0){ if (Chars_Matched == 4) { // Hnnnn #106 = Cur_Pos Char(1) Search("|!|D", NOERR) Reg_Copy_Block(105, #106, Cur_Pos) // Hnnnn Search("|X", NOERR) Reg_Copy_Block(103, #106, Cur_Pos) // Hnnnn[.txt] } else { // nnn #106 = Cur_Pos Search("|!|D", NOERR) Reg_Copy_Block(105, #106, Cur_Pos) // nnnn Search("|X", NOERR) Reg_Copy_Block(103, #106, Cur_Pos) // nnnn[.txt] } if ( Buf_Num != #91) { // wenn nicht in Inhalt.txt Buf_Switch(#91) Search(@105, BEGIN+NOERR) // Hinweis dort suchen if (EM) { Buf_Switch(#104) Statline_Message("Hinweis nicht gefunden.") Restore_Pos() // 2do: download hier??? Return } Search("|X", REVERSE+NOERR+ADVANCE) // Wortbeginn suchen #106 = Cur_Pos Char(1) Search("|!|D", NOERR) Reg_Copy_Block(105, #106, Cur_Pos) // Hnnnn Search("|X", NOERR) Reg_Copy_Block(103, #106, Cur_Pos) // Hnnnn[.txt] } // Search("| |(VEDIT_TEMP)\sap-hinweise.tmp"', DOS+SIMPLE) Buf_Switch(Buf_Free()) File_Open('"|(VEDIT_TEMP)\sap-hinweise.tmp"') if (File_Size > 0) { Replace("|<|*.bak|N", "", BEGIN+ALL+NOERR) BoF while(! At_EoF){ Ins_Text("Directory ") EoL Search("\", REVERSE) Del_Line(1) } Reg_Copy_Block(106, 0, File_Size) Buf_Quit(OK) Buf_Switch(#104) BoL // Line(-1) #105=Cur_Pos // Save_Pos() Ins_Text(">>> Hinweis ist hier zu finden:") Ins_Newline(1) Ins_Text(">>> ---------------------------") Ins_Newline(1) Ins_Text(">>> ") Reg_Ins(106) Ins_Newline(1) Ins_Text(">>> ") Goto_Pos(#105) // Restore_Pos() } else { Statline_Message("Hinweis nicht gefunden.") Buf_Quit(OK) Buf_Switch(#104) } } } } else { if ( Buf_Num != #91) { // wenn nicht in Inhalt.txt Restore_Pos() Reg_Set(105, FILE_ONLY) Buf_Quit() Buf_Switch(#91) Search(@105, BEGIN+NOERR) } else { Restore_Pos() } } return //------------------------------------------------------------------------ :NOTFOUND: #95=1 // flag //Search("Directory|W|@(98)", BEGIN+NOERR) // Directory-name //if(EM) { // EoF // Ins_Newline(1) // Ins_Text("Directory ") // Reg_Ins(98) // Ins_Newline(2) //} else { // Line(1) BoF Ins_Newline(1) //} Reg_Ins(96) Ins_Text(" ") Buf_Switch(#93) // tmp //if (File_Exist("|@(98)\|@(97)")) { // File_Open("|@(98)\|@(97)", NOEVENT) // open hint //} else { // File_Open("|@(98)\|@(97).txt", NOEVENT) // open hint //} if (File_Exist("|@(97)")) { File_Open("|@(97)", NOEVENT) // open hint } else { File_Open("|@(97).txt", NOEVENT) // open hint } Reg_Set(92, "__.__.____") BoF Search_Block("|D|D.|D|D.|D|D|D|D", 0, EoL_Pos, NOERR) if(! EM){ Reg_Copy_Block(92, Cur_Pos, Cur_Pos+Chars_Matched) } else { // .. Datum aus DIR holen } //copy kurztext Reg_Set(94, "") Search("Kurztext", BEGIN+ADVANCE+NOERR) if (! EM) { Search("|!|W") Reg_Copy_Block(94, Cur_Pos, EoL_Pos) } //copy komponente Reg_Set(95, "") Search("Komponente", BEGIN+ADVANCE+NOERR) if (! EM) { Search("|!|W") #103=Cur_Pos Search("|X") Reg_Copy_Block(95, #103, Cur_Pos) } Buf_Empty(OK) Buf_Switch(#91) // Inhalt.txt // it datum Reg_Ins(92) IT(" ") IT(" ") // Platz für Kategorie // it komponenete Reg_Ins(95) // it kurztext if (Cur_Col < 53) { Ins_Indent(53) } else { Ins_Text(" ") } Reg_Ins(94) //if (Cur_Col < 112) { // Ins_Indent(112) //} else { // Ins_Text(" ") //} //Ins_text("*NEU* ") Ins_Newline(1) return //------------------------------------------------------------------------ :UPDATEINFO: #95=1 // flag Reg_Ins(96, OVERWRITE) Ins_Text(" ", OVERWRITE) Buf_Switch(#93) // tmp if (File_Exist("|@(97)")) { File_Open("|@(97)", NOEVENT) // open hint } else { File_Open("|@(97).txt", NOEVENT) // open hint } File_Stamp_String(103) Reg_Set(92, "__.__.____") BoF Search_Block("|D|D.|D|D.|D|D|D|D", 0, EoL_Pos, NOERR) if(! EM){ Reg_Copy_Block(92, Cur_Pos, Cur_Pos + Chars_Matched) } else { // .. Datum aus DIR holen Buf_Switch(Buf_Free) // tmp Reg_Ins(103) BoF Search(" ") Reg_Copy_Block(92, 0, Cur_Pos) Buf_Quit(OK) Buf_Switch(#93) // tmp } //copy kurztext Reg_Set(94, "") Search("Kurztext", BEGIN+ADVANCE+NOERR) if (! EM) { Search("|!|W") Reg_Copy_Block(94, Cur_Pos, EoL_Pos) } //copy komponente Reg_Set(95, "") Search("Komponente", BEGIN+ADVANCE+NOERR) if (! EM) { Search("|!|W") #103=Cur_Pos Search("|X") Reg_Copy_Block(95, #103, Cur_Pos) } Buf_Empty(OK) Buf_Switch(#91) // Inhalt.txt // it datum Reg_Ins(92, OVERWRITE) Goto_Col(32) // it komponenete Reg_Ins(95, OVERWRITE) // it kurztext Goto_Col(53) Reg_Ins(94, OVERWRITE) return //------------------------------------------------------------------------ :UPDATEINFO2: if (File_Exist("|@(97)")) { Reg_Set(99, @97) } else { if (File_Exist("|@(97).txt")) { Reg_Set(99, ".txt", APPEND) } else { return } } BoL Search_Block("|D|D.|D|D.|D|D|D|D", Cur_Pos, EoL_Pos, NOERR) if (Error_Match) { return } #99=File_Stamp_Date("|@(99)") if (#99 > Num_Eval_Date(BEGIN+VALUE, '.')) { // Num_Ins_Date(#99, BEGIN+NOCR+OVERWRITE+VALUE, '.') buggy: VALUE is ignored (no); std is local; overwrite missing Del_Char(10) Num_Ins_Date(#99, NOCR) } return //------------------------------------------------------------------------ :UPDATE_INFO: if ( Buf_Num != #91) { // wenn nicht in Inhalt.txt return } EoL Ins_Indent(200) // to be sure to have enough space in the current line BoL #95=1 // flag Reg_Ins(105, OVERWRITE) Ins_Text(" ", OVERWRITE) Buf_Switch(#93) // tmp if (File_Exist("|@(103)")) { File_Open("|@(104)\|@(103)", NOEVENT) // open hint } else { File_Open("|@(104)\|@(103).txt", NOEVENT) // open hint } File_Stamp_String(103) Reg_Set(92, "__.__.____") BoF Search_Block("|D|D.|D|D.|D|D|D|D", 0, EoL_Pos, NOERR) if(! EM){ Reg_Copy_Block(92, Cur_Pos, Cur_Pos + Chars_Matched) } else { // .. Datum aus DIR holen Buf_Switch(Buf_Free) // tmp Reg_Ins(103) BoF Search(" ") Reg_Copy_Block(92, 0, Cur_Pos) Buf_Quit(OK) Buf_Switch(#93) // tmp } //copy kurztext Reg_Set(94, "") Search("Kurztext", BEGIN+ADVANCE+NOERR) if (! EM) { Search("|!|W") Reg_Copy_Block(94, Cur_Pos, EoL_Pos) } //copy komponente Reg_Set(95, "") Search("Komponente", BEGIN+ADVANCE+NOERR) if (! EM) { Search("|!|W") #103=Cur_Pos Search("|X") Reg_Copy_Block(95, #103, Cur_Pos) } Buf_Quit(OK) Buf_Switch(#91) // Inhalt.txt // it datum Reg_Ins(92, OVERWRITE) Goto_Col(32) // it komponenete Reg_Ins(95, OVERWRITE) // it kurztext Goto_Col(53) Reg_Ins(94, OVERWRITE) BoL Replace("|[|W]|>","", NOERR) BoL return