Вверх ↑
Этот топик читают: Гость
Этот топик был перемещен из раздела "Помощь по среде"
Ответов: 322
Рейтинг: 8
#16: 2020-02-12 14:55:18 ЛС | профиль | цитата
Сначало расчитывал что хватит одного количества символов, но далее понял что местами будет меняться количество. Вот поэтому так и получилось.
Screenshot_2.jpg
№1 строки одинаковые по длине (с 1 по 3 строку может вместиться по 84 символа)
№2 строки разные по длине (1 строка 35 символов, 2-4 строка по 84 символа)

Редактировалось 3 раз(а), последний 2020-02-12 15:25:30
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#17: 2020-02-12 16:43:43 ЛС | профиль | цитата
Dad2016, это делается совсем не так.
Во втором случае начало печати строки 84-Length(s1)
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 2059
Рейтинг: 132
#18: 2020-02-12 19:52:00 ЛС | профиль | цитата

Add(MainForm,1642918,196,98)
{
Width=574
Height=642
Point(onKeyDown)
}
Add(InlineCode,4114780,329,154)
{
WorkPoints=#6:doWork|
EventPoints=#5:onRes|
DataPoints=#5:Value|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|23: Value: THI_Event;|22: onRes: THI_Event;|46: procedure doWork(var dt:TData; idx:word);|0:|5: end;|0:|52:function MayBeHyph(p: PChar; pos: Integer): Boolean;|0:|14:implementation|0:|0:|4:type|64: TSymbol = (st_Empty, st_NoDefined, st_Glas, st_Sogl, st_Spec);|39: TSymbAr = array [0..1000] of TSymbol;|21: PSymbAr = ^TSymbAr;|5:const|19: //HypSymb = #$1F;|16: HypSymb = '-';|57: Spaces = [',', ';', ':', '.', '?', '!', '/', #10, #13];|52: GlasChar = ['Й', 'й', 'У', 'у', 'Е', 'е','Ю', 'ю',|60: 'А', 'а', 'О', 'о', 'Э', 'э', 'Я', 'я', 'И', 'и', |15: { english }|70: 'e', 'E', 'u', 'U', 'i', 'I', 'o', 'O', 'a', 'A', 'j', 'J'];|53: SoglChar = ['Г', 'г', 'Ц', 'ц', 'К', 'к', 'Н', 'н',|49: 'Ш', 'ш', 'щ', 'Щ', 'З', 'з', 'Х', 'х',|69: 'Ф', 'ф', 'В', 'в', 'П', 'п', 'Р', 'р', 'Л', 'л', 'Д', 'д',|69: 'Ж', 'ж', 'Ч', 'ч', 'С', 'с', 'М', 'м', 'т', 'T', 'б', 'Б',|15: { english }|59: 'q', 'Q', 'w', 'W', 'r', 'R', 't', 'T', 'y', 'Y',|59: 'p', 'P', 's', 'S', 'd', 'D', 'f', 'F', 'g', 'G',|59: 'h', 'H', 'k', 'K', 'l', 'L', 'z', 'Z', 'x', 'X',|60: 'c', 'C', 'v', 'V', 'b', 'B', 'n', 'N', 'm', 'M'];|44: SpecSign = ['Ы', 'ы', 'Ь', 'ь', 'Ъ', 'ъ'];|2: |34:function isSogl(c: Char): Boolean;|5:begin|26: Result := c in SoglChar;|4:end;|0:|34:function isGlas(c: Char): Boolean;|5:begin|26: Result := c in GlasChar;|4:end;|0:|38:function isSpecSign(c: Char): Boolean;|5:begin|26: Result := c in SpecSign;|4:end;|0:|39:function GetSymbType(c: Char): TSymbol;|5:begin|25: if isSogl(c) then begin|22: Result := st_Sogl;|9: exit;|6: end;|25: if isGlas(c) then begin|22: Result := st_Glas;|9: exit;|6: end;|29: if isSpecSign(c) then begin|22: Result := st_Spec;|9: exit;|6: end;|25: Result := st_NoDefined;|4:end;|0:|62:function isSlogMore(c: pSymbAr; start, len: Integer): Boolean;|3:var|13: i: Integer;|5:begin|34: for I := Start to Len-1 do begin|38: if c^[i] = st_NoDefined then begin|22: Result := false;|11: exit;|8: end;|24: if (c^[i] = st_Glas)|64: and ((c^[i+1] <> st_Nodefined) or (I <> Start)) then begin|23: Result := True;|13: exit;|8: end;|6: end;|18: Result := false;|4:end;|0:|55:function Red_GlasMore(p: PChar; pos: Integer): Boolean;|5:begin|29: while p[pos] <> #0 do begin|34: if p[pos] in Spaces then begin|22: Result := False;|11: Exit;|8: end;|32: if isGlas(p[pos]) then begin|21: Result := True;|11: Exit;|8: end;|13: Inc(pos);|6: end;|18: Result := False;|4:end;|0:|55:function Red_SlogMore(p: PChar; pos: Integer): Boolean;|3:var|26: BeSogl, BeGlas: Boolean;|5:begin|35: BeSogl := False; BeGlas := False;|29: while p[pos] <> #0 do begin|35: if p[pos] in Spaces then Break;|48: if not BeGlas then BeGlas := isGlas(p[pos]);|48: if not BeSogl then BeSogl := isSogl(p[pos]);|13: Inc(pos);|6: end;|30: Result := BeGlas and BeSogl;|4:end;|0:|52:function MayBeHyph(p: PChar; pos: Integer): Boolean;|3:var|13: i: Integer;|15: len: Integer;|5:begin|11: I := pos;|19: Len := StrLen(p);|51: Result := (Len > 3) and (i > 2) and (i < Len - 2)|30: and (not (p[i] in Spaces))|63: and (not (p[i + 1] in Spaces)) and (not (p[i-1] in Spaces))|64: and ((isSogl(p[i]) and isGlas(p[i - 1]) and isSogl(p[i + 1])|50: and Red_SlogMore(p, i + 1)) or ((isGlas(p[i]))|49: and (isSogl(p[i - 1])) and (isSogl(p[i + 1]))|46: and (isGlas(p[i + 2]))) or ((isGlas(p[i]))|49: and (isSogl(p[i - 1])) and (isGlas(p[i + 1]))|57: and Red_SlogMore(p, i + 1)) or ((isSpecSign(p[i]))));|4:end;|0:|0:|0:|29:procedure THiAsmClass.doWork;|17:var s, p: string;|13:r,i: Integer;|16:qwerty: Boolean;|5:begin|23: s := ToString(dt); |27: i:=ToIntegerEvent(Value);|7: r:=i;|2: |0:|23: while Length(s) > r do|6: begin|16: qwerty :=true;|8: i:=r;|19: while qwerty do |8: begin|26: if (S[i]= ' ') then |8: begin |17: qwerty:=false; |19: p:=Copy(S, 1, i);|25: S :=CopyEnd( S, i+1 );|25: _hi_onEvent(onRes,p); |7: end |5:else |31:if MayBeHyph(PChar(s), i) then|6: begin|17: qwerty:=false; |21: p:=Copy(S, 1, i+1);|27: S :=CopyEnd( S, i+2 ); |29: _hi_onEvent(onRes,p+'-'); |5: end;|9: dec(i);|4:end;|3: |5:end; |24:_hi_onEvent(onRes,S); |4:end;|0:|4:end.|
link(onRes,2536302:doAdd,[])
link(Value,2622461:Text,[])
}
Add(Button,7044045,196,154)
{
Left=15
Top=20
link(onClick,8765111:doData,[])
}
Add(DoData,8765111,266,154)
{
link(onEventData,4114780:doWork,[])
link(Data,413353:Text,[])
}
Add(Memo,413353,266,91)
{
Top=50
Width=555
Height=110
Font=[MS Sans Serif,12,0,0,1]
Strings=#153:Сборник изначально планировался как обзор, но постепенно превратился в справочник для писателя, которому пришла в голову гиблая мысль написать о космосе.|
}
Add(Memo,2536302,434,154)
{
Top=170
Width=555
Height=255
Font=[MS Sans Serif,12,0,0,1]
ScrollBars=2
}
Add(Edit,2622461,329,91)
{
Left=115
Top=20
Text="24"
DataType=2
}

