Subj : FPC Oneliners. To : All From : Joseph Larsen Date : Sun Jun 05 2016 09:30 am Here's some code i'm having problems with. For some reason it takes two presses of the down arrow key to get the bot_bar procedure. --//--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; //### begin show procedure ###################################### Procedure show; var Count : byte; Begin // clrscr; 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 //### end show procedure ######################################## //### begin init procedure ###################################### Procedure init; Var f1 : textfile; var Count : byte; Begin // GetThisUser; 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 //### begin bot_bar procedure ################################### Procedure bot_bar; Begin printf('onen.ans'); Ch2 := ReadKey; If Ch2 = #13 then Begin exit; End; show; End; // bot_bar //### end bot_bar procedure ##################################### //### begin top_bar procedure ################################### 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 //### end top_bar procedure ##################################### //### begin position procedure ################################## Procedure position; Begin show; Repeat 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; //### end position procedure #################################### Begin init; Position; End; --//--snip---------- If someone could give me an idea of what's wrong, i'd appreciate it. Thank you, |09ignatius |07(|15cia|07) --- DayDream BBS/UNIX (Linux) 2.15a * Origin: catch22bbs.com >>> >> > (1:340/800) .