// // SAP-DRUCKER-IMP.VDM CZ 03.01.2002 // 04.01.2002 // // Eingabedatei: Drucker-Definitionen als CSV // Ausgabedatei: Drucker-Definitionen für SAP-Import // // ToDo: Datum etc. im Header // // Titelzeile aufbereiten zu Feldnamen BoF Reg_Copy(11,1,DELETE) #99=Buf_Num #98=Buf_Free(EXTRA) Buf_Switch(#98) Reg_Ins(11) BoF while(! AT_EoF){ if(Cur_Char == 34){ // " Del_Char(1) Search('"') Del_Char(1) } Search(";", NOERR+ERRBREAK) Del_Char(1) Ins_Newline(1) } Replace("|<|L","",BEGIN+ALL+NOERR) BoF // Hauptdatei verarbeiten //Buf_Switch(#99) //Ins_Newline(1) //BoF while(! At_EoF){ Buf_Switch(#99) Ins_Text("* DEVICE = {") Ins_Newline(1) repeat(ALL){ Buf_Switch(#98) if(At_EoF){ BoF break } Reg_Copy_Block(11, Cur_Pos, EoL_Pos) Line(1,NOERR) Buf_Switch(#99) Ins_Text(" ") Reg_Ins(11) Ins_Text(" = ") if(Cur_Char != 34){ // " if(Cur_Char == 59){ // ; Ins_Text(/""/) }else{ Ins_Text(/"/) Search("|{;,|N}") Ins_Text(/"/) } } Search("|{;,|N}") if(Cur_Char == 59){ // ; Del_Char(1) Ins_Newline(1) }else{ Ins_Newline(1) } } Buf_Switch(#99) while(Match(/|["]@*/) == 0){ if(Match(/"/) == 0){ Del_Char(1) // " löschen #80=1 }else{ #80=0 } Ins_Text(/ * ATTR = /) Ins_Char(123) Ins_Newline(1) Ins_Text(" ") if(!#80){Del_Char(1)} // @ bzw " löschen repeat(ALL){ if(#80){Del_Char(1)} // " löschen Del_Char(1) // * löschen Search(" = ", ADVANCE) Ins_Text(/"/) if(#80){ Search(/"/, ADVANCE) // ans Ende des Feldes }else{ Search(/|{;,|N}/) // ans Ende des Feldes } if(Match(/;|["]@*/) == 0){ // nächstes Attribut Del_Char(1) if(!#80){Ins_Text(/"/)} Ins_Newline(1) Ins_Text(" ") Ins_Char(125) // geschw. Klammer zu Ins_Newline(1) break } if(Match(";") == 0){ // nächstes Feld im Attribut Del_Char(1) if(!#80){Ins_Text(/"/)} Ins_Newline(1) Ins_Text(" ") }else{ // letztes Feld in diesem Attribut Ins_Text(/"/) Ins_Newline(1) Ins_Text(" ") Ins_Char(125) // geschw. Klammer zu Ins_Newline(1) break } } } // // "@*PARAM = S_RESOURCE1";"*LINE = 00000001";"*VALUE = ";"@*PARAM = S_RESOURCE2";"*LINE = 00000001";"*VALUE = ";"@*PARAM = S_TRAY1";"*LINE = 00000001";"*VALUE = DINA4";"@*PARAM = S_TRAY2";"*LINE = 00000001";"*VALUE = DINA4" // //* ATTR = { // PARAM = "S_RESOURCE1" // LINE = "00000001" // VALUE = "" //} Ins_Char(125) // geschw. Klammer zu Line(1) } Buf_Switch(#98) Buf_Quit(OK) // Header einfügen (ToDo: noch aktualisieren) Buf_Switch(#99) BoF Out_Ins() Message(`VERSION = "0.1" TIME = "20020103151040" SYSTEM = "E40" RELEASE = "46B" `) Out_Ins(CLEAR) // Workaround wieder entfernen Replace(/CHGTSTMP1 = "'/,/CHGTSTMP1 = "/, BEGIN+ALL+NOERR) // evtl. überzählinge ";" vom Excel-Export entfernen Replace("|H7D|Y|N","|H7D|N", BEGIN+ALL+NOERR) BoF