карма: 6

0
Ответов: 16884
Рейтинг: 1239
#19: 2020-02-12 20:15:34 ЛС | профиль | цитата
А так ну никак!
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 2059
Рейтинг: 132
#20: 2020-02-12 20:19:15 ЛС | профиль | цитата
А так ну никак!

К науке, которую я в данный момент представляю, это не имеет никакого отношения…

Редактировалось 2 раз(а), последний 2020-02-12 20:24:35
карма: 6

1
Голосовали:Tad
Ответов: 322
Рейтинг: 8
#21: 2020-02-13 06:49:13 ЛС | профиль | цитата
Описание в акте может быть то короче, то длиннее.
Screenshot_1.jpg
Поэтому сфомированные данные нужно уложить в определённые параметры строк (замечу в разные строки, между ними есть описания)
На скрине 3 сформированных текста разложены по строкам. Если текст не умещается в первой строке он переносится (по пробелу, запятой и т.д.) на следующую строку, если не умещается на следующей - переносится дальше и т.д. пока не закончится.

Редактировалось 1 раз(а), последний 2020-02-13 06:50:20
карма: 0

0
Ответов: 8919
Рейтинг: 823
#22: 2020-02-13 16:37:10 ЛС | профиль | цитата
Dad2016, такую портянку просто сделать в Excel или даже в Word, а в HiAsm получится "здесь играем, здесь не играем, а здесь селёдочку заворачивали"
карма: 19

