Older Version
Newer Version
harmonv
Mar 1, 2008
- "Initial article -- WhatsMyLine -- for Sharefest 2008"
[[code format="vb.net"]] ' Code to recognize file endings. Windows/DOS, Linux/HTML/Mac OSX, or Max OS9 (and earlier) ' Written in Liberty BASIC by Harmon V. ' Released as public domain, Jan 2008 Function WhatsMyLineType$(path$, file$) ' open file, read entire file into a string variable, close file open path$+file$ for input as #fin text$ = input$(#fin, lof(#fin)) close #fin if len(text$)>40000 then text$ = left$(text$, 40000) ' 40K ought to be enough. :-) ' count number of CRs,LFs and pairs. winEnds = HowMany(text$, chr$(13)+chr$(10)) nixEnds = HowMany(text$, chr$(10)) - winEnds macEnds = HowMany(text$, chr$(13)) - winEnds ' max number determines filetype winner = Max(winEnds,macEnds) winner = Max(winner, nixEnds) select case winner case winEnds : ender$ = chr$(13)+chr$(10) ' Windows or DOS case nixEnds : ender$ = chr$(10) ' HTML, Linux or Mac OSX case macEnds : ender$ = chr$(13) ' Mac OS 9 or earlier case else : ender$ = "" ' random file or one-line ASCII file end select WhatsMyLineType$ = ender$ End Function ' WhatsMyLineType ' count the number of times search$ occurs in source$ Function HowMany(source$, search$) n = 0 : pos = 0 do pos = instr(source$, search$, pos+1) if pos>0 then n = n + 1 loop until pos=0 HowMany = n End Function ' HowMany [[code]]