KermMartian wrote:
Aeromax wrote:
I have the program here on my computer but I don't see a way to upload files to the topic...?
Post the code, or submit it to the archives as a beta, or Rapidshare it.
Oh, durf. Here it is.
Code:
::".TIX INTERPRETER V0.9"
:Lbl AA
:0→S
:0→Xmin:0→Ymin:94→Xmax:62→YMax:CoordOn:GridOff:AxesOff:ClrDraw:ClrHome
:sub(Str0,1,16)→Str1
:sub(Str0,17,10)→Str2
:sub(Str0,27,23)→Str3
:sub(Str0,50,23)→Str4
:sub(Str0,73,23)→Str5
:sub(Str0,96,23)→Str6
:sub(Str0,119,23)→Str7
:sub(Str0,152,3)→U
:length(Str0)→W
:W-150→W
:W/207→W
:If fPart(W)≠0
:iPart(W)+1→W
:Text(0,0,Str1," XXX/XXX"
:Horizontal(55
:Text(8,0,"DATE: ",Str2," ","PAGES: ",W
:Line(55,47,55,55
:Horizontal(47
:Text(16,0,Str3
:Horizontal(39
:Text(24,0,Str4
:Text(30,0,Str5
:Text(36,0,Str6
:Text(42,0,Str7
:Horizontal(13
:"RETURNACCESSJUMPTO"→Str9
:1→U
:For(θ,2,66,32
:sub(Str9,U,6)→Str2
:Text(52,(θ+2),Str2
:Line(θ,3,(θ+26),3
:Line(θ,11,(θ+26),11
:Line(θ,3,θ,11
:Line((θ+26),3,(θ+26),11
:Line((θ+13),3,(θ+13),0
:U+6→U
:1→X
:End
:Repeat getKey:End
:Lbl AC
:getKey→Z
:If Z=11 or Z=12
:Stop
:If Z=13
:Goto AD
:If Z=14 or Z=15
:Goto AE
:Goto AC
:Lbl AD
:1→S
:sub(Str0,147,1)→Str2
:sub(Str0,148,1)→Str3
:sub(Str0,149,1)→Str4
:length(Str0)→U
:U-150→U
:sub(Str0,150,U)→Str9
:Lbl BA
:ClrDraw
:length(Str9)→W
:W/207→W
:If fPart(W)≠0
:iPart(W)+1→W
:X/207→V
:If fPart(V)≠0
:iPart(V)+1→V
:Text(0,0,Str1
:Text(0,66,"---/---"
:Text(0,66,V)
:Text(0,82,W)
:Horizontal(55
:Line(64,55,64,62
:Text(8,0,sub(Str9,X,23)
:Text(14,0,sub(Str9,(X+23),23)
:Text(20,0,sub(Str9,(X+46),23)
:Text(26,0,sub(Str9,(X+69),23)
:Text(32,0,sub(Str9,(X+92),23)
:Text(38,0,sub(Str9,(X+115),23)
:Text(44,0,sub(Str9,(X+138),23)
:Text(50,0,sub(Str9,(X+161),23)
:Text(56,0,sub(Str9,(X+184),24)
:Lbl BB
:Repeat Z≠0
:getKey→Z
:End
:If Z=21
:Menu("NAVIGATION MENU","KEEP READING",BC,"PROGRAM INFO",AA,"MAIN MENU",BD,"SKIP TO...",AE,"FIND...",AF,"COUNT...",AG
:length(Str9)→R
:R-207→R
:If Z=11
:1→X
:If Z=12
:(X-207)→X
:If Z=13
:Goto AE
:If Z=14
:(X+207)→X
:If Z=15
:R→X
:If Z=24
:X-1→X
:If Z=26
:X+1→X
:If Z=25
:X-23→X
:If Z=34
:X+23→X
:Lbl BC
:If X>R
:R→X
:If X<1
:1→X
:Goto BA
:Lbl AE
:Menu("QUICK PAGE JUMP","JUMP TO PAGE",CA,"JUMP TO LINE",CB,"JUMP TO CHAR",CC,"RETURN",BC
:Lbl CA
:207→U
:Goto CD
:Lbl CB
:23→U
:Goto CD
:Lbl CC
:1→U
:Goto CD
:Lbl CD
:ClrHome
:Disp "CURRENT LOCATION"
:Disp "PAGE : -----"
:Disp "LINE : -----"
:Disp "CHAR : -----"
:Output(2,8,iPart(X/207)
:Output(3,8,iPart(X/23)
:Output(4,8,X
:Input "----------------",T
:T*U→X
:If S=1
:Goto BC
:If S=0
:Goto AD
:Lbl AF
:ClrHome
:Input "FINDIN DOCUMENT:",Str8
:inString(Str9,Str8,X)→U
:If U≠0
:U→X
:Goto BC
:Lbl AG
:ClrHome
:Input "COUNT INSTANCES:",Str8
:1→U
:0→S
:Lbl AH
:inString(Str9,Str8,U)→T
:If T≠0
:Then
:S+1→S
:(T+1)→U
:Goto AH
:End
:If T=0
:Then
:ClrHome
:Disp "INSTANCES OF:",Str8,S
:Repeat getKey:End
:ClrHome
:Goto BC
Here's a simple test file that shows how a header/information work:
Code:
::"TESTFILE.TIX
:"TEST-FILE-------09.12.2008AEROMAX----------------FILLER-TO-TEST-THE--TIX-READER-CREATED-BY-AEROMAX-ON-SEPTEMBER-12--2008--HEADER-LENGTH-150--000000<>SECTION ONE DOLOR SIT AMET. CONSECUTOR, ADIPISCING ELIT. A BUNCH OF PSEUDOLATIN CRAP GOES HERE IF I RECALL CORRECTLY, BUT I FORGET. WHAT IS LOVE? BABY DON'T HURT ME. DON'T HURT ME. NO MORE. SO NOW I THINK I AM JUST GOING TO TYPE A BUNCH OF RANDOM CRAP TO MAKE THIS LONGER. THERE, THAT SHOULD DO. OR WILL IT? DUN DUN DUUUNNNNN. MAN, I REALLY HOPE THIS PROGRAM WORKS, BECAUSE IF IT DOESN'T I'M GOING TO BE SUPER-PISSED."→Str0
:prgmTEXTREAD