Загрузку файла сам приклеишь.
А вот более сложный вариант с поиском по маске
Add(MainForm,6980269,89,235)
{
Left=20
Top=105
Width=250
link(onCreate,7399743:doSetFocus,[(126,276)(126,276)])
}
Add(ListBox,12182647,243,151)
{
Left=45
Top=20
Width=150
Height=160
Strings=#9:Вася Ишак|10:Коля Идиот|10:Саша Баран|18:Петя Козел и Дурак|0:|
Point(String)
}
Add(Button,2594965,96,326)
{
Left=45
Top=215
Width=150
Caption="Поиск"
link(onClick,5143787:doData,[])
}
Add(Edit,7399743,159,256)
{
Left=45
Top=185
Width=150
Text=""
Point(doSetFocus)
}
Add(DoData,5143787,159,326)
{
link(onEventData,10705067:doString,[(201,332)(201,408)(72,408)(72,458)])
link(Data,11904143:Var2,[])
}
Add(ArrayEnum,11858575,257,326)
{
link(onItem,5486100:doStrCat,[])
link(onEndEnum,2414896:doEvent,[(336,339)(336,507)])
link(Array,12182647:Array,[])
}
Add(FormatStr,10705067,82,452)
{
Mask="*%1*"
link(onFString,4164769:doEvent1,[])
link(Str2,11904143:Var1,[(95,307)])
}
Add(Hub,9265375,516,326)
{
OutCount=3
link(onEvent1,11858575:doStop,[(551,332)(551,374)(247,374)(247,339)])
link(onEvent2,10723087:doOperation,[(558,339)(558,373)(443,373)(443,395)])
link(onEvent3,9562208:doClear,[(558,346)(558,401)(443,401)(443,458)])
}
Add(GetDataEx,11904143,152,298)
{
link(Data,7399743:Text,[])
}
Add(Label,8069467,691,389)
{
Left=10
Top=245
Width=220
Caption=""
AutoSize=1
Alignment=2
}
Add(FormatStr,10261534,600,389)
{
Mask="Найдено слово %1 в %2-й позиции"
link(onFString,13788423:doWork2,[(663,395)])
link(Str1,11904143:Var3,[(606,307)])
}
Add(Hub,4164769,138,452)
{
link(onEvent1,5502751:doMask,[])
link(onEvent2,11858575:doEnum,[(213,465)(213,332)])
}
Add(Math,10723087,453,389)
{
Op2=1
link(onResult,10261534:doString,[(542,395)(542,395)])
link(Op1,11858575:Index,[(459,381)(270,381)])
}
Add(HubEx,13788423,663,382)
{
link(onEvent,8069467:doText,[])
}
Add(DoData,9680534,390,445)
{
Data=Integer(1)
link(onEventData,9562208:doValue,[])
}
Add(IndexToChanel,2414896,453,501)
{
Data=String(Искомое слово не найдено)
Point(Index)
link(onEvent2,13788423:doWork3,[(667,514)])
link(Index,9562208:Value,[])
}
Add(Memory,9562208,453,445)
{
Default=Integer(0)
}
Add(StrMask,5502751,257,445)
{
link(onFalse,9680534:doData,[])
link(onTrue,9265375:doEvent1,[(367,458)(367,332)])
}
Add(StrCat,5486100,341,326)
{
Str2=" "
link(onStrCat,5502751:doCompare,[(383,332)(383,401)(247,401)(247,451)])
link(Str1,11858575:Item,[(347,316)(315,316)(315,368)(263,368)])
}