Делаю программку по разбивке строк на подстроки, например:
Creates a blank HTML page\nNew HTML Page Создание документа HTML\nСоздать документ HTML
Creates a file or a directory\nCreate Создание файла или папки\nСоздать
Нужно разбить с такими результатами:
Creates a blank HTML page Создание документа HTML
New HTML Page Создать документ HTML
Creates a file or a directory Создание файла или папки
Create Создать
Add(MainForm,2953706,35,133)
{
Width=489
Height=462
}
Add(StrPart,2649965,273,161)
{
Char="\t"
Point(Left)
Point(Right)
link(onSplit,16685958:doSplit,[(317,167)(317,111)])
link(onPart,14102046:doSplit,[])
}
Add(ListBox,2506861,161,224)
{
Left=10
Top=85
Width=450
Strings=#159:%1\nCannot find this file.\nVerify that the correct path and file name are given. %1\nНе удалось найти этот файл.\nУбедитесь в правильности пути и имени файла.|117:%s\n\nUnsaved changes will be lost. Do you want to continue? %s\n\nНесохранённые изменения будут утеряны. Продолжить?|158:Cannot get the result from the user tool.\nDo you want to retry? Не удалось получить результат из пользовательского инструмента.\nВы хотите повторить попытку?|20:Create... Создать...|87:Creates a blank HTML page\nNew HTML Page Создание документа HTML\nСоздать документ HTML|71:Creates a file or a directory\nCreate Создание файла или папки\nСоздать|
link(onChange,4076381:doText,[])
}
Add(Button,16557233,14,217)
{
Left=195
Top=30
Caption="Открыть"
link(onClick,9206988:doExecute,[])
}
Add(ODialog,9206988,63,217)
{
link(onExecute,2360463:doEvent1,[])
}
Add(ListBox,1214477,476,280)
{
Left=20
Top=250
Width=440
link(onChange,399039:doText,[])
}
Add(Button,7051843,378,343)
{
Left=200
Top=380
Width=65
Caption="Сохранить"
link(onClick,7227638:doExecute,[])
}
Add(ArrayEnum,4619542,175,308)
{
link(onItem,1123478:doEvent1,[])
link(Array,2506861:Array,[])
}
Add(Button,16635239,119,308)
{
Left=205
Top=200
Caption="Начать"
link(onClick,4619542:doEnum,[])
}
Add(Hub,2360463,112,217)
{
OutCount=3
link(onEvent1,2506861:doClear,[(144,223)(144,237)])
link(onEvent2,2506861:doLoad,[(147,230)(147,258)])
link(onEvent3,1214477:doClear,[(301,237)(301,293)])
}
Add(Edit,399039,525,280)
{
Left=380
Top=345
Width=80
Text=""
link(Str,1214477:Count,[(531,268)(514,268)(514,337)(489,337)])
}
Add(Label,3600688,532,231)
{
Left=330
Top=350
Width=42
Height=17
Caption="Строк:"
}
Add(FormatStr,5068234,280,315)
{
Mask="%1\t%2"
link(onFString,15392105:doWork3,[(376,321)])
link(Str1,14102046:Left,[(286,257)(377,257)])
link(Str2,16685958:Left,[(293,226)(335,226)])
}
Add(Hub,1123478,224,308)
{
OutCount=3
link(onEvent1,2649965:doSplit,[(256,314)(256,167)])
link(onEvent2,5068234:doString,[])
link(onEvent3,1130420:doString,[(284,328)(284,356)])
}
Add(StrPart,16685958,329,105)
{
Char="\n"
Point(Left)
Point(Right)
}
Add(StrPart,14102046,371,168)
{
Char="\n"
Point(Left)
Point(Right)
}
Add(FormatStr,1130420,329,350)
{
Mask="%1\t%2"
link(onFString,15392105:doWork2,[(367,356)(367,300)])
link(Str1,14102046:Right,[(335,275)(384,275)])
link(Str2,16685958:Right,[])
}
Add(Label,4901649,154,168)
{
Left=330
Top=175
Width=44
Height=17
Caption="Строк"
}
Add(Edit,4076381,210,224)
{
Left=380
Top=170
Width=80
Text=""
link(Str,2506861:Count,[(216,212)(195,212)(195,281)(174,281)])
}
Add(HubEx,15392105,372,294)
{
Angle=3
link(onEvent,1214477:doAdd,[(376,286)])
}
Add(SDialog,7227638,428,343)
{
Filter=".txt|*.*"
FileName=".txt"
link(onExecute,1214477:doSave,[(468,349)(468,321)])
}
Когда текст в ListBox и нажать Начать, всё вроде работает.
Если текст из ListBox скопировать в текстовой файл и открыть его программой, то результат получается совсем другой. Не пойму в чём проблема.
Может как то можно это реализовать по другому, ведь в строке может быть любое количество подстрок, а не две.
Редактировалось 2 раз(а), последний 2017-09-28 14:39:14