Section One BBS

Welcome, Guest.


Subject: Some code i'm having problems with. Date: Sat Feb 13 2016 12:50 am
From: joseph larsen To: All

Here's some code. The problem is that I have to press the down arrow key
twice before it executes the "bot_bar" procedure. If anyone could help, or
take a look at it, i'd appreciate it.

--//--snip-------------------------

procedure oneliners;

var  Twriters  : array[1..10] of string;
var  Toneliner : array[1..10] of string;
var  S         : string;
var  Foneline  : string;
var  Ch1       : char;
var  Ch2       : char;
var  Ch3       : char;
var  Count     : byte;
var  Count2    : byte;



Procedure show;

var Count : byte;

Begin

  printf('oneh.ans');
  For Count := 1 To 10 Do Begin;
    write('^[[1;37m+ ^[[0;37m');
    write(Twriters[Count]);
    write('^[[1;30m: ^[[0;37m');
    WriteLn(Toneliner[Count]);
  End;
End; // show

Procedure init;

Var f1 : textfile;
var Count : byte;

Begin
  fOneLine := ('/home/imp/imp/data/oneliner.lst');
  If Not fileExists(fOneLine) Then Begin
    Assign(f1, fOneLine);
    ReWrite(f1);
    For Count := 1 To 10 Do Begin
      WriteLn(f1,'Ia! Cthulhu!');
      WriteLn(f1,'IGNATIUS');
    End;
    Close(f1);
  End;

  Assign(f1, fOneLine);
    Reset(f1);
    If IoResult = 0 Then Begin
      For Count := 1 To 10 Do Begin
        ReadLn(f1, Toneliner[Count]);
       ReadLn(f1, Twriters[Count]);
      End;
    Close(f1);
  End;
End; // Init

Procedure bot_bar;
Begin
  printf('onen.ans');
  Ch2 := ReadKey;
  If Ch2 = #13 then Begin
    exit;
  End;
  show;
End; // bot_bar

Procedure top_bar;

Var f1 : textfile;
var Count : byte;
var ch3 : char;


Begin
  printf('oney.ans');
  Ch3 := ReadKey;
  If Ch3 = #13 then Begin
    printf('oneline.asc');
    Write('^[[3;3H');
    inputl(s,70);
    If s = '' then Begin
      WriteLn('^[[1;30maborted^[[0;37m');
      show;
      Exit;
    End;
    For Count := 1 To 9 Do Begin
      Count2 := Count + 1;
      Toneliner[Count] := Toneliner[Count2];
      Twriters[Count] := Twriters[Count2];
    End;

    tWriters[10]:=thisuser.name;
    tOneliner[10] := s;

    Assign(f1, fOneLine);
    ReWrite(f1);
    For Count := 1 To 10 do Begin
      WriteLn(f1,tOneliner[Count]);
      WriteLn(f1,tWriters[Count]);
    End;
    Close(f1);
  End;
  show;
End; // top_bar

Procedure position;

Begin
  show;
  Repeat
  printf('onen.ans');
  ch1:=ReadKey;
      case ch1 of
      #0 : begin
             ch1:=ReadKey;
             case ch1 of
             #80 : bot_bar;
             #72 : top_bar;
             end;
           end;
      end;
  until ch1=#13
end;

Begin
  init;
  Position;
End;

--//--snip------------------------

Thanks,

|09ignatius |07[|15cia|07]

--- Mystic BBS v1.11 (Linux)
 * Origin: catch22bbs.com >>>  >> > (1:340/800)

Previous Message       Next Message
Replies: Some code i'm having problems with. (mark lewis)