// // CHKHOSTS.VDM (C) C.Z. 15.10.1997 // 16.10.1997 // // vergleicht zwei Host-Tabellen miteinander und hilft synchronisieren // // Buffer 1 enthält die Master-Tabelle und // Buffer 2 die zu prüfende Tabelle // // // Achtung: Gross- und Kleinschreibung wird unterschieden. // Auskommentierte Zeilen in der zu prüfenden Datei werden ignoriert // // // Alt-CU/CD und Alt PU/PD scrollen beide Dateien synchron // #99=0 Config(S_E_MORE,0) Config( S_H_CR_LINE, "Highlight cursor Line (0 - 2)", 2 ) Key_Add("Alt-Cursor-Down", '[VISUAL EXIT] #91=BufNum BS(1) DOV("\CD\") BS(2) DOV("\CD\") BS(#91)', OK) Key_Add("Alt-Cursor-Up", '[VISUAL EXIT] #91=BufNum BS(1) DOV("\CU\") BS(2) DOV("\CU\") BS(#91)', OK) Key_Add("Alt-PgDn", '[VISUAL EXIT] #91=BufNum BS(1) DOV("\PD\") BS(2) DOV("\PD\") BS(#91)', OK) Key_Add("Alt-PgUp", '[VISUAL EXIT] #91=BufNum BS(1) DOV("\PU\") BS(2) DOV("\PU\") BS(#91)', OK) Key_Add("F12", '[VISUAL EXIT] Call(100,"ping")', OK) Key_Add("F11", '[VISUAL EXIT] M("TEST ")', OK) if(WinStatus(4)==-1){ Win_Reserved(4,6,BOTTOM) } Win_Switch(1, ATTACH) Win_Tile() Buf_Switch(2) Begin_Of_File Search("|<|[|W]|D", NOERR) while(!Error_Match){ Search("|D") Reg_Copy(14,1) Block_Begin(Cur_Pos) Search("|W") Reg_Copy_Block(11,Block_Begin,Cur_Pos) Block_Begin(CLEAR) Search("|!|W") Block_Begin(Cur_Pos) Search("|{|W,|L}") Reg_Copy_Block(12,Block_Begin,Cur_Pos) Block_Begin(CLEAR) Buf_Switch(1) Begin_Of_File Update Search("|@(11)",NOERR) if(Error_Match){ #98=1 Buf_Switch(2) Update Buf_Switch(1) Update WinSwitch(4) Message("Folgender Eintrag fehlt im Referenzfile[1]:\n") Message(" (wird gespeichert in T-Reg0)\n\n") Message(@14) Reg_Set(0,@14) #99=Get_Key("\nTaste drücken (e=Editieren / p=ping / q=Suche beenden) ...", RAW) } else { Search("|W") Search("|!|W") if(Match(@12, CASE)!=0){ #98=2 Reg_Copy_Block(15, BOL_POS, EOL_POS) WinSwitch(4) Buf_Switch(2) Update Buf_Switch(1) Update Message("Diese beide Einträge unterscheiden sich:\n\n") Message(@15) Message("\n") Message(@14) #99=Get_Key("\nTaste drücken (e=Editieren / p=ping / q=Suche beenden) ...", RAW) } } Message("\n") if(#99=='e'){ Buf_Switch(#98) Save_Pos() Line(1) Set_Marker(9,Cur_Pos) Restore_Pos() Message("\n\n\n\nWeitersuchen mit Ctrl-E oder Numpad-/ \n") Visual() Buf_Switch(2) GotoPos(Marker(9)) Set_Visual_Line(1) } if(#99=='q'){ Visual_Macro(SET) WinDelete(4) Win_Switch(1, ATTACH) WinTile() Return } if(#99=='p'){ Call("ping") } #99=0 Buf_Switch(2) Update Search("|<|[|W]|D", NOERR) } WinSwitch(4) Win_Clear() Message("\n\nVergleich beendet.") Get_Key("\n\n\nTaste drücken ...") WinDelete(4) Win_Switch(1, ATTACH) Win_Tile() Return //---------------------------------------------------------------------------- :ping: Begin_Of_Line Search("|!|W") if (Match("|D") != 0) { Statline_Message(" keine Ziffer(n) gefunden! ") } else { Block_Begin(Cur_Pos) Search("|W") Reg_Copy_Block(20,Block_Begin,Cur_Pos) Reg_Set(21, @20) Block_Begin(CLEAR) Message("\n") Reg_Set(20,"ping -z ",INSERT) Message("\n") Reg_Type(20) Message("\n") Reg_Set(20," > c:\tmp\chkhosts.tmp", APPEND) Message(" pinging, please wait ...", STATLINE) // #21=system(@20,OK) System(@20,DOS+SIMPLE+OK) Type_File("c:\tmp\chkhosts.tmp") Message("\n") Get_Key("Taste drücken ...", RAW) } Visual_Macro(8) Return