Цитата Сообщение от lafromm31 Посмотреть сообщение
А есть утилита, которая из CAS или BAS делает TXT и наоборот?
Из BAS в TXT есть программа Tim0xи на Паскале под названием debasic:

Скрытый текст


Код:
Program DeBasic;
uses Crt;
const
  BasWord : array [32..228] of string[8]=(
{32}  ' ','!','"','#','$','%','&','^','(',')','*','+',',','-','.','/','0','1',
{50}  '2','3','4','5','6','7','8','9',':',';','<','=','>','?','@','A','B','C',
{68}  'D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U',
{86}  'V','W','X','Y','Z','[','\',']','^',' ','Ю','А','Б','Ц','Д','Е','Ф','Г',
{104} 'Х','И','Й','К','Л','М','Н','О','П','Я','Р','С','Т','У','Ж','В','Ь','Ы',
{122} 'З','Ш','Э','Щ','Ч','_',
{128} 'CLS','FOR','NEXT','DATA','INPUT','DIM','READ','CUR','GOTO','RUN','IF',
{139} 'RESTORE','GOSUB','RETURN','REM','STOP','OUT','ON','PLOT','LINE','POKE',
{149} 'PRINT','DEF','CONT','LIST','CLEAR','CLOAD','CSAVE','NEW','TAB(','TO',
{159} 'SPC(','FN','THEN','NOT','STEP','+','-','*','/','^','AND','OR','>','=','<',
{174} 'SGN','INT','ABS','USR','FRE','INP','POS','SQR','RND','LOG','EXP','COS',
{186} 'SIN','TAN','ATN','PEEK','LEN','STR$','VAL','ASC','CHR$','LEFT$','RIGHT$',
{197} 'MID$','POINT','INKEY$','AT','&','BEEP','PAUSE','VERIFY','HOME','EDIT',
{207} 'DELETE','MERGE','AUTO','HIMEM','@','ASN','ADDR','PI','RENUM','ACS',
{217} 'LG','LPRINT','LLIST','SCREEN','COLOR','GET','PUT','BSAVE','BLOAD',
{226} 'PLAY','PAINT','CIRCLE');
{  BasDWord: array [154,156,204,208,224,225] of string[8]=(
      'LOAD','SAVE','BYE','FILES','CLOSE','OPEN');}
var
  fin  : file of byte;
  fout : text;
  a,c,e: byte;
  Size : longint;
  S    : string;
  n    : integer;
begin
  WriteLn('"DEBASIC", v(1.1), @TimSoft, Chernigov, 2000');
  if paramcount=0 then begin
    WriteLn('debasic.exe filename.bbd [basfile.bas]');
    exit
  end;
  Assign(fin,paramStr(1));
  if ParamCount=2 then Assign(fout,ParamStr(2)) else Assign(fout,'vector.bas');
  Reset(fin); ReWrite(fout);
  repeat
    read(fin,a)
  until (a=$43);
  c:=3;
  repeat
    read(fin,a);
    if c=3 then n:=a;
    if c=4 then n:=n+a*256;
    if c=5 then begin
      write(fout,n);
      write(fout,#32)
    end;
    if c>4 then begin
      if a=0 then begin
        Write(fout,#$0D#$0A);
        c:=0;
      end else
      if a in [0..31] then write(fout,chr(a)) else
        if a in [32..228] then begin
          S:=BasWord[a];
          write(fout,S);
        end else write(fout,a);
    end;
    inc(c);
    if a<>0 then e:=0 else inc(e)
  until Eof(fin) or (e=3);
  Close(fin); Close(fout)
end.
[свернуть]