TF [v3.3]

作者: hugov 最近更新时间: 20100416


As the name suggest this is a AHK Library with a number of functions to "manipulate" text, both files such as *.txt, *.ahk, *.html, *.css etc AND Strings (or variables). It is NOT useful for binary files or data such as MS Office files, PDFs, EXEcutables, images etc.

TF(TextFile, CreateGlobalVar = "T")
TF_AlignCenter(Text, StartLine = 1, EndLine = 0, Columns = 80, Padding = 0)
TF_AlignLeft(Text, StartLine = 1, EndLine = 0, Columns = 80, Padding = 0)
TF_AlignRight(Text, StartLine = 1, EndLine = 0, Columns = 80, Skip = 0)
TF_Append(File1, File2)
TF_ColCut(Text, StartLine = 1, EndLine = 0, StartColumn = 1, EndColumn = 1)
TF_ColGet(Text, StartLine = 1, EndLine = 0, StartColumn = 1, EndColumn = 1, Skip = 0)
TF_ColPut(Text, Startline = 1, EndLine = 0, StartColumn = 1, InsertText = "", Skip = 0)
TF_ConCat(FirstTextFile, SecondTextFile, OutputFile = "", Blanks = 0, FirstPadMargin = 0, SecondPadMargin = 0)
TF_Count(String, Char)
TF_CountLines(Text)
TF_Find(Text, StartLine = 1, EndLine = 0, SearchText = "", ReturnFirst = 1, ReturnText = 0)
TF_FindLines(Text, StartLine = 1, EndLine = 0, SearchText = "", CaseSensitive = false)
TF_GetData(OW, Text, FileName)
TF_InsertLine(Text, StartLine = 1, Endline = 0, InsertText = "")
TF_InsertPrefix(Text, StartLine = 1, EndLine = 0, InsertText = "")
TF_InsertSuffix(Text, StartLine = 1, EndLine = 0 , InsertText = "")
TF_LineNumber(Text, Leading = 0, Restart = 0, Char = 0)
TF_MakeFile(Text, Lines = 1, Columns = 1, Fill = " ")
TF_Merge(FileList,"`n", "!" . File2)
TF_Prepend(File1, File2)
TF_RangeReplace(Text, SearchTextBegin, SearchTextEnd, ReplaceText = "", CaseSensitive = "False", KeepBegin = 0, KeepEnd = 0)
TF_ReadLines(Text, StartLine = 1, EndLine = 0, Trailing = 0)
TF_RegExReplace(Text, NeedleRegEx = "", Replacement = "")
TF_RegExReplaceInLines(Text, StartLine = 1, EndLine = 0, NeedleRegEx = "", Replacement = "")
TF_RemoveBlankLines(Text, StartLine = 1, EndLine = 0)
TF_RemoveDuplicateLines(Text, StartLine = 1, Endline = 0, Consecutive = 0, CaseSensitive = false)
TF_RemoveLines(Text, StartLine = 1, EndLine = 0)
TF_Replace(Text, SearchText, ReplaceText="")
TF_ReplaceInLines(Text, StartLine = 1, EndLine = 0, SearchText = "", ReplaceText = "")
TF_ReplaceLine(Text, StartLine = 1, Endline = 0, ReplaceText = "")
TF_ReturnOutPut(1, PreviousOutput, Prefix FileCounter "." Extension, 0, 1)
TF_ReverseLines(Text, StartLine = 1, EndLine = 0)
TF_Save(Text, FileName, OverWrite = 1)
TF_SetGlobal(Prefix FileCounter,PreviousOutput)
TF_SetWidth(Text,Width,AlignText)
TF_Sort(Text, SortOptions = "", StartLine = 1, EndLine = 0)
TF_Space(Width)
TF_Spaces2Tab(Text, TabStop = 4, StartLine = 1, EndLine =0)
TF_SplitFileByLines(Text, SplitAt, Prefix = "file", Extension = "txt", InFile = 1)
TF_SplitFileByText(Text, SplitAt, Prefix = "file", Extension = "txt", InFile = 1)
TF_Substract(File1, File2, PartialMatch = 0)
TF_Tab2Spaces(Text, TabStop = 4, StartLine = 1, EndLine =0)
TF_Tail(Text, Lines = 1, RemoveTrailing = 0, ReturnEmpty = 1)
TF_TrimLeft(Text, StartLine = 1, EndLine = 0, Count = 1)
TF_TrimRight(Text, StartLine = 1, EndLine = 0, Count = 1)
TF_WhiteSpace(Text, RemoveLeading = 1, RemoveTrailing = 1, StartLine = 1, EndLine = 0)
TF_Wrap(Text, Columns = 80, AllowBreak = 0, StartLine = 1, EndLine = 0)

关于函数的参数和返回值, 请参阅其源码或 此文档.

备注

It is not strictly stdlib conform, because globals are in use.

关于此函数(集)的更新细节和注意事项, 请参见 AutoHotkey 论坛: http://www.autohotkey.com/forum/viewtopic.php?t=46195

许可

不存在

示例

; #Include tf.ahk
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%

TestFile= ; create variable
(join`r`n
1 Hi this
2 a test variable
3 to demonstrate
4 how to 
5 use this
6 new version
7 of TF.AHK
)
FileDelete, TestFile.txt
FileAppend, %TestFile%, TestFile.txt ; create file
F=TestFile.txt ; just a shorthand code for TextFile.txt, so below when
; using F we are still passing on a TextFile, not a variable

;pass on file, read lines 5 to end of file:
MsgBox % "From File 1:`n" TF_ReadLines("TestFile.txt",5) ; same as before
MsgBox % "From File 2:`n" TF_ReadLines(F,5)              ; same as before

;pass on variable, read lines 1 to 5
MsgBox % "From Variable 1:`n" TF_ReadLines(TestFile,"1-5")     
MsgBox % "From Variable 2:`n" TF_ReadLines("Hi`nthis`nis`na`ntest`nvariable`nfor`ntesting",1,3) ; pass on string

;Examples using TF(): (it will save you a FileRead if you want to work with Variables

TF("TestFile.txt") ; read file, create globar var t
t:=TF_ReadLines(t,5) ; pass on global var t created by TF(), read lines 5 to end of file, asign result to t 
MsgBox % "TF(), example 1:`n" t

TF("TestFile.txt", "MyVar") ; read file, create globar var MyVar
MyVar:=TF_ReadLines(MyVar,5) ; pass on global var MyVar created by TF(), read lines 5 to end of file, asign result to MyVar
MsgBox % "TF(), example 2:`n" MyVar

; Note how we can use TF() here
t:=TF_ReadLines(TF("TestFile.txt"),5) ; pass on global var t created by TF(), read lines 5 to end of file, asign result to t 
MsgBox % "TF(), example 3:`n" t

MyVar:=TF_ReadLines(TF("TestFile.txt","MyVar"),5) ; pass on global var t created by TF(), read lines 5 to end of file, asign result to t 
MsgBox % "TF(), example 4:`n" MyVar

t:=TF_ReadLines(TF(F),5) ; pass on global var t created by TF(), read lines 5 to end of file, asign result to t
t:=TF_ReverseLines(t,5) ; pass on global var t created by TF(), read lines 5 to end of file, asign result to t
MsgBox % "TF(), example 5:`n" t

; Work directly with the clipboard or another other variable
Clipboard=Line 1`nLine 2`nLine 3`nLine 4`nLine 5`nLine 6`nLine 7`nLine 8
Clipboard:=TF_RemoveLines(Clipboard, 3, 6) ; remove lines 3 to 6
MsgBox % "Clipboard, example 6:`n" Clipboard