10 REM UNFORM.100 by Don Zeikel [CIS 75775,1430; DELPHI "ZEIKEL"] 20 REM Strips carriage returns from lines within paragraphs. Leaves them at ends of paragraphs, on blank lines, and on formatted lists. 30 GOTO110 40 PB$=CHR$(27)+"p":QB$=CHR$(27)+"q":RETURN 50 A$=INKEY$:IFA$=""THEN50ELSERETURN 60 LOCATE8,7:PRINTPB$" Press any key to exit "PQ$;:RETURN 70 BEEP:SCREEN0,0:CLS:IFERR=52THENLOCATE5,2:PRINT"Not a valid file name.":LOCATE5,3:PRINT"Try again.":GOSUB470:GOSUB50:RUN120 80 IFERR=7THENLOCATE5,2:PRINT"Out of memory.":LOCATE5,3:PRINT"Delete some files & try again.":GOSUB60:GOSUB50:IFTR=1THENKILL"NEW##.DO":MAXFILES=1:MENUELSEMAXFILES=1:MENU 90 LOCATE5,2:PRINT"Please try again.":GOSUB470:GOSUB50:RUN120 110 SCREEN0,0:CLS:GOSUB40:LOCATE12,1:PRINTPB$" UNFORM.100 "QB$:LOCATE12,2:PRINT"by Don Zeikel":LOCATE10,3:PRINT"[CIS 75775,1430]":LOCATE4,4:PRINT"NEC Conversion by Philip Frank":LOCATE10,5:PRINT"[CIS 70117,2336]":GOSUB470:GOSUB50 120 CLS:CLEAR768:MAXFILES=2:GOSUB40 130 ONERRORGOTO70 140 CLS:FILES:LOCATE5,6:PRINT"Which file do you wish":LOCATE5,7:PRINT"to unformat? .DO ";:LOCATE19,7:PRINT""; 150 GOSUB50 160 IFASC(A$)>96ANDASC(A$)<123THENA$=CHR$(ASC(A$)-32) 170 PRINTA$;:IFASC(A$)=13THEN200ELSEDO$=DO$+A$:IFLEN(DO$)=6THEN190 180 GOTO150 190 GOSUB50 200 IFLEN(DO$)<6THENDO$=DO$+SPACE$(6-LEN(DO$)):Q$=DO$ 210 DO$=DO$+".DO": 220 OPENDO$FORINPUTAS1:X=0 230 CLS:LOCATE8,2:PRINTPB$;" Measuring "DO$" ";QB$:X$="":LINEINPUT#1,X$:IFLEN(X$)>200THEN250ELSECLOSE:OPENDO$FORINPUTAS1 240 X$="":IFEOF(1)THENBEEP:LOCATE5,4:PRINT"Format width of":LOCATE5,5:PRINT"file presently is"X:GOSUB450:GOTO310ELSELINEINPUT#1,X$ 250 IFX>200THENCLS:BEEP:LOCATE5,2:PRINT"File is already unformatted.":LOCATE5,3:PRINT"There is at least one line":LOCATE5,4:PRINT"longer than 200 characters.":GOSUB60:GOSUB50:MAXFILES=1:MENUELSE260 260 Y=LEN(X$):IFYTHENFORI=1TOY:IFASC(MID$(X$,I,1))>27ORASC(MID$(X$,I,1))=9THENNEXTELSE480 270 IFUQTHEN290ELSEIF(Y>X)THENX=Y:Q$=X$ 280 GOTO240 290 IF((Y>X)AND(Y<(3*UQ/4)))THENX=Y:Q$=X$ 300 GOTO240 310 CLOSE:OPENDO$FORINPUTAS1:OPEN"NEW##"FOROUTPUTAS2:TR=1:X=INT(2*X/3) 320 LINEINPUT#1,W$:LINEINPUT#1,X$:GOTO340 330 IFEOF(1)THEN410ELSEW$=X$:LINEINPUT#1,X$ 340 IFLEN(W$)=0ORLEN(X$)=0THEN400ELSEO=ASC(RIGHT$(W$,1)):P=ASC(LEFT$(X$,1)) 350 IF(LEN(W$)<=X)OR(P=9)THEN400 360 IFP=32THEN400 370 IFO>32ANDP>32ANDO<>46ANDO<>33ANDO<>63ANDO<>58THENW$=W$+" ":GOTO390 380 IF(O=46ORO=33ORO=63ORO=58)ANDP<>32THENW$=W$+" ":GOTO390 390 PRINT#2,W$;:GOTO330 400 PRINT#2,W$:GOTO330 410 PRINT#2,X$:DP$="OLD"+LEFT$(DO$,3)+".DO":NAMEDO$ASDP$:NAME"NEW##.DO"ASDO$ 420 BEEP:CLS:LOCATE3,2:PRINT"unformatting of "PB$" "DO$" "QB$" completed":LOCATE9,4:PRINT"Would you like to":LOCATE7,5:PRINT"save old version? (Y/N)";:GOSUB50:PRINTA$ 430 IFA$="Y"ORA$="y"THENCLS:LOCATE2,1:PRINT"Old file is now named "PB$" "DP$" "QB$:GOSUB60:GOSUB50:MAXFILES=1:MENU 440 IFA$="N"ORA$="n"THENCLOSE#1:KILLDP$:MAXFILES=1:MENUELSE420 450 GOSUB470:GOSUB50:CLS:PRINT"The following is a line from "DO$":":BEEP:PRINTPB$;Q$;QB$:PRINT"IS THIS A TYPICAL LENGTH LINE? (Y/N)";:GOSUB50 460 PRINTA$:IFA$="Y"ORA$="y"THENUQ=0:CLS:LOCATE8,2:PRINTPB$;" Unformatting "DO$" ";QB$:RETURNELSEUQ=X:CLOSE:GOTO220 470 LOCATE5,7:PRINTPB$;CHR$(154)" PRESS ANY KEY TO CONTINUE "CHR$(155);QB$;:RETURN 480 CLS:BEEP:LOCATE7,1:PRINT"File contains one or more":LOCATE9,2:PRINT"CONTROL CHARACTERS.":LOCATE7,4:PRINT"Delete them and try again.":GOSUB60:GOSUB50:MAXFILES=1:MENU