Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Nu er jeg jævnt dårlig til COBOL, men jeg kender base64.
Prøv og se om du kan shine det her lidt op:
IDENTIFICATION DIVISION. PROGRAM-ID. B64DECODE.
ENVIRONMENT DIVISION.
DATA DIVISION. WORKING-STORAGE SECTION. 01 I PIC 9(1) BINARY. 01 L2 PIC 9(3) BINARY. 01 ARRAYS. 03 B6 PIC 9(3) BINARY OCCURS 4. 03 B8 PIC 9(3) BINARY OCCURS 3. LINKAGE SECTION. 01 S PIC X(100) DISPLAY. 01 RES PIC X(100) DISPLAY. 01 L PIC 9(3) BINARY.
PROCEDURE DIVISION USING S, RES, L. MAIN-PARAGRAPH. MOVE 0 TO L PERFORM VARYING L2 FROM 1 BY 4 UNTIL S(L2:1) = " " PERFORM VARYING I FROM 1 BY 1 UNTIL I > 4 MOVE FUNCTION ORD(S(-1+L2+I:1)) TO B6(I) SUBTRACT 1 FROM B6(I) END-PERFORM PERFORM VARYING I FROM 1 BY 1 UNTIL I > 4 IF B6(I) >= 48 AND B6(I) <= 57 THEN COMPUTE B6(I) = B6(I) + 4 ELSE IF B6(I) >= 65 AND B6(I) <= 90 THEN COMPUTE B6(I) = B6(I) - 65 ELSE IF B6(I) >= 97 AND B6(I) <= 122 THEN COMPUTE B6(I) = B6(I) - 71 ELSE IF B6(I) = 43 THEN COMPUTE B6(I) = 62 ELSE IF B6(I) = 47 THEN COMPUTE B6(I) = 63 ELSE IF B6(I) = 61 THEN COMPUTE B6(I) = 0 END-IF END-IF END-IF END-IF END-IF END-IF END-PERFORM COMPUTE B8(1) = B6(1) * 4 + B6(2) / 16 COMPUTE B8(2) = FUNCTION MOD(B6(2), 16) * 16 + B6(3) / 4 COMPUTE B8(3) = FUNCTION MOD(B6(3), 4) * 64 + B6(4) PERFORM VARYING I FROM 1 BY 1 UNTIL I > 3 ADD 1 TO B8(I) MOVE FUNCTION CHAR(B8(I)) TO RES(L+I:1) END-PERFORM ADD 3 TO L GIVING L END-PERFORM EXIT PROGRAM.
PROCEDURE DIVISION USING S, RES, L. MAIN-PARAGRAPH. MOVE 0 TO L PERFORM VARYING L2 FROM 1 BY 4 UNTIL S(L2:1) = " " PERFORM VARYING I FROM 1 BY 1 UNTIL I > 4 MOVE FUNCTION ORD(S(-1+L2+I:1)) TO B6(I) SUBTRACT 1 FROM B6(I) END-PERFORM MOVE 0 TO EQ PERFORM VARYING I FROM 1 BY 1 UNTIL I > 4 IF B6(I) >= 48 AND B6(I) <= 57 THEN COMPUTE B6(I) = B6(I) + 4 ELSE IF B6(I) >= 65 AND B6(I) <= 90 THEN COMPUTE B6(I) = B6(I) - 65 ELSE IF B6(I) >= 97 AND B6(I) <= 122 THEN COMPUTE B6(I) = B6(I) - 71 ELSE IF B6(I) = 43 THEN COMPUTE B6(I) = 62 ELSE IF B6(I) = 47 THEN COMPUTE B6(I) = 63 ELSE IF B6(I) = 61 THEN COMPUTE B6(I) = 0 ADD 1 TO EQ END-IF END-IF END-IF END-IF END-IF END-IF END-PERFORM COMPUTE B8(1) = B6(1) * 4 + B6(2) / 16 COMPUTE B8(2) = FUNCTION MOD(B6(2), 16) * 16 + B6(3) / 4 COMPUTE B8(3) = FUNCTION MOD(B6(3), 4) * 64 + B6(4) PERFORM VARYING I FROM 1 BY 1 UNTIL I > 3 ADD 1 TO B8(I) MOVE FUNCTION CHAR(B8(I)) TO RES(L+I:1) END-PERFORM ADD 3 TO L GIVING L END-PERFORM SUBTRACT EQ FROM L EXIT PROGRAM.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.