0
Ответов: 322
Рейтинг: 8
#23: 2020-02-14 06:18:05 ЛС | профиль | цитата
Леонид писал(а):
такую портянку просто сделать в Excel или даже в Word

Эта портянка часть айсберга - формируется из основной базы которая ведётся каждый день, поэтому вести базу а потом вручную вбивать Excel или даже в Word не вижу смысла. По факту мне достаточно того, что сделал сам. Мне хотелось понять можно - ли сделать портянку покомпактнее с тем-же функционалом. Всё равно всем спасибо за интересное общение.
карма: 0

0
Ответов: 8919
Рейтинг: 823
#24: 2020-02-14 10:07:12 ЛС | профиль | цитата
Dad2016 писал(а):
..вести базу а потом вручную вбивать Excel..
Из базы данные в Excel, даже в Word, без затруднений передаются средствами HiAsm, да и сама таблица Excel может их вытащить
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#25: 2020-02-14 15:01:13 ЛС | профиль | цитата
Леонид писал(а):
Из базы данные в Excel, даже в Word, без затруднений передаются средствами HiAsm
Ну и зачем их куда-то передавать?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8919
Рейтинг: 823
#26: 2020-02-14 19:20:58 ЛС | профиль | цитата
Tad, так вы же не будете форму для БД разрабатывать, для этого нужно базу видеть, а ТС не может её сделать (иначе и вопросы не задавал), а в Excel её легко сделать без особых знаний
(Раньше подобные заготовки в типографии печатались, на не очень качественной бумаге, "дёшево и сердито", сейчас же принтеру качественную бумагу подавай, 80 гр/м^2, надо Грете Тунберг пожаловаться, сколько леса напрасно губится!)
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#27: 2020-02-14 20:50:56 ЛС | профиль | цитата
Леонид писал(а):
вы же не будете форму для БД разрабатывать
А почему нет? При правильно спроектированной БД, отпечатать на чистом листе или на готовом бланке - два пальца об асфальт.
На заре компьютеризации из базы .DBF спокойно печатал Ведомость по зарплате - 70 колонок (Ф.И.О., 27 колонок видов начислений, 42 вида удержаний) и >3000 человек.

Редактировалось 1 раз(а), последний 2020-02-14 21:03:24
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 322
Рейтинг: 8
#28: 2020-02-17 06:31:38 ЛС | профиль | цитата
Леонид, мне намного удобнее работать в программе которой уже пользуюсь более 3х лет (собрана в HiAsm). Программа формирует из БД что угодно, любые отчёты. Excel и Word я тоже хорошо знаю, в Excel даже занимался программированием, но перешёл на HiAsm, так как здесь мне легче. Просто постоянно нахожу то, что можно доработать в программе, сделать интереснее, удобнее. Но при любом раскладе всегда прислушиваюсь ко всем мнениям (замечаниям).
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#29: 2020-02-17 10:16:21 ЛС | профиль | цитата
Dad2016 писал(а):
Программа формирует из БД
Если БЫ в БД были
Таблица Объект
id
Наименование
Адрес

Таблица Заказчик
id
Наименование
Свидетельство
Адрес
Телефон
Факс

Таблица Строитель
id
Наименование
Свидетельство
Адрес
Телефон
Факс

Таблица Заказ
id
id_Объекта
id_Заказчика
id_Строителя
Дата_начала
Дата_окончания
Никакого вопроса "Разделение предложения на части" не было БЫ.
Вот и "непонятно" или это "БЫ" мешает, или неправильно спроектированная БД виновата.

Редактировалось 3 раз(а), последний 2020-02-17 10:30:21
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Главный модератор
Ответов: 2999
Рейтинг: 396
#30: 2020-02-17 13:14:27 ЛС | профиль | цитата
Tad писал(а):
Вот и "непонятно" или это "БЫ" мешает, или неправильно спроектированная БД виновата.

© Михаил Жванецкий писал(а):
Может, что-то в консерватории подправить?

карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)